在Linux下進行反匯編時,常用的反匯編指令主要包括以下幾類:
MOV指令
mov eax, 0x12345678PUSH和POP指令
push eax 和 pop eaxCALL和RET指令
call function_name 和 retJMP指令
jmp labelJE(JZ)、JNE(JNZ)指令
je equal_label 和 jne not_equal_labelCMP指令
cmp eax, ebxINC和DEC指令
inc eax 和 dec eaxLEA指令
lea eax, [ebx + ecx*4]XCHG指令
xchg eax, ebxSHL、SHR、SAL、SAR指令
shl eax, 2 和 shr eax, 1MOVZX和MOVSX指令
movzx eax, byte ptr [ebx] 和 movsx eax, byte ptr [ebx]LEA指令的擴展
lea rax, [rbx + rsi*8 + 0x10]MOV指令的擴展
mov rax, [rbx + rcx*8]LDR指令
ldr r0, [r1]STR指令
str r0, [r1]B指令
b labelBL指令
bl function_nameCMP指令
cmp r0, r1ADD和SUB指令
add r0, r1, r2 和 sub r0, r1, r2MOV指令
mov r0, #0x12345678在Linux下進行反匯編,常用的工具有:
objdump:GNU Binutils的一部分,用于顯示目標文件的信息。
objdump -d binary_file
radare2:一個強大的逆向工程框架。
radare2 binary_file
Ghidra:由美國國家安全局(NSA)開發的免費開源軟件逆向工程(SRE)工具。
ghidraRun
IDA Pro:商業逆向工程工具,功能強大但需要購買許可證。
這些工具可以幫助你分析和理解二進制文件的匯編代碼。