适合破解新手的160个CrackMe003 注册机与去neg窗口

适合破解新手的160CrackMe003

0x00 先查壳

 

 

 

无壳,VB程序编写.

 

0x01 运行程序,熟悉操作流程

 

 

 

打开会在这个界面等几秒.可以先把这几秒的neg去掉.

 

 

 

输入假码,显示错误.

 

0x02 去掉neg

这里有两种方法,一个是Timer搜索法,TimerVB程序默认的定时器变量.但是这种方法不怎么靠谱,因为程序的作者可以把它的默认名称给改掉.这样我们就搜索不到了.

所以我选择第二种 4c.

首先用OD打开

找到OEP,第一行push指令就是程序的入口.

 

 

 

可以看到push的地址就是后面的004067D4

Vb程序开始的push地址加上4C就是窗口加载的地方.

先点击数据窗口再按ctrl+g,在数据窗口转到004067D4+4C

 

 

 

 

 

 

 

转到了这个地方.

 

 

 

在数据窗口中跟随DWORD.

 

 

 

发现两块相似的代码.红圈中的0001是窗口的序号,后面的10是窗口启动的标志.

只需要把序号互换就能去掉neg.即把上部分红圈的00改成01,下部分01改成00,再保存就行了.

 

 

 

 

 

 

 

复制到可执行文件.

 

 

 

接下来运行所保存的文件.

 成功去掉neg.

 

 

 

0x03破解

老办法,先用od载入,再运行程序,不要关闭错误窗口.

暂停od,alt+k查看调用堆栈窗口,找到程序领空的函数,显示调用.

 

 

 

向上翻找到关键注释和关键跳.

 

 

 

je指令给nop

 

 

 

保存,再打开保存的程序.

 

 

 

 

破解成功.

 

00x4追码

打开最开始的文件,安装上面的方法显示调用.跳到所调用的函数.

 

 

 

往上翻找到函数头,即这个push ebp指令.

 

 

 

F2下断点,f9激活程序,点击确定,再点击ok让程序停到我们下断点的位置.

 

 

 

 

接下来就慢慢的按f8进行单步追踪,找右边fpu的变化.

 

 

 

获取用户名长度

 

 

 

真码发生了变化.

 

 

 

 

又发生了变化,变成了533379.

 

 

 

再次发生了变化.

 

 

 

最后一次变化,1600150.

 

 

 

输入发现正确.

 

0x05注册机

打开注册机编写器.f8设置注册机信息.点击左下角添加.

 

 

 

找到将真码压入栈的地址

 

 

 

按照这样设置,再点右下角的生成.

 

 

 

运行生成的注册机.

 

 

 

显示出了正确的密码.

 

0x06 总结

Creakme最简单的是破解,其次是追码,最难的是分析算法.我是小白,只能一步步学习了.第一次学习到了去neg窗口的方法也熟悉了注册机的使用.相比之前比较熟练了.

 

posted @ 2022-12-22 13:18  M4r1s4  阅读(265)  评论(0编辑  收藏  举报