OllyDbg 使用笔记 (十七)
参考
书:《加密与解密》
视频:小甲鱼 解密系列 视频
示例程序现在地址:http://pan.baidu.com/s/1pJ1AguZ
破解这个程序的注册机(keygen)
这个程序主界面就是两个输入框,跟check,about按钮。
可以从两个输入栏入手,用OD加载程序,右键-->查找-->所以摸快间的调用,搜索跟输入框的API,可以搜索GetDlgItemTextA
(也可以在Commod中输入 bp GetDlgItemTextA 即可直接对指定API下断点)
图片1
可以搜索到两个。
点击进入,查看,前后代码。下断点,重新运行程序,可以发现,这两个正是输入的name跟key的输入框。
按F8接着运行程序,可以发现
图片2
这正是注册机的代码。可以把它写成c语言就是
char name[100]={0};
scanf("%s",name);
int i;
int esi=0;
int ebx=0;
int edx=0;
for(i=0;i<strlen(name);++i)
{
edx = name[i];
ebx = edx;
ebx *= edx;
esi += ebx;
ebx = edx;
ebx = ebx>>1;
ebx = ebx+3;
ebx = ebx*edx;
ebx -= edx;
esi += ebx;
esi += esi;
}
printf("%x\n",esi);