experiment用OD下消息断点,捕获按钮操作..docxVIP

  • 22
  • 0
  • 约7.58千字
  • 约 10页
  • 2021-04-13 发布于天津
  • 举报

experiment用OD下消息断点,捕获按钮操作..docx

0040112E 0040112E . 53 PUSH EBX experiment 用 OD 下消息断点 , 捕获按钮操作 . 实验目的: 实验目的 : 想直接拦截按钮操作的消息处理 , 分析按 钮操作的逻辑 .实验程序 钮操作的逻辑 . 实验程序 : lt;lt; 使用 OllyDbg 从零开始 Cracking 第一章 翻译 gt;gt;中附带的一个 CrackMe.使用 OD 加载目标程序 , 当程序运行起来后 , 暂停OD经过实验 , 点击菜单会触发主窗体 WM_COMMAND消息 翻译 gt;gt; 中附带的一个 CrackMe. 使用 OD 加载目标程序 , 当程序运行起来后 , 暂停 OD 经过实验 , 点击菜单会触发主窗体 WM_COMMAND 消息. 如果直接捕获弹出的注册窗口的 WM_COMMAND, 捕获不 到. 准备捕获主窗体的 WM_COMMAND 消息 , 找到菜单生成 注册窗体的处理 . 找到注册窗体的创建函数传入的注册窗口处理过程,从而找 到注册窗体的所有消息处理实现逻辑 .点击菜单属于 WM_COMMAND, 按照消息名称排序 , 好找一些 .下完消息 断电后 , 确认一下是否消息断点已下 .F9, 让程序跑起来 . 点 击注册菜单 . 程序被断在 WM_COMMAND 消息断点处 .[cpp] view plaincopgt; $ C8 000000 view plaincopgt; $ C8 000000 ENTER 0,0 主窗体消息断点 WM_COMMAND 0040112C. 56PUSHESI 0040112D . 57 WM_COMMAND 0040112C . 56 PUSH ESI 0040112D . 57 PUSH EDI \DialogBoxParamA CRACKME \DialogBoxParamA CRACKME是注册窗体的 0040112F . 837D 0C 02CMP DWORD PTRSS:[EBP+C],2 74 5EJESHORT CRACKME.0040119300401135. 817D 0C040200gt;CMP DWORD PTR SS:[EBP+C],2040040113C . 74 65JE SHORTCRACKME.004011A3F8 往下走,找到创建注册窗体的代码[cpp] view plaincopt; 6A 00PUSH 0; /lParam =NULL 0040120B . 68USHCRACKME0040112F . 837D 0C 02 CMP DWORD PTR SS:[EBP+C],2. 74 5E JE SHORT CRACKME00401135 . 817D 0C 040200gt;CMP DWORD PTR SS:[EBP+C],204 0040113C . 74 65 JE SHORT CRACKME.004011A3 F8 往下走, 找到创建注册窗体的代码 [cpp] view plaincopgt; 6A 00 PUSH 0 ; /lParam = NULL 0040120B . 68PUSH CRACKME; |DlgProc = CRACKME00401210 . FF75 08 PUSH DWORD PTR SS:[EBP+8] |hOwner. 68PUSH CRACKME; |pTemplate = DLG_REGIS. FF35 CA204000 PUSH DWORD PTR DS:[4020CA] ; |hInst = CAL0040121E . E8 7D020000 lt;JMP.amp;USER32.DialogBoxParamAgt; CALL 消息处理过程 . 转到那看看 .[cpp] view plaincopMOV EAX,0 MOV EAX,0|gt; 5F POP EDI|. 5E POP ESI|. /. C8 000000ENTER0,0注册窗体消息处理过程|. 53PUSH EB|. 56PUSH ESI /. C8 000000 ENTER 0,0

文档评论(0)

1亿VIP精品文档

相关文档