首页
社区
课程
招聘
[原创]适合新手破解的160个crackme No.34分析
发表于: 2015-5-12 14:31 8883

[原创]适合新手破解的160个crackme No.34分析

2015-5-12 14:31
8883

纯纯的新手,勿喷 ==!

这是一个keyfile保护的crackme,首先od载入,f9到用户领空,

既然是keyfile,肯定需要读文件,好吧,映入眼帘的就是打开文件(CRACKME.KEY),读取数据,假设存储在 pwd[18]里面,其他的略过不细说,截图上都有注释
接下来就是重点内容,来到计算注册码的地方(图中标示关键call的地方),F7进入,这里就是计算注册码的地方


将字符串前14个字节分别与41h...4Dh进行异或操作,同时结果累加 得到一个和(记为total),循环中有个地方需要注意 如果pwd[i] == 41h+i,跳出循环,出来后,将total与12345678h异或,得到的就是最终的注册码 total ^= 12345678h
接下里取得pwd的后四位, 比较total的值与pwd的后四位是否相同

分析完毕,紧张呀, 文笔太差, 下面是注册机源码

#include <iostream>
#include <string>
#include <fstream>

using namespace std;
int main()
{
        string name = "";
        std::cout << "input your name: ";
        cin >> name;
       
        char pwd[18] = { 0 };
        memcpy(pwd, name.c_str(), name.length() > 14 ? 14 : name.length());

        int total = 0;
        for (int i = 0; i < 14; i++)
        {
                total += pwd[i];

                pwd[i] ^= 0x41 + i;

                if (pwd[i] == 0)
                        break;
        }
        total ^= 0x12345678;

        *(int*)(pwd + 14) = total;

        ofstream file("CRACKME3.KEY");
        file << string(pwd, 18);
        return 0;
}

crackme文件:
crackme.zip


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (6)
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
都是哪160个?我也想试试。在哪下载呢
2015-5-12 21:11
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在哪下载呢
2015-5-12 21:18
0
雪    币: 69
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
文件超过论坛限制, 网上搜一下吧,适合新手破解的160个crackme
2015-5-13 11:15
0
雪    币: 9777
活跃值: (2161)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
此处有下载。
http://pan.baidu.com/s/1O7at
2015-5-13 17:22
0
雪    币: 2496
活跃值: (221)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习,QQ的反调试是怎么实现的.
2015-9-11 07:47
0
雪    币: 6
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
谢谢楼主,学习了
2015-9-12 08:22
0
游客
登录 | 注册 方可回帖
返回
//