160个CrackMe之34

来源:互联网 发布:linux 专家编程 pdf 编辑:程序博客网 时间:2024/06/05 16:01

160个CrackMe之34

       很简单的一个KeyFile验证,我拿来练习一下静态反汇编的功底,没有进行动态调试。

       上一下IDA的注释。




从我标注的来读,程序从KeyFile读入18字节。

第一个FirstKey取最多14字节进行用户名解码,后4字节是SecondKey来取是用户名解码结果的校验值。


上一段VC++ 6.0测试无错误的注册机代码。int main(int argc, char* argv[]){unsigned char szUser[18] = {0};unsigned int dwSum = 0;int i = 0;int x = 0;printf("请输入用户名,限14个字符:");scanf("%14s", szUser);for (i = 0x41; i != 0x4F; i++){if (szUser[x] == 0){for (int j = x; j <= 13; j++){szUser[j] = i;i++;}break;}else{dwSum += szUser[x];szUser[x] ^= i;}x++;}dwSum ^= 0x12345678;memcpy(&szUser[14], &dwSum, 4);for (i = 0; i <= 17; i++){printf("%X ", szUser[i]);}system("pause");return 0;}


原创粉丝点击