rz-esil - Man Page
Evaluable Strings Intermediate Language
Description
ESIL aims to describe a Forth-like representation for every target CPU opcode semantics. ESIL representations can be evaluated (interpreted) in order to emulate individual instructions.
Syntax
Each command of an ESIL expression is separated by a comma
<source0>,<source1>,<operation>
<source>,<destination>,<operation>
<source_destination>,<operation>
Basic Operations
These operations should be enough to emulate most instructions of any architecture
- =
Set the value of the destination to the value of the source
- +
Add the values of source0 and source1 and push the result on the esil stack
- -
Subtract the value of source0 from the value of source1 and push the result on the esil stack
- *
Multiply the values of source0 and source1 and push the result on the esil stack
- /
Divide the value of source1 by the value of source0
BASIC OPERATIONS EXAMPLES (x86)
jmp eax -> eax,eip,=