1. 虚拟机检测程序的分析

    背景

    2015/02/08 Reverse_Engineering

  2. 4gb_patch原理

    分析   4gb_patch是允许程序支持4GB空间的小工具   话休絮烦,ida载入后直接找到代表WinMain的函数sub_4015A6

    2015/02/02 Reverse_Engineering

  3. 研究星号密码查看器的工作原理

    背景

    2015/01/17 Reverse_Engineering

  4. 研究spy++如何获取窗口的WndProc回调地址

    背景

    2015/01/16 Reverse_Engineering

  5. 关于IDA库函数识别技术的讨论

    1.lib是否应该分类?   我并没有系统研究过lib文件格式,不过从某些解析器可以看出含有目录结构,是多个文件打包处理后形成的一种文件,其中的文件可以通过VS自带工具解包出来。一般含有2种子文件形式:.dll和.obj。前者是动态链接库编译生成的文件形式,里面仅有链接信息而没有实际执行代码,用于定位到dll中的函数,而obj则是代码编译产生的可执行机器码。对于静态链接库工程编译后得到的lib(我称为“第一种lib文件格式”),用ida打开可以看到这个lib包含多个obj文件,给第三方使用时只需要用#pragma comment(lib,”.lib”)包含进来即可,结果是obj中的代码转移到生成的可执行文件中;对于动态链接库工程编译后得到的lib(我称为“第一种lib文件格式”)和dll,lib用IDA打开可以发现包含多个dll文件,他们只有定位dll函数的作用,而实际执行代码在dll中,给第三方使用时,如果单纯用dll则调用LoadLibrary和GetProcAddress系列API获得函数指针从而进行调用,如果同时使用lib和dll则只需要用#pragma comment(lib,”.lib”)包含进来即可使用里面的函数,这两种方式我把他称为“静态方式的动态链接”和“动态方式的动态链接”,无论哪种方式,dll都必须存在于可执行文件目录,否则无法运行。   对于“第二种lib文件格式”解包的dll文件分析其PE格式,可以发现并不是常规的dll格式也就是PE格式,而只是一部分,且含有.debug .idata段,目前还没做深入研究。

    2015/01/15 Reverse_Engineering

  6. 如何捕获程序mov eax,fs:[0]的行为?

      这个问题我今天学习调试时突发奇想想到的,FS:[0]处能做不少事情,反调试、获取tib peb数据、异常处理,如果能提前拦截到程序mov eax,fs:[0],mov eax,fs:[0x30]等行为会不会是个很好的想法呢?以下是我的研究成果:

    2015/01/13 Debug

  7. 关于C++名称修饰的解析

      曾有人发过该功能代码,然而近日发现微软已经提供了专用API实现这一功能,而且比较复杂。该函数为UnDecorateSymbolName,为调试API之一,下面是测试用例:

    2015/01/03 C/C++

  8. OllyDbg插件深入分析

    OllyDbg插件深入分析

    2014/12/30 Reverse_Engineering