通过第二周的学习,我想把我的博客分为两部分,第一部分是实验楼linux内核分析实验一的实验报告,第二部分是看书第1,2,18章的内容和时间情况。 现在先说实验一 实验内容:将一段c语言程序反汇编成汇编程序。 c语言程序代码:应实验要求我把其中部分数值进行了修改。 int g(int x) { ret ...
分类:
系统相关 时间:
2016-09-30 01:34:57
阅读次数:
259
确定进行反汇编代码区域,这并不像那么简单。通常,指令与数据混杂在一起,区分它们就显得非常重要。反汇编可执行文件:该文件必须符合可执行文件的某种通用格式,如Windows所使用的可移植可执行(Portable Executable, PE)格式或许多Unix系统常用的可执行和链接格式(ELF)。 知道 ...
分类:
编程语言 时间:
2016-09-29 20:22:19
阅读次数:
133
基础篇:001 -F8找CALL实例ONE 模拟器的讲解 课程内容: 调试模拟器并找到他所调用的CALL. 002 -CALL调用方法的讲解 课程内容: 以几个CALL的反汇编模型讲解CALL的调用方式. 003 -实战,寻找第一个程序选中怪物功能 课程内容: 找到选中怪物目标的功能. 004 -实 ...
分类:
编程语言 时间:
2016-09-23 12:40:59
阅读次数:
266
最近弄Android c/c++方面的逆向,发现c++的类,stl模板,在逆向的时候相比c语言都带来了不小的困难。 今天自己写了个小程序,然后逆向分析了一下 定义一个vector,然后添加数据。 ida反汇编如下:(已添加注释) 分析如下: 将栈的vector_ptr处的地址复制给R6 将sp+4的 ...
分类:
编程语言 时间:
2016-09-03 22:30:33
阅读次数:
511
六、逆向工程(一)对抗反汇编1、反汇编算法:(1)线性反汇编算法:遍历代码段,一次一条指令的先行反汇编,用已经反汇编的指令大小来决定下一个要反汇编的字节,而不考虑代码流的控制指令。不能区分代码与数据,最容易被恶意代码挫败(2)面向代码流的反汇编算法:检查每一条指令,然后建立一个需要反汇编的地址列表, ...
分类:
其他好文 时间:
2016-09-02 20:27:39
阅读次数:
263
用反汇编的方法研究一下C语言的结构体: main函数中几条语句的反汇编结果如下: 从访问结构体成员的指令可以看出,结构体的四个成员在栈上是这样排列的: 虽然栈是从高地址向低地址增长的,但结构体成员也是从低地址向高地址排列的,这一点和数组类似。与数组不同的是结构体成员之间不是一个紧挨一个排列的,中间有 ...
分类:
编程语言 时间:
2016-08-30 09:28:42
阅读次数:
312
对于以下程序: 在编译时加上-g选项,用objdump反汇编时可以把C代码和汇编代码穿插起来显示: 反汇编的结果很长以下是截取要分析的部分: 整个程序的执行过程是main调用foo, foo调用bar, 用gdb跟踪程序的执行,直到bar函数中的int e = c + d;语句执行完毕准备返回时,这 ...
分类:
编程语言 时间:
2016-08-30 09:27:56
阅读次数:
164
#includeusing namespace std;class point3d;class point2d;class point3d{private:int x; int y; int z;public: point3d(int a = 0, int b = 0, int c = 0) :x(... ...
分类:
编程语言 时间:
2016-08-10 06:32:22
阅读次数:
298
小标题 1.x64下反汇编 2.调试64位4参数中寄存器的值 3.调试64位中5参数及多次调用函数栈时栈区结构 4.64位中少于4参数情况 1.x64下反汇编 64位下函数的调用约定全部用FASTCALL,就是前4个参数依次用rcx,rdx,r8,r9传递,多余的参数从右至左压参。 x86下栈帧是比 ...