0x01.Acid Burn-WP
2018-02-01 12:16
162 查看
先打开文件,
![](https://img-blog.csdn.net/20180201120705300?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20180201120824108?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20180201120759851?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
随便输入一下尝试:
![](https://img-blog.csdn.net/20180201120836405?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所以该程序应该是破解掉Serial/Name。(ps:在被坑了一下午之后百度到一开始弹出来的东西叫nag窗口,要想办法把他给去掉。)
1. 去除NAG:
开始F8,到CALL 00429F8C的时候弹出了NAG,所以F2然后CTRL+F2重新开始
![](https://img-blog.csdn.net/20180202104150346?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
F9运行到断点处,F7进到函数内部继续F8到这个位置,再次弹出NAG(继续下断点重新调试)
![](https://img-blog.csdn.net/20180202104200685?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接着F8到这里又出现弹窗,我们继续重复上面的操作。
![](https://img-blog.csdn.net/20180202104213061?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
又找到了这里,不过看这里的注释应该是快到终点了
![](https://img-blog.csdn.net/20180202104226876?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
看到了MessageBoxA,终于找到NAG的源头了
![](https://img-blog.csdn.net/20180202104244321?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后滚回去发现了个判断函数完美避开NAG
![](https://img-blog.csdn.net/20180202104256720?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
重新调试,改成JMP继续,这样NAG窗口就没了。
![](https://img-blog.csdn.net/20180202104313306?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2. 解决NameSerial:
随便输入之后显示如下
![](https://img-blog.csdn.net/20180201121050808?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后在OD里面搜索Sorry这段字符串并进入相应汇编地址
![](https://img-blog.csdn.net/20180202104509543?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
随便看看发现了一个Congratz……似乎发现了什么
![](https://img-blog.csdn.net/20180202104522145?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
还发现上面的JNE正好跳到下面的Sorry处
![](https://img-blog.csdn.net/20180202104534598?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
其实到这里如果把JNE改成NOP掉就可以跳到成功的位置了,然而我们要写Keygen,这就很尴尬,接着继续推测出JNE上面的CALL应该是返回一个ZF值来判断的,再上面一个函数应该是生成这个serial的关键。
3. KEYGEN:
![](https://img-blog.csdn.net/20180202104547138?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在这个函数位置设了断点后,F8几步后,发现栈中生成的serial:
![](https://img-blog.csdn.net/20180202104720132?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
输入了一下正确,那么接下来开始研究这个函数里面到底发生了什么吧。
![](https://img-blog.csdn.net/20180201121157218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
进入到函数内部,发现了三个CALL,先下3个断点看看栈中的serial是什么时候生成的吧,额,一直都没生成,而且程序似乎在做死循环,我也说不清楚为什么。
然后我们接着从函数出来发现上方的两个字符串CW和CRACKED引起了我们的注意。F8后出现了一些我们想要的变化。
![](https://img-blog.csdn.net/20180202104739201?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所以我们重新调试程序来研究最上面的过程究竟是什么样子:
![](https://img-blog.csdn.net/20180202104751362?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzkxNTMyNDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
分析如备注所示(从这个位置开始分析其实还是借助网上的参考,毕竟经验不足。)
然后我们知道了实际上CW和CRACKED中间的数字就是输入字符串的第一个字符乘以29h再乘以2得到的数值转化成相对应的字符串。
写出keygen如下:
(菜鸟的第一次做CrackMe,弄了好久才弄明白OD怎么用。在大量的参考下做出了这道题,积累经验,路还很长!)
随便输入一下尝试:
所以该程序应该是破解掉Serial/Name。(ps:在被坑了一下午之后百度到一开始弹出来的东西叫nag窗口,要想办法把他给去掉。)
1. 去除NAG:
开始F8,到CALL 00429F8C的时候弹出了NAG,所以F2然后CTRL+F2重新开始
F9运行到断点处,F7进到函数内部继续F8到这个位置,再次弹出NAG(继续下断点重新调试)
接着F8到这里又出现弹窗,我们继续重复上面的操作。
又找到了这里,不过看这里的注释应该是快到终点了
看到了MessageBoxA,终于找到NAG的源头了
然后滚回去发现了个判断函数完美避开NAG
重新调试,改成JMP继续,这样NAG窗口就没了。
2. 解决NameSerial:
随便输入之后显示如下
然后在OD里面搜索Sorry这段字符串并进入相应汇编地址
随便看看发现了一个Congratz……似乎发现了什么
还发现上面的JNE正好跳到下面的Sorry处
其实到这里如果把JNE改成NOP掉就可以跳到成功的位置了,然而我们要写Keygen,这就很尴尬,接着继续推测出JNE上面的CALL应该是返回一个ZF值来判断的,再上面一个函数应该是生成这个serial的关键。
3. KEYGEN:
在这个函数位置设了断点后,F8几步后,发现栈中生成的serial:
输入了一下正确,那么接下来开始研究这个函数里面到底发生了什么吧。
进入到函数内部,发现了三个CALL,先下3个断点看看栈中的serial是什么时候生成的吧,额,一直都没生成,而且程序似乎在做死循环,我也说不清楚为什么。
然后我们接着从函数出来发现上方的两个字符串CW和CRACKED引起了我们的注意。F8后出现了一些我们想要的变化。
所以我们重新调试程序来研究最上面的过程究竟是什么样子:
分析如备注所示(从这个位置开始分析其实还是借助网上的参考,毕竟经验不足。)
然后我们知道了实际上CW和CRACKED中间的数字就是输入字符串的第一个字符乘以29h再乘以2得到的数值转化成相对应的字符串。
写出keygen如下:
#include<iostream> using namespace std; int main(int argc,char *argv[]) { char name[50]; int serial=0; while(1) { cout<<"Input the name : "; cin>>name; serial=name[0]*(0x29)*2; cout<<"The serial is :"<<"CW-"<<serial<<"-CRACKED"<<endl; cout<<"Continue or not(y/n)?"; char temp; cin>>temp; if(temp=='n') break; } system("pause"); }
(菜鸟的第一次做CrackMe,弄了好久才弄明白OD怎么用。在大量的参考下做出了这道题,积累经验,路还很长!)
相关文章推荐
- CrackMe破解系列第一番Acid_burn
- 160个破解练习之1-Acid burn.exe
- CrackMe 之 Acid Burn 破解
- Cracked me --1--Acid_burn
- 1 Acid burn ★ Nag,Name/Serial,Serial
- cracked me.1. Acid burn
- 逆向project实战--Acid burn
- 160个CrackMe-1-Acid_burn
- 160个破解练习之CrackMe 001 Acid burn
- Target - Neewbie shool 1cme(Acid Burn cme)
- 160crackme第一个Acid burn
- 破解练习之Acid burn.exe
- [破解实例][OllyDbg] CrackMe001-Acid burn
- Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
- 自动附加到计算机“EASON”上的进程“[2096] aspnet_wp.exe”失败。错误代码为 0x8013134b。
- Snort+mysql+Apache(with mod_ssl)+php+ACID安装日志
- 中文 WordPress 工具箱(1.2)与WP-Stats(2.2)冲突的解决办法
- (无法启动 Aspnet_wp.exe)错误信息的解决办法
- BurnAware Professional
- 首次看到有人在使用wp-markkeyword