您的位置:首页 > 其它

0x03.Afkayas.2-WP

2018-02-01 12:43 134 查看
先打开程序看看:









需要解决一开始的NAG窗口和之后的serial(做完了回来补充:name可以不是数字,因为通过name生成数组字符串,但是serial必须是数字,因为要进行浮点数之间的比较,所以如果不是数字会报错

通过搜索关键字符串找到了这里:



发现了You Get it,进入汇编代码位置,发现关键跳转函数:

所以很简单,只要把je给nop掉就能显示You Get It 了:



接下来开始想办法写Keygen了:

往上查找,看到了一个VbaStrMove函数,应该在搞事情,所以设断点后重新运行,发现了寄存器中疑似serial的东西



又因为name和serial只能是数字,所以这个可能就是完整的serial,输入进去看了一下,果然正确了:



那我们就继续向上去找生成serial的函数,找了好久之后找到了这里:



应该就是生成serial的入口了(跟Afkayas.1挺像),接下来开始分析这段函数







执行到这里就可以看到正确的serial了,说明算法到这里应该就结束了,不过谨慎起见再看看:



果然发现下一步跳到的地方开始将我们输入的serial变成浮点数然后进行比较了。



所以最后的serial=[len(name)*15B38+ASCII(NAME[0])+10/5]*3-2-(-15)

keygen如下:

#include<iostream>
#include<string.h>
using namespace std;

int main(int argc,char *argv[])
{
int serial;
char name[50];

while(1)
{
cout<<"Input the name:";
cin>>name;

serial=strlen(name)*(0x15B38)+name[0]+10/5;
serial=serial*3-2+15;
cout<<"The serial is:"<<serial<<endl;

cout<<"Coutinue or not(y/n)?";
char temp;
cin>>temp;
if(temp=='n') break;
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CrackMe