tuts4you-lena151-Crackme-tutorial16

一、简介

(一).目标

本次需要破解程序是两个vc的程序,主要的套路是利用到一些资源修改工具,来进行资源的修改。

(二).工具

x32dbg、reshacker.

二.破解过程

(一)Urlegal

1.使用peid查看程序。

2.在x32dbg中载入程序,程序界面如下图。


再关闭程序的时候,会出现一个弹窗,如下图。

3.接下来,在reshacker中打开这个程序,并且在dialog对话框中找到以上,对话框


从图中我们可以看出,这个对话框的ID是103.

4.再转到x32dbg,当程序弹出这个对话框时,必然会调用一些api,而这些api需要使用这个ID号,也就是说程序必然有

push 103这一句,当然,我们需要转换为16进制,也就是push 0x67这句。

5.在x32dbg中首先找这句代码。

搜索结果如下


双击结果,到达这里。


6.在这个地方的函数的入口点,下断点,再关闭程序,等待弹窗,看是否会中断在这。

程序中断到这了,证明猜测是对的。

7.在堆栈窗口中,查看返回的指针,找到从哪调用这个函数的。

双击进入这个区域,我们发上面的call调用比较可疑,它直接决定了是否会跳转到弹窗的区域。

8.在call区域处下断点,重启程序,步入这个call调用

步入之后,可以看到程序又对eax进行操作变成0,我们直接将它修改。

9.继续运行程序,发现无弹窗,程序直接退出了,再进入程序,程序也已经是注册状态了。


(二)、movgear.exe

1.在x32dbg中,载入这个程序,点击about,可以发现如下图。


2.同样,通过reshacker找到about窗口和它的ID号。

和之前的软件一样,通过ID号,搜索指令 push 0x64(dex100),所有引用都下断点,再操作程序,弹出about窗口


程序中断在了这。


3.上面有个call调用和对eax的比较,并且,接下来,在控制流程的跳转,十分可疑,在那设置断点,重启程序然后步入它。


我们发现,它似乎在读取注册表,做一些检查。

下拉到最下面,修改以下代码,保存代码,并重启程序,成功。



三、总结。

1.如何使用exescop,e,寻找ID号数字,转为16进制搜搜 push hex数据。
2.通过栈中的返回值判断在哪创建窗口。
3.使用reshacker,查看资源。
4.查看资源这种套路,对于VB这些程序或者加了壳的程序作用不大(无法找到资源)。

猜你喜欢

转载自blog.csdn.net/h123120/article/details/80312499