随笔分类 - 逆向破解
摘要:识别类和类之间的关系 在父类中声明为私有的成员,虽然子类对象无法直接访问,但是在子类对象的内存结构中,父类私有的成员数据依然存在。 在没有提供构造函数的时候,系统会尝试提供默认的构造函数: 当子类中没有构造函数或析构函数,而它的父类却需要构造函数与析构函数是,编译器会为这个子类提供默认的构造函数与析
阅读全文
摘要:虚函数的机制 当类中定义有虚函数时,编译器会将该类中所有虚函数的首地址保存在一张地址表中,这张表被称为虚函数地址表。编译器还会在类中添加一个虚表指针。 举例: CVirtual类的构造函数中没有进行任何操作,但是我们来看构造函数内部,还是有一个赋初值的操作: 这个地址指向的是一个数组: 这些数组中的
阅读全文
摘要:局部对象 当对象所在作用域结束之后,销毁栈空间,此时析构函数被调用。 举例: 函数返回时自动调用析构函数: 堆对象 调用析构代理函数来处理析构函数: 为什么使用析构代理函数来调用析构函数?考虑到如果delete的对象是一个对象数组,可以使用析构代理函数依次析构所有的对象。举例: 调用了构造代理函数:
阅读全文
摘要:对象生成时会自动调用构造函数。只要找到了定义对象的地方,就找到了构造函数调用的时机。不同作用域的对象的生命周期不同,如局部对象、全局对象、静态对象等的生命周期各不相同,只要知道了对象的生命周期,便可以推断出构造函数的调用时机。 局部对象 反汇编: 获取对象首地址并调用构造函数: 对象的地址为: 进入
阅读全文
摘要:编辑来给大家盘点下.net的反编译工具: 1、Reflector Reflector是最为流行的.Net反编译工具。Reflector是由微软员工Lutz Roeder编写的免费程序。Reflector的出现使·NET程序员眼前豁然开朗,因为这个免费工具可以将·NET程序集中的中间语言反编译成C#或
阅读全文
摘要:虚拟机使用XP系统:打开boot.ini:添加一条调试启动项:然后关闭计算机,修改虚拟机的设置:添加一个串行端口:配置成这样:然后,在真机里找到设备管理器,将波特率设置成115200:在要启动的Windbg的属性中的目标中添加参数:-b -k com:port=\\.\pipe\com_2,baud...
阅读全文
摘要:我这里学习汇编语言的思路就是逆向C++源码。先从最简单的一个程序入手:为什么程序的开头两句总会是push ebpmov ebp,esp?先来看一个程序:这个程序调用fun()时,fun的汇编代码也是如此,开头调用这两句汇编:其实,这里ebp中保存的是你当前的函数(main函数)的栈基址,当你进入一个...
阅读全文
摘要:这里先介绍两个指令:sx指令:The sx* commands control the action that the debugger takes when an exception occurs in the application that is being debugged, or when...
阅读全文
摘要:载入HelloWorld.exe之后我们看看加载了哪些模块:查看一下堆栈:都是ntdll中的函数,我们想要运行到HelloWorld.exe的main函数中停下。这么办:使用!dh命令。帮助文档中给出!dh的解释如下:The !dh extension displays the headers fo...
阅读全文
摘要:问题:上面是结构体中的成员,值得注意的是结构体的最后一个成员数组就不会显示错误。Why?我们写一个程序测试一下:当指定了数组大小为1的时候,发现b和c的地址是连续的:给b数组开辟了一个int大小的空间。所以如果不给素组限定大小,那么b和&c的地址就会指向同一处。就会提示错误:但如果b是结构体最后一个...
阅读全文
摘要:内存镜像法:载入OD:内存镜像法在资源节下断点:运行,停在这里:再下断点:运行,停在这里:往下跟踪,凡是向上跳的就F4跳过。注意这里,如果F4跳过jmp到call的位置就会跑飞,所以我们F4跳到红框的位置:直到这里,有一个大跳转:就跳转到了OEP:
阅读全文
摘要:方法一:载入OD,使用ESP定律:下硬件访问断点之后,运行四次,跑飞,那么我们运行三次,到这里看到很多pop:retn返回后就到达OEP了:方法二:直接单步跟踪,跟踪到F4跳过,继续跟踪:遇到这个loopd,F4跳过。继续单步跟踪,会在下面的这三个跳转指令间循环一阵子:往上跳到这里:往上跳到这里:这...
阅读全文
摘要:一上来的载入位置:一路往下跑:但凡遇到往回的大跳转,就按F4跳到下一步,跳过循环部分直到一个retn返回到:然后我们继续往下跟,一直跟到一个jmp如果再F4往下一步,程序就会跑起来:所以我们在这里下个断点:然后按F9运行,看这个循环会运行多少次,大约按了9次后,程序又跑起来,那我们再重新加载程序,这...
阅读全文

浙公网安备 33010602011771号