总结一下各种语言按纽事件的找法
2017-11-16 10:05
267 查看
一、VB程序 其实,VB的按纽事件的找法是最为普遍的,也就是大家所谓的万能断点.其实也不仅仅是针对按纽事件,还有很多其他的用处,如取消NAG,启动框,灰色按纽或隐藏按纽,启动时的timer事件等等,具体的就自己去总结吧,这里只演示按纽事件! OD载入后,CTRL+B,816C24 确定后,就会来到下图处: [img=550,0][/img] 然后,就在下面的JMP处F2下断,下完后CTRL+L,如果还有,就继续下断点. 下完断点后,运行程序,点击相应的按纽,OD就会断下来了 [img=550,0][/img] 下面的任务就是考验大家的耐心,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???????? 然后就会找到下面的地方: [img=550,0][/img] 然后就在下面的CALL处下断吧. 下面的工作就是不断的CTRL+L继续查找和F2下断了. 运行下看看效果吧: [img=550,0][/img] 看,断下了吧,下面就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 5F 5E [img=550,0][/img] 查找到的这个CALL就是了,F2下断吧 现在输入必须的内容后,单击对应的按纽吧 独立编辑: Ctrl+G 跳到 00401000 Ctrl+B 搜索 FF 55 FC 5F 5E [img=550,0][/img] 看,断下了吧,下面就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" 确定后,就来到下面的窗口 [img=550,0][/img] 在下面的sub eax,0A处,双击进去吧: [img=550,0][/img] 来找这里后,在下面的je处跟随过去 [img=550,0][/img] 跟随来到的这个CALL,就是了,F2下断吧 然后断下后,F7跟进,F8几次,就来到按纽事件了. 五、MFC类程序 当然判断MFC和非MFC的程序,靠大家自己去判断了 OD载入后.ALT+E,来到可执行模块,找MFC的核心DLL:MFC42 然后就双击进去 [img=550,0][/img] 然后就CTRL+F,查找特征代码:sub eax,0a [img=550,0][/img] 同样,找到后,就在下面的je处跟随,跟随后看到的CALL,就是那个关键CALL了! [img=550,0][/img] 断下后F7跟进,F8几次,就会来到按纽事件代码处了! 方法就简单的介绍到这里了,当然只是抛砖引玉,其他的,还得多靠大家自己慢慢总结吧! 本文转自论坛,由xjun 修正重新编写! |
相关文章推荐
- C 语言的各种变量的存储,指针的常见错误的总结
- 总结一下刚刚写的程序中的C++各种类型的转换string,QString,char*, BYTE等等
- 日常总结(3) 各种单击事件的总结
- 总结一下HBase各种级别的锁以及对读写的阻塞
- 各种语言基本类型 总结
- 黑马程序员——java语言基础——总结一下学习过的类
- 总结一下自己学习语言的经验(给初学者)
- 总结一下各种远程调用
- 总结五种语言按钮事件--逆向下断点
- 总结一下/boot分区被删后的各种悲剧
- java语言中关于抽象类和接口的区别(面试经常问到,因此总结一下)
- 总结一下项目中常用的正则validate及键盘的一些事件
- Java总结第一次//有些图片未显示,文章包含基础java语言及各种语句
- 总结一下各种IO方式(非常好的文章!)
- 大年初一,总结一下去年的十大事件~
- 【转】C/C++语言中各种数据类型长度的总结
- C/C++语言中各种数据类型长度的总结
- C 语言资源大全总结--各种框架各种开源库,c开发必备
- 总结一下ABAP中的各种接口技术
- 初学java总结一下它与其它一些语言(c#,delphi)的差别.