首页
社区
课程
招聘
[08.13] ollydbg 2.01d 自适应路径版本
发表于: 2011-8-4 10:31 8436

[08.13] ollydbg 2.01d 自适应路径版本

2011-8-4 10:31
8436
修改说明:
强制 OD 使用主程序目录下的 UDD 和 Plugins 目录作为调试数据和插件的保存目录.
如果这两个目录不存在则会创建, 如果创建目录失败则使用当前目录.

by cntrump
2011-08-13

下面的修改的过程:

为了修改方便,添加两个字符串和两个导入函数:

新增的字符串
4edd28:
%s\UDD
 
4edd38:
%s\Plugins 

新增的导入函数
CreateDirectoryW: call dword ptr [0075403F]
wsprintfW: call dword ptr [00754017]


找到读取配置文件的地方:
0040CC05  |.  68 7A4F5000   push ollydbg.00504F7A                    ; /Arg3 = 00504F7A
0040CC0A  |.  68 944E5600   push ollydbg.00564E94                    ; |Arg2 = 00564E94
0040CC0F  |.  68 1A465000   push ollydbg.0050461A                    ; |Arg1 = 0050461A
0040CC14  |.  E8 1F58FFFF   call ollydbg.Filefromini                 ; \Filefromini
0040CC19  |.  68 944E5600   push ollydbg.00564E94                    ; /Arg1 = 00564E94
0040CC1E  |.  E8 0D8AFFFF   call ollydbg.Absolutizepath              ; \Absolutizepath
0040CC23  |.  833D 1C4A5600>cmp dword ptr ds:[564A1C],0
0040CC2A  |.  74 26         je short ollydbg.0040CC52
0040CC2C  |.  68 944E5600   push ollydbg.00564E94
0040CC31  |.  FF15 1C4A5600 call dword ptr ds:[564A1C]               ;  shlwapi.PathIsDirectoryW
0040CC37  |.  85C0          test eax,eax
0040CC39  |.  75 17         jnz short ollydbg.0040CC52
0040CC3B  |.  68 8C4C5600   push offset ollydbg._ollydir             ; /Arg3 = 00564C8C
0040CC40  |.  68 04010000   push 104                                 ; |Arg2 = 00000104
0040CC45  |.  68 944E5600   push ollydbg.00564E94                    ; |Arg1 = 00564E94
0040CC4A  |.  E8 0D280000   call ollydbg._StrcopyW                   ; \_StrcopyW
0040CC4F  |.  83C4 0C       add esp,0C
0040CC52  |>  68 864F5000   push ollydbg.00504F86                    ; /Arg3 = 00504F86
0040CC57  |.  68 1C9A5B00   push offset ollydbg._plugindir           ; |Arg2 = 005B9A1C
0040CC5C  |.  68 38465000   push ollydbg.00504638                    ; |Arg1 = 00504638
0040CC61  |.  E8 D257FFFF   call ollydbg.Filefromini                 ; \Filefromini
0040CC66  |.  68 1C9A5B00   push offset ollydbg._plugindir           ; /Arg1 = 005B9A1C
0040CC6B  |.  E8 C089FFFF   call ollydbg.Absolutizepath              ; \Absolutizepath
0040CC70  |.  833D 1C4A5600>cmp dword ptr ds:[564A1C],0
0040CC77  |.  74 26         je short ollydbg.0040CC9F
0040CC79  |.  68 1C9A5B00   push offset ollydbg._plugindir
0040CC7E  |.  FF15 1C4A5600 call dword ptr ds:[564A1C]               ;  shlwapi.PathIsDirectoryW
0040CC84  |.  85C0          test eax,eax
0040CC86  |.  75 17         jnz short ollydbg.0040CC9F
0040CC88  |.  68 8C4C5600   push offset ollydbg._ollydir             ; /Arg3 = 00564C8C
0040CC8D  |.  68 04010000   push 104                                 ; |Arg2 = 00000104
0040CC92  |.  68 1C9A5B00   push offset ollydbg._plugindir           ; |Arg1 = 005B9A1C
0040CC97  |.  E8 C0270000   call ollydbg._StrcopyW                   ; \_StrcopyW
0040CC9C  |.  83C4 0C       add esp,0C

修改为:
0040CC05      68 8C4C5600         push offset ollydbg._ollydir                       ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC0A      68 28DD4E00         push ollydbg.004EDD28                              ;  UNICODE "%s\\UDD"
0040CC0F      68 944E5600         push ollydbg.00564E94                              ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC14      FF15 17407500       call dword ptr ds:[<&USER32.wsprintfW>]            ;  user32.wsprintfW
0040CC1A      68 944E5600         push ollydbg.00564E94                              ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC1F      FF15 1C4A5600       call dword ptr ds:[564A1C]                         ;  shlwapi.PathIsDirectoryW
0040CC25      85C0                test eax,eax
0040CC27      75 29               jnz short ollydbg.0040CC52
0040CC29      6A 00               push 0
0040CC2B      68 944E5600         push ollydbg.00564E94                              ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC30      E8 AB090E00         call <jmp.&KERNEL32.DeleteFileW>
0040CC35      68 944E5600         push ollydbg.00564E94                              ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC3A      FF15 3F407500       call dword ptr ds:[<&KERNEL32.CreateDirectoryW>]   ;  kernel32.CreateDirectoryW
0040CC40      85C0                test eax,eax
0040CC42      75 0E               jnz short ollydbg.0040CC52
0040CC44      8D05 944E5600       lea eax,dword ptr ds:[564E94]
0040CC4A      C700 2E000000       mov dword ptr ds:[eax],2E000000
0040CC50      90                  nop
0040CC51      90                  nop
0040CC52      68 8C4C5600         push offset ollydbg._ollydir                       ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC57      68 38DD4E00         push ollydbg.004EDD38                              ;  UNICODE "%s\\Plugins"
0040CC5C      68 1C9A5B00         push offset ollydbg._plugindir                     ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC61      FF15 17407500       call dword ptr ds:[<&USER32.wsprintfW>]            ;  user32.wsprintfW
0040CC67      68 1C9A5B00         push offset ollydbg._plugindir                     ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC6C      FF15 1C4A5600       call dword ptr ds:[564A1C]                         ;  shlwapi.PathIsDirectoryW
0040CC72      85C0                test eax,eax
0040CC74      75 29               jnz short ollydbg.0040CC9F
0040CC76      6A 00               push 0
0040CC78      68 1C9A5B00         push offset ollydbg._plugindir                     ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC7D      E8 5E090E00         call <jmp.&KERNEL32.DeleteFileW>
0040CC82      68 1C9A5B00         push offset ollydbg._plugindir                     ;  UNICODE "C:\Documents and Settings\cntrump\"
0040CC87      FF15 3F407500       call dword ptr ds:[<&KERNEL32.CreateDirectoryW>]   ;  kernel32.CreateDirectoryW
0040CC8D      85C0                test eax,eax
0040CC8F      75 0E               jnz short ollydbg.0040CC9F
0040CC91      8D05 1C9A5B00       lea eax,dword ptr ds:[_plugindir]
0040CC97      C700 2E000000       mov dword ptr ds:[eax],2E000000
0040CC9D      90                  nop
0040CC9E      90                  nop

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (26)
雪    币: 345
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢提供修改方法,学习下。。。
2011-8-4 10:34
0
雪    币: 161
活跃值: (261)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感謝大大的修改版!
2011-8-4 11:09
0
雪    币: 1847
活跃值: (1816)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
4
好使
2011-8-4 11:14
0
雪    币: 768
活跃值: (535)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
5
cntrump 手好快
算上全球第1patch啦。。。
2011-8-4 16:22
0
雪    币: 97697
活跃值: (200849)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
Support!

Welcome forum.forum is a home.

Please respect the copyright from the Internet.
Пожалуйста, уважайте авторское право в Интернете.
來源于互聯網, 請尊重版權.
所發資源全部來自對互聯網公共資源的收集和整理,僅供學習之用,請于下載后24小時自行刪除!
Issued by all the resources of public resources from the Internet to collect and collate, study purposes only,
please delete themselves 24 hours after downloading!
Выпущено всеми ресурсами государственных ресурсов из Интернет
а на сбор и обобщение, изучение целей, пожалуйста, удалите себя
24 часов после скачивания!
You can Google.

Программное обеспечение выпуска и Windows Crack Обучение
Нам-Dabei Guanyin Бодхисаттва Нам без митабха
2011-8-4 16:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
菜鸟一个,过来取经先。。。。
2011-8-4 17:13
0
雪    币: 421
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
谢谢分享。不知道有没有中文版的。
2011-8-4 17:47
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
9
cntrump 好快
2011-8-4 17:48
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
如此这般速度…
2011-8-4 20:27
0
雪    币: 24
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
如果移动加上配置文件一起启动的话,原生版本使用./udd就可以定位到当前目录的udd目录下,没必要改原文件吧
2011-8-5 08:18
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
12
.\udd 就能使用当前目录,修改后是让 od 的设置目录无效,不管怎么设置了 udd 目录,都强制使用当前目录下的 udd 和 plugins 目录。
2011-8-5 08:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
必须顶!
2011-8-7 22:41
0
雪    币: 1938
活跃值: (1709)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
嘿嘿。这个是好东西。方便了我这菜鸟。
2011-8-7 23:58
0
雪    币: 4902
活跃值: (135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
跟进看下新版哈。。。
2011-8-10 21:40
0
雪    币: 82
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
建个udd目录,OD第一次启动时会自动保存udd文件在该目录下。(对plugins也一样)

没必要强制使用当前目录下的 udd 和 plugins 目录,一方面改程序麻烦,另一方面还可能(由于读写存限问题等)无法在当前文件夹下写数据。
2011-8-14 11:46
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
17
在 od 1 的时候, 是使用绝对路径来保存数据的, 到了 od2 ,作者也意识到了使用不方便, 改成了使用相对路径. od 2 在保存到配置的时候, 会把绝对路径转换为相对路径再保存到配置文件里, 这样会有一个问题, 如果数据目录和OD是放在C盘, 当把 OD 移动到 D盘(数据目录位置不移动)后, 再启动 OD 就会找不到目录.
我修改的原因并不是因为这个, 而是因为我在用VS调试插件的时候, 发现如果不把工作目录设置为 OD 所在目录, 就会出现OD加载不到插件的情况. 所以我就把它改为了无论如何都绝对使用OD主程序目录下的 udd 和 plugins 目录.

就是说, OD 使用相对路径来加载数据, 而相对路径会受到当前目录的影响.就是因为这个,我才修改的.
我是为了调试插件的时候方便才修改的.
欢迎大家参与讨论.
2011-8-14 12:40
0
雪    币: 4902
活跃值: (135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谢谢分享方法啊
2011-8-14 13:13
0
雪    币: 82
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
od 1,是存在这个问题。在工程设置里 直接设置 od程序的路径和工作目录稍微麻烦了点。
od 2  本身可以做到自适应。 看Absolutizepath的实现,如果从ini读取出的路径是以".\"或"..\"开头,且成功加载了SHLWAPI.PathCanonicalizeW(win2000以后的系统都不成问题),就用_ollydir(OD程序所在的文件夹而不是当前工作目录)扩展该路径。因此,只要建立两个文件夹udd和plugins就够了。
2011-8-15 21:21
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
20
如果配置文件 里的路径写的是 "." ,那么OD就会使用的是当前目录而不是OD目录。
2011-8-16 09:00
0
雪    币: 200
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
需要这个 下载一个看看
2011-8-23 01:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢少侠的修改,好久没来看雪,之前的OD在Win7下都不太兼容了
2011-8-23 14:57
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
哈哈,   好!!
2011-8-26 14:44
0
雪    币: 175
活跃值: (2551)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不支持中文,期待正式版
2011-9-10 23:09
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
老大辛苦,学习
2011-9-16 15:28
0
游客
登录 | 注册 方可回帖
返回
//