适合破解新手的160个CrackMe003 注册机与去neg窗口
适合破解新手的160个CrackMe003
0x00 先查壳
无壳,VB程序编写.
0x01 运行程序,熟悉操作流程
打开会在这个界面等几秒.可以先把这几秒的neg去掉.
输入假码,显示错误.
0x02 去掉neg
这里有两种方法,一个是Timer搜索法,Timer是VB程序默认的定时器变量.但是这种方法不怎么靠谱,因为程序的作者可以把它的默认名称给改掉.这样我们就搜索不到了.
所以我选择第二种 4c法.
首先用OD打开
找到OEP,第一行push指令就是程序的入口.
可以看到push的地址就是后面的004067D4
Vb程序开始的push地址加上4C就是窗口加载的地方.
先点击数据窗口再按ctrl+g,在数据窗口转到004067D4+4C
转到了这个地方.
在数据窗口中跟随DWORD.
发现两块相似的代码.红圈中的00与01是窗口的序号,后面的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窗口的方法也熟悉了注册机的使用.相比之前比较熟练了.
![](https://common.cnblogs.com/images/loading.gif)