在linux下很多时候我们需要反汇编我们的源码,然后根据所得到的信息(例如相关的寄存器)进一步定位问题所在。这时候我们很多时间用objdump或者直接用gdb。在用gdb的情况下可以对可疑的函数采用disassemble funcname来反汇编对应的funcname函数。但如果在对汇编不是很熟的情况下我们通常不容易将源码与对应的汇编匹配起来思考。例如:
void main()
{
inta_main=1;
int i = 0x77; //技巧所在
a_main=(int)yaya;
foo();
int j = 0x88; //技巧所在
}
当我们disassemble这个函数时得到的汇编代码可能比较多,而我们感兴趣的只有func2这一段代码。就可在上下两段中加入”标识行”。然后在反汇编的汇编代码中查找标识77、88然后只要看这中间的就OK了。注意千万不能加优化选项,因为加优化选项这些没有起实际作用的代码会被优化掉。另外最好用16进制作标识,因为立即数会以16进制显示。
在不优化的时候其反汇编的代码如下:
0x080483d6 <main+0>: lea 0x4(%esp),%ecx
0x080483da <main+4>: and $0xfffffff0,%esp
0x080483dd <main+7>: pushl -0x4(%ecx)
0x080483e0 <main+10>: push %ebp
0x080483e1 <main+11>: mov %esp,%ebp
0x080483e3 <main+13>: push %ecx
0x080483e4 <main+14>: sub $0x10,%esp
0x080483e7 <main+17>: movl $0x1,-0x10(%ebp)
0x080483ee <main+24>: movl $0x77,-0xc(%ebp)
0x080483f5 <main+31>: movl $0x804839f,-0x10(%ebp)
0x080483fc <main+38>: call 0x80483ba <foo>
0x08048401 <main+43>: movl $0x88,-0x8(%ebp)
0x08048408 <main+50>: add $0x10,%esp
0x0804840b <main+53>: pop %ecx
0x0804840c <main+54>: pop %ebp
0x0804840d <main+55>: lea -0x4(%ecx),%esp
0x08048410 <main+58>: ret
我们只需要查看红色字符中的代码段就OK了。
|
相关推荐
Linux基本反汇编结构与GDB入门。Linux下的汇编与Windows汇编最大的不同就是第一个操作数是原操作数,第二个是目的操作数,而Windows下却是相反。
使用objdump指令反汇编出的linux文件,方便学习linux启动流程分析,本内核在实际产品中应用,已经量产,可使用nodepad++打开查看,也可以用文本编辑器查看
TI的msp430系列单片机反汇编软件(逆向工程),可由读出的机器码直接反汇编,成功率100.
以上软件为网上收集来的反汇编专用软件 PIC16FDisAsm.exe 为pic16fxxx单片机反汇编软件 u51V12.rar为mcs51单片机反汇编软件 EMCdasm.exe为emc单片机反汇编软件 reavr.rar为AVR单片机反汇编软件 STM8反汇编.rar为stm8...
51反汇编 Feeling反汇编软件 PIC反汇编软件 AVR反汇编软件
改进了以前的反汇编的错误,增加了地址标签输出
MCS-51反汇编程序的解读技巧,文/刘明德肖文兵
.NET 联动 反汇编 .NET 联动 反汇编 .NET 联动 反汇编 .NET 联动 反汇编 .NET 联动 反汇编 C# VB.NET C++.NET
第一部分IDA简介 1.反汇编简介-----------第1课 A.反汇编理论 B.为何反汇编 C.如何反汇编 2.逆向与反汇编工具---------第2课 A.分类工具 B.摘要工具 C.深度检测工具 第二部分 IDA的基本用法 1.IDA入门-------...
51反汇编工具,指定运行起点后,正常指令就反汇编,对pc指针有不能确定指向的地方停下,不会出现乱反汇编的情况,是一个很好的工具,在原来dos环境下常用,现在windows环境下居然还能使用。
这是一款免费的Windows窗口界面的MCS-51反汇编软件,又称“智能反编译器”,因为它能自动区分代码段和数据段。 1. 优点: (1)Windows界面,使用简单、直观; (2)可选择需反汇编的地址段; (3)具有数据块自动...
keil调试教程、反汇编技巧经验、ARM汇编指令。
51反汇编工具51反汇编工具51反汇编工具51反汇编工具
用于单片机的hex反汇编成asm文件,可以很好的实现反编译功能
改进了以前的反汇编的错误,增加了地址标签输出
AVR专用反汇编软件,将flash烧写用hex文件反汇编。非常好用!反汇编出的程序可读性强!
反汇编基本方法及Z280指令系统反汇编的实现 反汇编基本方法及Z280指令系统反汇编的实现 反汇编基本方法及Z280指令系统反汇编的实现
资源名称:初级反汇编视频教程【10集】资源目录:【】初级反汇编视频教程全10集-第10节汇编反C语言练习【】初级反汇编视频教程全10集-第1节准备工作【】初级反汇编视频教程全10集-第2节常用汇编指令【】初级反...
MSP430 反编译器是力杰电子为反汇编 Texas MSP430单片机目 标文件而开发,使反编译出的源程序几乎不做任何修改即可进行再 编译。
将mips机器码反汇编为源码,使用语言为python