新CrackMe160之012 - crcme1

  1. 脱壳
    使用PEiD通用插件脱壳成功

  2. 破解
    汇编的程序,所以直接OD查看所有代码,在最后面可以看到成功失败弹框信息,定位到004012DF这个关键跳,上面便是算法了
    1). sum += user[i], 用户名中不能有空格
    2). sum = (sum << 3) ^ 0x515A5
    3). 系列号转数字
    4). sum += serl ^ 0x87CA
    5). sum ^= 0x797E7
    6). SF == 1? 成功
    那么就可以反算出 serl = (0x797E7 - sum) ^ 0x87CA, 注册机代码走起:

  #include <stdio.h>
  #include <string.h>

  int main() {
    char user[51] = {0};
    printf("输入用户名: ");
    fgets(user, sizeof(user), stdin);
    int i, len = strlen(user) - 1;
    unsigned int rlt, sum = 0;
    for(i=0; i<len; i++){
      sum += user[i];
    } 
    sum = (sum << 3) ^ 0x515A5;
    rlt = (0x797E7 - sum) ^ 0x87CA;
    printf("系列号为: %ld\n", rlt);
    getchar();
    return 0;
  }

运行示例:
输入用户名: abcde
系列号为: 195264

 
 
本节高手录制的视频,点击前往查看

 
 
 

使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~
OD界面布局

posted @ 2024-12-09 17:18  hankerstudio  阅读(23)  评论(0)    收藏  举报