首先观察程序的结构
![](https://img.haomeiwen.com/i9142416/c84eca4099ab9b24.png)
![](https://img.haomeiwen.com/i9142416/70b221b5cd42f2d3.png)
![](https://img.haomeiwen.com/i9142416/645142df6906d7bf.png)
![](https://img.haomeiwen.com/i9142416/1e43910efc6d828b.png)
查壳后并未发现有壳
![](https://img.haomeiwen.com/i9142416/4a1b037bae95d685.png)
接下来OD载入开始你的操作
最先的是一个nag窗口 所以直接命令行BP MessageBoxA
开始运行程序,程序停在了MessageBoxA中
![](https://img.haomeiwen.com/i9142416/0d203d53df28f02e.png)
点击nag窗口
![](https://img.haomeiwen.com/i9142416/9b93d25331d02c22.png)
直接Nop后发现程序奔溃了 深入了解后发现nop方法并不能达到效果 所以在调用窗户处执行到返回 看有没有关键跳转
![](https://img.haomeiwen.com/i9142416/e225e53ad55de625.png)
并未发现再次执行到返回
![](https://img.haomeiwen.com/i9142416/066c1cfeb2271b0f.png)
还是未发现再执行到返回
![](https://img.haomeiwen.com/i9142416/71ea7f2029eed861.png)
找到了nag窗口的关键跳 程序在此处判断了程序是否第一次运行程序 如果是则不跳转 否则跳转不显示nag窗口
随意输入然后check弹窗处暂停OD可查看OD窗口中程序的句柄处找到调用 也可以工具栏中K查看事件调用的进程
![](https://img.haomeiwen.com/i9142416/4fcf2a6eabd72431.png)
也可一直执行到返回找到关键跳
找到到关键判断call cmp中hello Dude
![](https://img.haomeiwen.com/i9142416/36a8437d00d21622.png)
![](https://img.haomeiwen.com/i9142416/dd5fa4ab8943a02b.png)
接下来继续解决最后一个问题继续使用上面的方法找到关键call和 关键跳转
![](https://img.haomeiwen.com/i9142416/878232e1ab0bcc88.png)
![](https://img.haomeiwen.com/i9142416/8d52c59d90f31cdf.png)
解决之 完工!
网友评论