首页
社区
课程
招聘
一个例子!
发表于: 2004-11-14 19:10 5932

一个例子!

2004-11-14 19:10
5932
比如:
00432292  |.  6A 00         PUSH 0                                   ; /Data = NULL
00432294  |.  6A 03         PUSH 3                                   ; |Command = HELP_INDEX
00432296  |.  68 3D5A4B00   PUSH Ollydbg.004B5A3D                    ; |Path = "ollydbg.hlp"
0043229B  |.  A1 7C3B4D00   MOV EAX,DWORD PTR DS:[4D3B7C]            ; |
004322A0  |.  50            PUSH EAX                                 ; |hWnd => NULL
004322A1  |.  E8 54D30700   CALL <JMP.&USER32.WinHelpA>              ; \WinHelpA

请问这里如何改才能调用一个文本文件如 ollydbg.txt而不是.hlp文件,谢谢各位大大先

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 1
支持
分享
最新回复 (17)
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
看错了
应该是需要修改函数的
2004-11-14 19:28
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢fly大侠,光这样改是调用不了的,提示说不是一个帮助文件或文件已损坏,我想应该改api函数,
请再指教!
2004-11-14 22:30
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大大出来
2004-11-15 12:50
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请fly说说如何改谢谢
2004-11-15 16:28
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
:(
2004-11-15 19:38
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
ShellExece.......
WaitObject......

Api偶记不清楚,反正就是把txt运行起来以后再等待它结束才运行后面的
2004-11-15 20:11
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
8
push    1                   ;SW_ShowNormal  打开状态
push    00
push    00
push    offset Fpath        ;文件路径
push    00
push    00                  ;handle
call    ShellExecute        ;这个函数你自己查一下地址

其中Handle参数可以设定为OD本身的句柄,这样你举可以获得一些错误信息。OD的句柄可以看一下启动时候的GetModule函数的返回值,你存起来,放在这里就可以了。
修改的时候请注意堆栈平衡。
有问题再说。
2004-11-15 20:20
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢nbw,
00432292       6A 01             push 1
00432294       6A 00             push 0
00432296       6A 00             push 0
00432298       68 3D5A4B00       push ollyDbg.004B5A3D          ;  ASCII "help.txt"
0043229D       6A 00             push 0
0043229F       6A 00             push 0
004322A1       E8 9CD00700       call <jmp.&SHELL32.ShellExecut>
改为这样后,就可以调用help.txt
请问"OD的句柄可以看一下启动时候的GetModule函数的返回值"

这个值具体怎么得到谢谢,真是不胜感激!!
2004-11-15 21:14
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
10
GetModule函数返回这个值,但是一般来说,并不保存他。你可以在这个地方修正一下,把这个返回值放到你自己看中的地方。以后调用,直接用就行了。
2004-11-15 23:11
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢nbw老哥,请你就以调用help.txt为例把汇编代码贴出来好吗?谢谢!
2004-11-16 00:07
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
12
最初由 学习中 发布
谢nbw老哥,请你就以调用help.txt为例把汇编代码贴出来好吗?谢谢!


我又看了一下说明,不好意思,我理解错那个函数参数的意思了。那个参数不应该是进程的基址,应该是窗口句柄。一般来说,窗口句柄可以用FindWindow,但是咱们这里搞DIY,就没那么麻烦了。可以跟踪一下CreateWindow函数的返回值,但是OD里面有很多子窗口,so,跟踪也很头大。我给你个地址,你直接用就行了:129A28 H,这个地方就保存的是OD主窗体的句柄,我这里是win2k。
上帝保佑没什么大变动 。

PS:  我个人感觉那个参数就用NULL也挺好的,除非你要用的高级点。
2004-11-16 01:38
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
谢谢nbw老哥!!
真是好感谢你!!
我刚试了下那个值,没那么多字节写进去啊,
2004-11-16 04:02
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
起床了。。。。。。。。
nbw老哥还在睡懒觉。。。。。。。
2004-11-16 11:26
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
穷只一穴,埋却古今豪杰!
钱有两戈,杀尽天下英雄!
敏而好学,不耻下问上问!问通为止!
2004-11-16 13:44
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢nbw,
00432292       6A 01             push 1
00432294       6A 00             push 0
00432292       6A 01             push 1
00432294       6A 00             push 0
00432296       6A 00             push 0
00432298       68 3D5A4B00       push ollyDbg.004B5A3D          ;  ASCII "help.txt"
0043229D       6A 00             push 0
0043229F       6A 00             push ??
004322A1       E8 9CD00700   call <jmp.&SHELL32.ShellExecut>

打??的地方请帮我填一下,我试了为什么不能成功呢?再次感谢!
2004-11-16 16:18
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
17
不好意思,刚来,你那个??应该是 dword ptr [129A28] 。你试验一下。我没试验,不好意思。

另外,你要是真想把反馈信息反馈到窗口句柄,最好再仔细研究研究这个函数的说明。
2004-11-16 17:45
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谢谢牛哥~:D :D
2004-11-17 15:50
0
游客
登录 | 注册 方可回帖
返回