Skip to content

Executors

iGio90 edited this page Feb 27, 2018 · 2 revisions

If you are familiar with GDB, the executors are something very similar to commands for the GNU debugger. They basically allows you to avoid cyclic and redundant tasks. Here is a very quick example of an executor to give you a better idea:

$> ex new
executor name: sample_executor
creating executor 0. add 1 command per line. type "end" to save
memory map 0x10000 128
registers write r0 0xFF
r w r2 0xD34DB33F
load target_library.so 0x50000   
patch add 0x51000 00BF00BF
end
$> ex
----------------------------------------------[ help ]----------------------------------------------
usage: exec [delete|load|new|run|save]
--------------------------------------------[ executors ]--------------------------------------------
  id  name               commands
----  ---------------  ----------
   0  sample_executor           5
$> ex save 0
saved 5 commands into executors/sample_executor
$> ex load sample_executor
mapped 1024 at 0x10000
0xff written into R0
0xd34db33f written into R2
....

Executors are saved and read later as normal text files, so, they can be manually modified with easy in case of errors.

Clone this wiki locally