首页
社区
课程
招聘
[旧帖] [讨论][求助]关于脱壳后程序加载的问题 0.00雪花
发表于: 2012-6-26 01:01 952

[旧帖] [讨论][求助]关于脱壳后程序加载的问题 0.00雪花

2012-6-26 01:01
952
我是个新手,刚涉入壳的世界。最近在看加密与解密时,跟着书上对一个案例软件进行脱壳。原理都懂。但有一处问题让我至始至终不能理解,下面是我操作过程及出现的问题。(案例软件为光盘里的:加密与解密_课件\chap13\13.2 寻找OEP\13.2.1 根据跨段指令寻找OEP\加壳后的\RebPE.exe)

1.找出oep及在OEP处用LordPE修正大小后进行dump 得到  dumped.exe

2.用importREC进行重建输入表后得到  dumped_.exe

3.用Peid查看 dumped_.exe  发现  其两个IDD 的OriginalThunk字段都为  0,这说明两个IDD的IMAGE_THUNK_DATA32 数组不存在,也就说明 其 INT不存在。(不知道这里是不是这样理解)


4.既然INT不存在,那Windows加载器如果在程序启动时进行填写IAT  ,难道 脱壳后的程序不需要这个步骤,即不需要INT....... (不大可能).  

5.为了验证上面的猜想,我用Hex编辑器,找开 了 dumped_.exe ,发现PE文件里还是有INT的,只是OriginalThunk字段没有写入而已.


紧接着我修改了其中一个API的名称字符串,


然后SAVE 为xg.exe,接着运行修改后的程序xg.exe,但此时出问题了,


这说明windows加载器加载程序时还是需要INT的,但不解的是,IDD的OriginalThunk为0,PE文件头里没指明INT的位置,WINDOWS加载器如何加载,但事实是虽然PE文件头里没有指INT信息,但WINDOWS加载器也同样能根据PE文件存的INT填写IAT,极其的不解。

还有一种情况是,当我修改PE文件头的IDD的OriginalThunk 为正确的INT地址时,程序同样无法运行,只是出错的提示不一样,


很是不理解,希望各位能指教下在下....不胜感激..

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//