首页
社区
课程
招聘
Diy OllyDbg's Loaddll.exe
发表于: 2005-8-13 13:02 24005

Diy OllyDbg's Loaddll.exe

2005-8-13 13:02
24005

目的:用OllDbg中断在dll的入口
一、编写plugin :
1.        DllEntryPoint如图:

2.ODBG_Plugininit如图:新启一个线程,由此线程的函数WinMain创建一个(隐藏)窗口。

3.窗口回调函数如图:

至此,plugin设计完成,它所起的作用是:
1.        当得到WM_USER消息时返回dll入口地址(在MyLdrpCallInitRoutine中)
2.        当得到WM_USER+1消息时在wParam指示的地址(就是你调试点dll入口点)设置临时断点(Tempbreakpoint)。

二、        在dll的加载进程中与plugin通讯。
    为此,可以写一个加载程序(就好像DLL_Loader),我这里选择diy llyDbg配套的loaddll.exe,因为只有它可与OD“无缝对接”。用LordPE打开程序看看结构,当看到它的ExportTable时,感觉实在妙!下面是其截图:

    每个导出函数名称叫人看了都如此受用,特别是PatchArea!Oleh Yuschuk为我们考虑得实在周到。Thanks
Diy 过程:
1.        把ImportTable中的GetCommandLineA改成GetProcAddress
2.        Patch

   为:

并在Patcharea(410298)处键入:

以完成原语句的功能。这里程序中原来没有的字符串(如“GetCommandLineA”)等在data区或rsrc区段空白处录入。
3.Patch

为 call  4102B5,并在4102B5开始写入如下代码:



以上代码完成的主要任务是hook dll entrypoint,当程序查到入口处是调试点dll oep 时通知plugin设置断点,使OllyDbg中断在那里,这样我们可以少飞许多手脚。

btw:
Fly说“不是”。这里算是一篇“是”的说明吧。

http://bbs.pediy.com/showthread.php?s=&threadid=16082


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

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 133
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持。。。。。。。
2005-8-13 13:03
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
明白了,调试dll更方便了
2005-8-13 13:13
0
雪    币: 221
活跃值: (2301)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
有没有作好的程序?放上来试试?
2005-8-13 13:20
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
还是没看懂。。。
OD本来加载DLL不就是停在入口么?
2005-8-13 14:43
0
雪    币: 328
活跃值: (925)
能力值: ( LV9,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
支持!!!!!
2005-8-13 16:01
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
7
插件+patch,高!

BTW: fly的论坛怎么又上不去了?
2005-8-13 16:21
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
8
东西放出来给弟兄们耍耍呀
2005-8-13 17:39
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
9
to  playar  
原程序如果加载成功将停在 Firstbp(410148)处,这时 dll的DllEntryPoint函数已经执行完成,你在Code窗口看到的是加载后的code

to  hnhuqiong &  lhglhg :
http://bbs.pediy.com/showthread.php?threadid=16082
2005-8-13 17:58
0
雪    币: 124
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
测试了pycq.dll

可以停在入口

exe文件不可以停在入口也做个patch吧
2005-8-13 18:40
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
11

“入口”的这个含义杂了.....
进程入口or线程入口,应用程序入口,系统程序入口....
2005-8-13 20:02
0
雪    币: 97697
活跃值: (200744)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持。
2005-8-14 00:07
0
雪    币: 458
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
最初由 playar 发布
还是没看懂。。。
OD本来加载DLL不就是停在入口么?


有壳就不同了。
2005-8-14 11:27
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
学习!。。。。
2005-8-14 12:08
0
雪    币: 239
活跃值: (478)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
喜欢看牛人的帖子
2005-8-15 11:07
0
游客
登录 | 注册 方可回帖
返回
//