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);