发表于 2010-11-24 18:45

申请会员 ID:hx131452[申请通过]

ID:hx131452
邮箱:hx131452@163.com
特长:喜欢逆向,破解分析
案例:
我对Dump文件的认识
首先我们用od加载upx壳来到oep处,用LordPE dump一下吧
双击我们dump下的文件,程序报错
到底是什么原因啊
首先 用lordPe看一下他的入口点 还是原来的
那么我们修改一下 ,发现还是不行 ,那好我们看一下他的输入表,
还是发一段输入表结构吧
typedef struct _IMAGE_IMPORT_DESCRIPTOR {
    union {
         DWORD Characteristics;    // 0 for terminating null import descriptor
         DWORD OriginalFirstThunk; // RVA to original unbound IAT (PIMAGE_THUNK_DATA)
    };
    DWORD TimeDateStamp;          // 0 if not bound,
                                 // -1 if bound, and real date\time stamp
                                 //   in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND)
                                 // O.W. date/time stamp of DLL bound to (Old BIND)

    DWORD ForwarderChain;      // -1 if no forwarders
    DWORD Name;
    DWORD FirstThunk;             // RVA to IAT (if bound this IAT has actual addresses)
} IMAGE_IMPORT_DESCRIPTOR;

typedef struct _IMAGE_THUNK_DATA32 {
    union {
         PBYTE   ForwarderString;
         PDWORD Function;
         DWORD Ordinal;
         PIMAGE_IMPORT_BY_NAME   AddressOfData;
    } u1;
} IMAGE_THUNK_DATA32;

typedef struct _IMAGE_IMPORT_BY_NAME {
    WORD    Hint;               //指出函数在所在的dll的输出表中的序号
    BYTE    Name;            //指出要输入的函数的函数名
} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
发现dump下的输入表只有二个字段有值 一个是Name 一个是 FristThunk
看看FristThunk 他指向的是内存中函数地址
用od加载脱壳前的程序 和脱壳后的程序 发现调用的函数地址是一样的,但是脱壳前的程序显示函数名称,而脱壳后的程序不显示函数名称
个人猜测程序报错,可能是在读取输入表的时候 读到的是内存中函数的地址,但是加载exe程序的程序想到这个地址去找api的名字,但是又没有这个名字,造成的错误提示
虽然脱壳后的程序的api没有显示,但是我在函数上按enter还是可以进入函数里面的
取值也是对的
现在回到我们的主题 dump,为什么会出现这种情况啊
Dump是把内存中所有的数据全部dump下了,当然为了保证解密完成我们才到oep处的
其实 我们完全可以双击程序,再dump这样没有任何关系的
那么一些牛人为什么要先到oep,因为他们想知道oep是多少
那么为什么dump后输入表里面FirstThunk是一些函数地址
是因为加载程序的程序给一些要用的API加载内存中,再给地址写进FirstThunk里面
当我们dump下后 看到FristThunk里面就是内存中的地址
那么我们怎么修补啊
首先我们要确认输入表的IAT的位置,用od加载脱壳前的程序定位就可以了
再修复脱壳后的程序
手动修复当然首先该一下oep,再定位到输入表位置,重新构造输入表
一些工具就是重新建立一个节,接着再构造
但是有一点要注意:原来IAT的位置一定不能移动
要保存
如果想动这里,那你就不得了啊

Hmily 发表于 2010-11-28 00:02

ID:hx131452
邮箱:hx131452@163.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息

hx131452 发表于 2010-12-14 15:49

我来报道了
页: [1]
查看完整版本: 申请会员 ID:hx131452[申请通过]