首页
社区
课程
招聘
用Ollydbg手脱UPX加壳的DLL(鸡蛋里挑骨头)
发表于: 2006-4-25 18:51 5049

用Ollydbg手脱UPX加壳的DLL(鸡蛋里挑骨头)

2006-4-25 18:51
5049
fly大虾 原作 http://bbs.pediy.com/showthread.php?s=&threadid=1484

三、重定位表修复 + PE修正


UPX破坏了重定位表。在第一步我们已经得到重定位表的地址了,用WinHex打开dumped_.dll,复制7318-74EA之间的16进制数值,另存为fly.bin
运行 看雪 老师写的辅助修复UPX加壳DLL重定位表的工具UPXAngela.exe,打开fly.bin,很快的提示pediy.bin文件创建成功!

从dumped_.dll找块空白代码,如自UPX1段的6000处开始。够用就行,pediy.bin中的数据长度为3B0。
用WinHex把pediy.bin中的16进制数值全部复制、写入到dumped_.dll的6000处。
用LordPE修正dumped_.dll的重定位表RVA=00006000、大小=000003B0,保存之。

再用LordPE修正dumped_.dll的基址为003B0000,OK,脱壳完成啦。


这里fly老大写错了,脱壳后文件里里重定向的位置是在0x4600 不信以图为证


所以。。。。。。。。。。。。。。。。。。。。。。。。。。。。

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
网站限制图片 每张100K 没法子 这个已经是86k了 基本不影响观看吧。
2006-4-25 18:59
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
谢谢 bney  
刚才看了一下,偏移是0X4600,RVA是00006000
2006-4-25 19:23
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ywb
4
感谢中,先保存在说,
2006-4-25 19:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
fly大哥 再请教一个问题 我按照您的教程 一步一步都做了 重复操作了几遍 确认没有错误  脱upx壳后 dll在本机能运行 放到别的电脑上就不行了  是不是重定位 没搞好啊   可我都是照您教程里说的做的啊

还有 “偏移是0X4600,RVA是00006000” 偏移和RVA是一会事情吗,不懂了 00006000是怎么来的啊 老大?
2006-4-25 20:35
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
无法跨平台有可能是重定位表/输入表等问题

PE基础知识论坛找一些帖子,有不少
偏移/虚拟地址:
http://bbs.pediy.com/showthread.php?s=&threadid=18022
2006-4-25 21:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我的dll可以在别的机器上运行了,主要是我调试的dll和其余的dll版本不同所致 ,我把dll都更新了 然后再把握脱壳的覆盖过去就好了。   谢谢fly啊,你是我学习逆向工程过程中 一位相当重要的人物。
2006-4-25 21:25
0
游客
登录 | 注册 方可回帖
返回
//