Assembly for Reverse Engineering
These are some assembly instructions to do reverse engineering more easy:
MOV (Move): Copies the value from one location to another.
mov eax, 42 ; Move the value 42 into the eax registerADD: Adds two values.
add ebx, eax ; Add the value in eax to the value in ebxSUB: Subtracts one value from another.
sub ecx, edx ; Subtract the value in edx from the value in ecxCMP (Compare): Compares two values and sets flags based on the result.
cmp esi, edi ; Compare the values in esi and edi and set flags accordinglyJMP (Jump): Unconditionally transfers control to another instruction.
jmp label ; Unconditionally jump to the location labeled "label"JE (Jump if Equal): Jumps to a specific location if the zero flag is set.
je equal_label ; Jump to "equal_label" if the zero flag is set (previous comparison was equal)JNE (Jump if Not Equal): Jumps to a specific location if the zero flag is not set.
jne not_equal_label ; Jump to "not_equal_label" if the zero flag is not set (previous comparison was not equal)jz label ; Jump to "label" if the zero flag is set (eax == 0)JZ: It's a conditional jump instruction that transfers program control to a specified label or memory location if the zero flag (ZF) is set.
jz label ; Jump to "label" if the zero flag is set (eax == 0)CALL: Calls a subroutine or function.
call my_function ; Call the subroutine or function labeled "my_function"RET (Return): Returns from a subroutine.
PUSH: Pushes a value onto the stack.
POP: Pops a value from the stack.
AND, OR, XOR: Performs logical AND, OR, and XOR operations on values.
SHL/SHR (Shift Left/Right): Shifts bits left or right.
INC/DEC (Increment/Decrement): Increases or decreases a value by one.
LOOP: Decrements a counter and jumps if the counter is not zero.
NOP (No Operation): Does nothing and acts as a placeholder.
INT (Interrupt): Triggers an interrupt or software-generated exception.
LEA (Load Effective Address): Loads the address of a memory location.
CMPXCHG (Compare and Exchange): Compares and swaps a value if conditions are met (used in multi-threading).
XOR: Performs bitwise XOR on two values.
Last updated