首页 > 代码库 > 反汇编入门
反汇编入门
写了一个简单的C语言代码:
?
1 2 3 4 5 6 7 8 9 | #include<stdio.h> int main() { int a,b,c; a=1; b=2; c=a+b; printf ( "%d" ,c); } |
使用arm-linux-objdump -d 反汇编
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 00000000 <main>: 0: e92d4800 push {fp, lr} 4: e28db004 add fp, sp, #4 8: e24dd010 sub sp, sp, #16 c: e3a03001 mov r3, #1 10: e50b3010 str r3, [fp, #-16] 14: e3a03002 mov r3, #2 18: e50b300c str r3, [fp, #-12] 1c: e51b2010 ldr r2, [fp, #-16] 20: e51b300c ldr r3, [fp, #-12] 24: e0823003 add r3, r2, r3 28: e50b3008 str r3, [fp, #-8] 2c: e59f3014 ldr r3, [pc, #20] ; 48 <main+0x48> 30: e1a00003 mov r0, r3 34: e51b1008 ldr r1, [fp, #-8] 38: ebfffffe bl 0 < printf > 3c: e24bd004 sub sp, fp, #4 40: e8bd4800 pop {fp, lr} 44: e12fff1e bx lr 48: 00000000 .word 0x00000000 |
地址对应指令内容,可以读懂。
配合arm-linux-gdb单步调试和查看寄存器内容。反汇编利器。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。