iTruth 发表于 2020-2-22 20:38

用C语言写了个超难的Crackme,欢迎高手来破

本帖最后由 iTruth 于 2020-2-24 11:05 编辑

这个程序如果输入错误会直接退出,输入正确会弹出对话框提示你破解成功了
如果哪位大佬破解完觉得简单请轻喷..

C语言编写 无壳 只有写出注册机才算破解成功



现在时间到了,还没有人能写出注册机所以放出源码
第一次发这种帖子Keygenme没控制好难度还请各位大佬海涵

iTruth 发表于 2020-2-22 21:12

本帖最后由 iTruth 于 2020-2-24 11:06 编辑

我再追加一组正确的用户名和序列号来给你们做参考
username:----涉嫌联系方式----
regcode:+z0GJdRGsw13sepb

crack5 发表于 2020-2-22 22:05

char* charmap = "CbcdefghGjkl+mYopLr6tOvwxyzA/BaD0FiHIJKqMNuPQRSTUV7XnZ12345sW98E";


void *__cdecl date(int a1, void *Name, int len)
{
        unsigned int p;
        int k;
        int i;

        k = (*(DWORD *)a1 >> 3) & 0x3F;
        p = 64 - k;
        *(DWORD *)a1 += 8 * len;
        if (*(DWORD *)a1 < (unsigned int)(8 * len))
                ++*(DWORD *)(a1 + 4);
        *(DWORD *)(a1 + 4) += (unsigned int)len >> 29;
        if (len < p)
        {
                i = 0;
        }
        else
        {
                memcpy((void *)(k + 16 + a1 + 8), Name, p);
                Transform((int *)(a1 + 8), a1 + 24);
                for (i = 64 - k; len >= (unsigned int)(i + 64); i += 64)
                        Transform((int *)(a1 + 8), (int)Name + i);
                k = 0;
        }
        return memcpy((void *)(k + 16 + a1 + 8), (char *)Name + i, len - i);
}

unsigned int __cdecl Encode(int a1, int a2, unsigned int a3)
{
        unsigned int result; // eax
        unsigned int i; //
        int v5; //

        v5 = 0;
        for (i = 0; ; i += 4)
        {
                result = i;
                if (i >= a3)
                        break;
                *(BYTE *)(a1 + i) = *(DWORD *)(4 * v5 + a2);
                *(BYTE *)(i + 1 + a1) = *(WORD *)(4 * v5 + a2) >> 8;
                *(BYTE *)(i + 2 + a1) = *(DWORD *)(4 * v5 + a2) >> 16;
                *(BYTE *)(i + 3 + a1) = *(DWORD *)(4 * v5++ + a2) >> 24;
        }
        return result;
}
unsigned int __cdecl Final(DWORD *a1, int a2)
{
        int v2;
        char v4;
        int v5;
        unsigned int v6;

        v6 = 0;
        v5 = 0;
        v6 = (*a1 >> 3) & 0x3F;
        if (v6 > 0x37)
                v2 = 120 - v6;
        else
                v2 = 56 - v6;
        v5 = v2;
        Encode((int)&v4, (int)a1, 8u);
        Update((int)a1, &PADDING, v5);
        Update((int)a1, &v4, 8);
        return Encode(a2, (int)(a1 + 2), 0x10u);
}

void 初始化(Name)
{

pi = malloc(0x10u);
               *j = 0;
        j = 0;
        j = 1732584193;
        j = -271733879;
        j = -1732584194;
        result = a1;
        a1 = 271733878;

NameLen = strlen(Name)

date(&j,Name,NameLen)
Final(&j, pi);
}



if(NameLen> 7 && NameLen <= 30)
{
temp = (char *)malloc(0x20u);
for(int i = null, i <= 5 ; i++)
   {
   LOC = 4;
   LOC = getLoc(temp);
   {

        for (j = 0; j <= 15; ++j)
                key = (char *)malloc(0x11u);
        memset(key, 0, 0x11u);
                        key = charmap[abs(
                        (signed int)(*(char *)(LOC + j) ^ ((*(char *)(LOC + j) & (*(char *)(LOC + j) | *(char *)(LOC + j) ^ 0xFFFFF123))
                                - *(char *)(LOC + j))
                                * *(char *)(LOC + j))
                                % 64)];
   }


}
}
}



全是手打 电脑没装vs

iTruth 发表于 2020-2-22 21:37

huzpsb 发表于 2020-2-22 21:35
for ( j = 0; j

我将会在后天中午公布源代码,在此期间只要有人写出注册机我都会直接公布

huzpsb 发表于 2020-2-22 21:35

本帖最后由 huzpsb 于 2020-2-23 12:44 编辑

for ( j = 0; j <= 15; ++j )
      v6 = charmap[abs(
                        (signed int)(*(char *)(v8 + j) ^ ((*(char *)(v8 + j) & (*(char *)(v8 + j) | *(char *)(v8 + j) ^ 0xFFFFF123))
                                                         - *(char *)(v8 + j))
                                                          * *(char *)(v8 + j))
                      % 64)];
Nice Try.
不过我想知道magicube.h是啥...
User:----涉嫌联系方式----
Pass:xC7NIMhhKMEyuBtX
又:我刚开始以为用户名好像必须是邮箱,现在看来好像不是...

crack5 发表于 2020-2-22 21:41

User:123456789
Pass:o3jeO4Y29BJXDwUf

iTruth 发表于 2020-2-22 21:39

huzpsb 发表于 2020-2-22 21:35
for ( j = 0; j

还有,用户名不一定是邮箱

居客 发表于 2020-2-22 21:58

直接爆破不算吧!{:301_998:}

居客 发表于 2020-2-22 22:19

crack5 发表于 2020-2-22 21:41
User:123456789
Pass:o3jeO4Y29BJXDwUf

大佬能讲一下破解思路?{:301_997:}

crack5 发表于 2020-2-22 22:23

crack5 发表于 2020-2-22 22:05
char* charmap = "CbcdefghGjkl+mYopLr6tOvwxyzA/BaD0FiHIJKqMNuPQRSTUV7XnZ12345sW ...

- - 我说我没C++ 其他都可以贴出来IDA 一看就能看出来了
页: [1] 2
查看完整版本: 用C语言写了个超难的Crackme,欢迎高手来破