; starts a commentMOV, from source to destinationLEA, loads memory address and stores it in the destination. Address can have an offset. Does not dereference [var] or [var+x]PUSH & POP, put & delete registers to/from stack.INC, incrementDEC, decrementADDSUB, substracts source from dest and stores in destMUL & IMUL, result may be stored in upper and lower halfs (rdx:rax)DIV & IDIV, rax is divided by rbx and may be stored in two halfs as wellRET, return value to the callerCMP, compare two values and sets flag. Next instruction is a jump condition to a line number. Works as followsJE, JEZ, JLE ... followed by linenumberNOP, \x90CALL a function[var], memory address of var.mov [var], 42 var points to the value 42. [ dereference.eax will result in zeroing the upper 32 bit of an rax register, move to ax, ah, al will not.MOVZX zeros anything but the value moved to the register inside of it.For signed value comparison
JL/JNGE (SF <> OF) ; Jump if less/not greater or equalJGE/JNL (SF = OF) ; Jump if greater or equal/not lessJLE/JNG (ZF = 1 or SF <> OF); Jump if less or equal/not greaterJG/JNLE (ZF = 0 and SF = OF); Jump if greater/not less or equalFor unsigned value comparison
JB/JNAE (CF = 1) ; Jump if below/not above or equalJAE/JNB (CF = 0) ; Jump if above or equal/not belowJBE/JNA (CF = 1 or ZF = 1) ; Jump if below or equal/not aboveJA/JNBE (CF = 0 and ZF = 0); Jump if above/not below or equaleflags 32bitrflags 64bitrax or xmm0$rsp to $rsp+0x18rax, rcx, r8, r9, r10, r11, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5. These are destroyed after function call.rbx, rbp, rdi, rsi, rsp, r12, r13, r14, r15, xmm6-15 ares saved and restored after function call.
Social_engineering