The following sections explain the actions that machines can perform.

Deleting Nodes

You can instruct Maltego to delete nodes. This is very useful when using perpetual machines (else the graph grows out of control over time). In certain scenarios you would want to be able to delete not just the node but perhaps the parents (and/or) children of the node too. The delete command will ALWAYS delete the node it’s running on. The command to delete nodes is … delete().

//deletes the current nodes in the pipeline

//delete myself plus all my parents and grandparents –e.g. two levels up

//deletes myself plus all children and grandchildren – e.g. two levels down

Debug, logging and status messages

To help debugging machines you can use the ‘log’ command. Whenever you call this command the Maltego GUI will tell you what’s in the pipe at that stage. Consider the following script:

start {
      log("this is my input",showEntities:true)  
      log("after toMX",showEntities:true)
      log("after toIP",showEntities:true)

Inside of Maltego you’ll see the following in the output screen:

The debug command automatically shows which entities are in the pipeline at the stage when the debug command was called.

When called with showEntities:false the command acts as a scrolling status update in the text window.

To set the status at the top you may use the status command. This sets the top label on the machine window. Keep in mind that when setting the status label in a parallel path only one of the label will be visible – as the commands are executed in parallel and whatever last label is set will stick. Here is an example of the status command and the corresponding output:

start {
      status("Staring test machine")
      log("Getting MX records",showEntities:false)  
      log("Resolving to IP address",showEntities:false)

Perpetual Machines »