首页
社区
课程
招聘
[求助]NSPack 3.x -> Liu Xing Ping * 的dll脱壳问题
发表于: 2008-1-20 05:37 6932

[求助]NSPack 3.x -> Liu Xing Ping * 的dll脱壳问题

2008-1-20 05:37
6932
写程序6年了,刚接触脱壳。发现自己什么都不懂了。
某挂的dll经过peid检测为 NSPack 3.x -> Liu Xing Ping *,用od调试,用esp定律脱壳,dump出来的dll用 peid的核心扫描显示为 Borland Delphi DLL,但是其它扫描显示依然为 NSPack 3.x -> Liu Xing Ping *,然后我把脱壳后的文件的oep直接指定到正确的oep处,再检测就都是borland dll了。但是我用程序加载了这个脱壳后的dll,提示“应用程序正常初始化错误”。所以我又用importRec修复了IAT。再此加载此dll,错误依然。我明白了是坛主说的脱壳不完全或者是后期初始化有问题。
现在我又用petools修复了重定位表,dll能调入了,得到了dll的句柄,GetProcAddr也能得到函数的指针,但是调入之后无法使用dll里面的函数出现访问地址错误,而且在freelibirary的时候也会出现访问内存错误,是我重定位表修复的有问题,还是别的地方有问题?
由于没有权限上传文件我暂时不能把我的文件上传上来,希望给位大侠指正!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我只能说
楼主你的ID太猛了
2008-1-20 05:40
0
雪    币: 260
活跃值: (102)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3


2008-1-20 09:13
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
别说id的事,给我点有用的回复啊!
2008-1-20 09:39
0
雪    币: 50161
活跃值: (20620)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
你虽然脱壳了,但外壳的代码还是存在的,因此用peid扫描出现这些结果都是可能。



经过和LionXue沟通,ID己换,感谢理解和支持。
2008-1-20 10:05
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那么看雪老大,怎么才能把外壳代码清除掉呢?
2008-1-20 10:53
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
自己顶一下!
2008-1-20 20:12
0
雪    币: 50161
活跃值: (20620)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
8
才看到。
这就需要正常脱壳了,脱完壳再优化。
脱壳文章:http://bbs.pediy.com/showthread.php?t=20366
优化文章:http://bbs.pediy.com/showthread.php?s=&threadid=28402

当然,如果正确脱壳,一般不优化也不影响使用的。
2008-1-20 20:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
坛主也经常关注新手区并回答一些“很菜”的问题,让人感动
2008-1-21 17:13
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
多谢坛主对我们新手的关心,很感动。我汇报一下进展,我把脱壳后的文件的oep直接指定到正确的oep处,再检测就都是borland dll了。但是我用程序加载了这个脱壳后的dll,提示“应用程序正常初始化错误”。所以我又用importRec修复了IAT。再此加载此dll,错误依然。我明白了是坛主说的脱壳不完全或者是后期初始化有问题,可我从老大的资料里看没有多少是dll。希望在各位高手知道下首战告捷。
loadlibirary 失败后调用 GetLastError 问题id是998--内存分配访问无效。是不是脱壳完的dll里面的内存访问有问题,会不会dll里调用的是绝对地址,如果是这问题,该如何修复??

仔细翻了一边,发现脱壳后的dll里面好多绝对地址,可能是这个原因造成的无法调入,但是那么多地址如何修改呢,怎么解决这个问题呢?
2008-1-22 03:15
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
自己顶一下!
2008-1-22 12:02
0
雪    币: 0
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你虽然脱壳了,但外壳的代码还是存在的,因此用peid扫描出现这些结果都是可能。
2008-1-22 15:55
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
现在我把oep直接定位到了真正的代码处,外壳代码没有去掉,先不做优化了。识别都正常了,只是dump出来的dll里面的 类似于 move ax offset xx 之类的都变成了 move ax 8xxxxx的绝对地址了,因此dll不能正确的执行。解决不了这个问题了。
2008-1-23 03:46
0
雪    币: 50161
活跃值: (20620)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
14
重定位没处理好。

方法1:你在外壳跳过对代码的重定位,再Dump出来,这时move ax offset xx 和原来一样。

方法2:就是你目前情况,尝试将DLL基址改成当前的基址,类似8xxxxx
2008-1-23 11:12
0
雪    币: 204
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
谢谢坛主,终于搞定了
2008-2-18 16:16
0
游客
登录 | 注册 方可回帖
返回
//