首页
社区
课程
招聘
loaddll无法载入的DLL怎么调试?
发表于: 2005-9-3 16:20 8005

loaddll无法载入的DLL怎么调试?

2005-9-3 16:20
8005
有一个加了壳的文件a.sss(实际上是一个加了壳的DLL文件,控制程序外观的),它的主程序是b.exe,运行主程序,可以在外观中选择a.
但用ollydbg调试时,loaddll载入它的时候,提示“需要版本大于3.0的b才能运行”,然后中止;试着将主程序b.exe改名为loaddll.exe,然后copy进ollydbg目录中,用ollydbg调试时a.sss时,提示需要loaddll.exe,选择“是”,可以顺利进入,但这时根本在内存中找不到a.sss,loadpe中也无法找到a.sss(即使一开始将a.sss改名为a.dll).
请问:碰到这种dll文件应该怎样调试?

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
应该能“调试”吧,不妨放上来试试
2005-9-4 17:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我无法上传附件。
昨天我笨人想了一个笨方法,loaddll载入提示出错后,我下硬件断点he GetModuleHandleA,这样,用CTRL+F2 重新loaddll载入后会先中断在GetModuleHandleA处,再F9一下,直接搜索出错的jnb判断及call messagebox语句,将jnb改为jmp跳过,然后将call这句NOP掉,这样就可以调试了。
问题是,由于是dll,其它的我都会做,但无法用relox修复重定位表(手工我又不会),所以又是一件烦恼的事情。注:dll_loadEx也无法载入。
如果需要文件,具体请看: http://bbs.hanzify.org/index.php?showtopic=38006 (汉化新世纪),其中的无法载入的dll文件其实就是一些skin文件。
2005-9-4 19:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
对了,我忘记告诉老大了。这些文件的后缀名是xmpskin.其中无法载入的是部分,比如2.x default.xmpskin等。BTW:我已经看见老大去新世纪了。
2005-9-4 20:48
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
弹出那个提示时DLL已经走过OEP
修改DLL EP处为EBFE,暂停后再还原代码调试
2005-9-4 20:49
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
6
用这个:
loaddll.exe
2005-9-4 20:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
嗯,我试试。上次在新世纪也是老大指点我dll的重定位表的问题。一并感谢。
2005-9-4 20:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 jingulong 发布
用这个:
loaddll.exe


jingulong老大,我现在用的就是这个。是不是使用它还有什么奥秘啊?
2005-9-4 20:59
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
是偶修改过的那个吗?如果不是,请点击到相关网页下载
2005-9-4 21:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
确实是老大你修改的那个啊。我刚才又重新下载了,结果还是一样。没什么特别的使用技巧吧。(我是直接解开后copy到ollydbg的目录中,包括两个文件:loaddll.exe,Loaddll.dll).
另外,fly老大的方法我也测试没有成功,我是直接在peid中检测文件,然后在First Bytes这个的右边点击“>"按钮,找到开始时文件的二进制汇编代码,然后在ultraedit中搜索并修改前面两个为"EBFE",但用loaddll载入后根本拦截不住,ollydbg报错就中止了。
不会是我的ollydbg有问题吗?(老大们能亲自测试一下吗?)
这个软件不需要安装的,直接解压后就可以用了。(xmpskin文件下载汉化新世纪中chenmy老大最后上传的那个附件中的好啦(好像这个附件中的所有的文件都有这个问题)
2005-9-4 21:27
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
11
注意你的插件位置,如果你用的是od“汉化”版,应该把loaddll.dll复制到plugin目录才对。检查下你的od所配置的ini文件中Plugin path 设定项吧
2005-9-4 21:44
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
12
已经测试过
BlueX II.xmpskin修改0X243处为EBFE
载入 F12
Alt+C 会看见暂停在EP死循环处
10083043    EB FE           jmp short 10083043  ; <ModuleEntryPoint>
2005-9-4 21:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
最初由 fly 发布
已经测试过
BlueX II.xmpskin修改0X243处为EBFE
载入 F12
Alt+C 会看见暂停在EP死循环处
10083043 EB FE jmp short 10083043 ; <ModuleEntryPoint>

确实可行!是停住了,牛人啊。原来我改错了一个地方。
但jingulong老大的那个还是不知道该怎么用。惭愧啊,连别人的工具都不会用。
2005-9-4 22:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我真的笨。其实,就这个dll来说,无非是载入时要检测版本。如果>2.8(2008)就可以调试。解决它非常easy,我直接用petools打开loaddll.exe,点击pe editor,点击第二项 “optional header”,看见了左下脚的两个major Image Version没有?第一个就是大的版本号,第二个就是小的版本号,我改:第一个为3,第二个为2,那么就是3002了,当然大于2008,这样,就可以直接用ollydbg来跳过检测进行调试了;同理,我有改Dll_loadEx,这样就可以直接load进dll了,然后用relox修复重定位表,真是easy啊。省的手工太麻烦!哈哈。一开始我有傻乎乎的用pe工具添加版本号资源,然后要改这里才对啊。
2005-9-5 17:46
0
游客
登录 | 注册 方可回帖
返回
//