首页
社区
课程
招聘
[分享]总结五种语言按钮事件的找法
发表于: 2011-10-15 00:45 28095

[分享]总结五种语言按钮事件的找法

2011-10-15 00:45
28095
调试软件,最重要的就是下断点,那么如何下断点,就是一门重要的技巧.
比如:弹提示框,就下MessageBoxA,注册表的,就下RegOpenKeyA等等.
当然,能直接下到按钮事件,当然更为方便,因为到了按钮事件后,很快就会到达核心代码,离你的破解也就不远了.
本文就总结一下各类语言找按钮事件的方法,当然也可以借助工具,如VBexplorer,DEDE,ECE等等.

一、VB程序
其实,VB的按钮事件的找法是最为普遍的,也就是大家所谓的万能断点.其实也不仅仅是针对按钮事件,还有很多其他的用处,如取消NAG,启动框,灰色按钮或隐藏按钮,启动时的timer事件等等,具体的就自己去总结吧,这里只演示按钮事件!

OD载入后,CTRL+B,816C24

确定后,就会来到下图处:

然后,就在下面的JMP处F2下断,下完后CTRL+L,如果还有,就继续下断点.

下完断点后,运行程序,点击相应的按钮,OD就会断下来了

下面的任务就是考验大家的耐心,F8跟踪吧,不再赘述了.

当然,为了方便大家,可以写个简单的脚本,免的每次都去手动设置了,节省时间:
复制内容到剪贴板
代码:
var Addr
mov Addr,401000
loop:
find Addr,#816C2404??000000#
cmp $RESULT,0
je Exit
add $RESULT,08
bp $RESULT
add $RESULT,1
mov Addr,$RESULT
jmp loop
Exit:
eval "按钮事件查找完毕!"
msg $RESULT
ret
二、Delphi和BC++程序

Delphi和BC++都是同一公司开发的,故查找方法都一样,当然你也可以使用DEDE.

OD载入后,CTRL+G,转到00401000处
然后就CTRL+B,查找特征码740E8BD38B83????????FF93????????

然后就会找到下面的地方:

然后就在下面的CALL处下断吧.

下面的工作就是不断的CTRL+L继续查找和F2下断了.

运行下看看效果吧:

看,断下了吧,下面就F7跟进这个CALL吧,就来到这个按钮事件处了.

同样写个脚本,方便大家操作:
复制内容到剪贴板
代码:
var Addr
mov Addr,401000
loop:
find Addr,#740E8BD38B83????????FF93????????#
cmp $RESULT,0
je Exit
add $RESULT,0A
bp $RESULT
add $RESULT,1
mov Addr,$RESULT
jmp loop
Exit:
ret
三、易语言
易语言的这种查找方法,同样适合有壳的程序,其他的就必须脱壳后再继续操作了.

OD载入后,就F9运行程序吧,当程序运行后,ALT+E
选中易语言的核心库krnln,双击进去

然后CTRL+B,查找FF 55 FC

查找到的这个CALL就是了,F2下断吧

现在输入必须的内容后,单击对应的按钮吧

看,断下了吧,下面就F7跟进吧,就来到按钮事件处了

同样,写个脚本,方便大家
复制内容到剪贴板
代码:
gpa"GetProcessHeap","kernel32.dll"
cmp $RESULT,0
je err
bp $RESULT
run
run
run
bc $RESULT
rtu
find 10001000,#FF55FC5F5E895D??8945#
bp $RESULT

find eip,#FFE0#
cmp$RESULT,0
je err
bp $RESULT
run
bc $RESULT
sto

MSG "按钮事件查找完毕!"
ret

err:
MSG "脚本运行错误!请检查错误后再继续运行脚本!"
ret
四、VC++程序(非MFC程序)

OD载入后,单击鼠标右键,选择"查找",然后是"所有命令"
在弹出的输入框里,写入特征代码"sub eax,0a"

确定后,就来到下面的窗口

在下面的sub eax,0A处,双击进去吧:

来找这里后,在下面的je处跟随过去

跟随来到的这个CALL,就是了,F2下断吧

然后断下后,F7跟进,F8几次,就来到按钮事件了.

                                             五、MFC类程序

当然判断MFC和非MFC的程序,靠大家自己去判断了
OD载入后.ALT+E,来到可执行模块,找MFC的核心DLL:MFC42
然后就双击进去

然后就CTRL+F,查找特征代码:sub eax,0a

同样,找到后,就在下面的je处跟随,跟随后看到的CALL,就是那个关键CALL了!

断下后F7跟进,F8几次,就会来到按钮事件代码处了!

方法就简单的介绍到这里了,当然只是抛砖引玉,其他的,还得多靠大家自己慢慢总结吧!

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 6525
活跃值: (3403)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
这不是ximo写的吗?也不注明转载
2011-10-15 01:56
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
等着测试是不是好使。
2011-10-15 13:01
0
雪    币: 111
活跃值: (211)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
转载还搞个分享的标题,我以为原创呢
转载不注明作者也就罢了,原文的图一个都没转过来,太不负责任了
2011-10-15 21:16
0
雪    币: 135
活跃值: (719)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在网上找到2个可能是原文的:
http://www.81913221.cn/Articles/40.html
http://wenku.baidu.com/view/01ccf6ccda38376baf1faea9.html
2011-10-16 09:36
0
雪    币: 146
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
在其他地方看过
2011-12-5 22:16
0
雪    币: 43
活跃值: (241)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
总结五种语言按钮事件的找法 收藏下
2011-12-6 11:15
0
雪    币: 215
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很有用處 !
2011-12-6 13:30
0
雪    币: 1886
活跃值: (216)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
不管怎么说 还是谢谢分享
2011-12-10 09:15
0
雪    币: 1115
活跃值: (122)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
如果是vc程序,可以直接用Mdebug显示按钮事件的代码地址
2011-12-10 09:55
0
雪    币: 21
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
Mark下,然后验证一把~~
2011-12-10 09:58
0
雪    币: 90
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
有人写个自动判断语言并下断点的脚本就更好了
2011-12-12 09:39
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
能看到完整版本吗
2020-1-6 15:15
0
游客
登录 | 注册 方可回帖
返回
//