image.png (56.22 KB, 下载次数: 0)
下载附件
2024-7-15 21:36 上传
1.拉进x32dbg,对MessageBoxA进行断点。
image.png (61 KB, 下载次数: 3)
下载附件
2024-7-15 21:38 上传
2.执行到返回,一步步找到这个程序失败弹窗是哪来的。
image.png (106.17 KB, 下载次数: 2)
下载附件
2024-7-15 21:39 上传
看到这上面还有个驱动加载失败,应该这个函数头就是核心判断函数了,到函数头断点试一下。
3.在函数头往下走,找到了这个
image.png (95.69 KB, 下载次数: 2)
下载附件
2024-7-15 21:41 上传
根据流程图也可以看到,这个应该就是关键跳
image.png (77.7 KB, 下载次数: 2)
下载附件
2024-7-15 21:44 上传
直接nop掉,试一下。
image.png (81.32 KB, 下载次数: 1)
下载附件
2024-7-15 21:45 上传
此时出了一个弹窗,向桌面写出了一个dll,这个应该就是程序功能的dll了,轻松解决。
......了吗?
正当我以为如此简单的时候,打脸来了,点击弹窗的确定后,程序会立即结束。。。
应该是有二次校验,于是继续向下分析
4.解决二次校验
image.png (22.63 KB, 下载次数: 3)
下载附件
2024-7-15 21:47 上传
这里跟进去,发现有两个地方:
image.png (72.43 KB, 下载次数: 1)
下载附件
2024-7-15 21:53 上传
image.png (56.09 KB, 下载次数: 1)
下载附件
2024-7-15 21:53 上传
这两个判断[ebp-c]的值是否大于等于1,成立就继续执行,否则直接调用TerminateProcess函数结束程序。
那就直接让他必须跳就好了。直接修改成jmp
image.png (24.71 KB, 下载次数: 1)
下载附件
2024-7-15 21:57 上传
image.png (23.39 KB, 下载次数: 3)
下载附件
2024-7-15 21:57 上传