审判者压缩 发表于 2020-5-15 14:26

c写的简单CM(xp可运行)

新手一个;
用c写了个CM;
很简单;
gcc编译的;




jiaocoll 发表于 2020-5-15 15:14



这样?

odmin 发表于 2021-3-1 18:20


intcheck(int a1, int a2, int a3, int a4, int a5, int a6);
intcut(int a1, int a2, int a3);
intchange(int a1, int a2, char a3);
intcpf1(char *a1);
intcpf2(char *a1);
intcpf3(char *a1);
intmain(int argc, const char **argv, const char **envp)
{
char v4; //

puts("ÇëêäèëÃüÂë");
gets(&v4);
check((int)&v4, 0, 26, 26, 2, 3);
check((int)&v4, 0, 18, 18, 3, 1);
check((int)&v4, 19, 26, 7, 5, 2);
getchar();
return 0;
}
intcheck(int a1, int a2, int a3, int a4, int a5, int a6)
{
    int a =0;
cut(a1, a2, a3);
change(a, a4, a5);
if ( a6 == 1 )
{
    cpf1(a);
}
else if ( a6 == 2 )
{
    cpf2(a);
}
else
{
    cpf3(a);
}
return 0;
}

intcut(int a1, int a2, int a3)
{
char v4; //
int v5; //
int v6; //
int v7; //
int v8; //
int v9; //
int v10; //
int v11; //
int v12; //
int v13; //
int v14; //
int v15; //
//__int16 v16; //
    int v16;
int v17; //
int i; //

v17 = a1;
*(_DWORD *)v4 = 0;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
v9 = 0;
v10 = 0;
v11 = 0;
v12 = 0;
v13 = 0;
v14 = 0;
v15 = 0;
v16 = 0;
for ( i = a2; i <= a3; ++i )
strncat(v4, (const char *)(i + v17), 1u);
strncpy(a, v4, 0x32u);
return 0;
}

intchange(int a1, int a2, char a3)
{
char v4; //
int v5; //
int v6; //
int v7; //
int v8; //
int v9; //
int v10; //
int v11; //
int v12; //
int v13; //
int v14; //
int v15; //
__int16 v16; //
int v17; //
int v18; //
int i; //

*(_DWORD *)v4 = 0;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
v9 = 0;
v10 = 0;
v11 = 0;
v12 = 0;
v13 = 0;
v14 = 0;
v15 = 0;
v16 = 0;
for ( i = 0; i < a2; ++i )
{
    v18 = a1;
    v17 = *(char *)(i + a1);
    *(_BYTE *)(i + a1) = v17 + a3;
    strncat(v4, (const char *)(i + v18), 1u);
}
return 0;
}


intcpf1(char *a1)
{
char v2; //
int v3; //
int v4; //
int v5; //
int v6; //
int v7; //
int v8; //
int v9; //
__int16 v10; //

strcpy(v2, "vkhqsdq}khtldqfkhqg");
v3 = 0;
v4 = 0;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
v9 = 0;
v10 = 0;
if ( !strcmp(a1, v2) )
    puts(&byte_406044);
else
    puts(&byte_40604D);
return 0;
}

intcpf2(char *a1)
{
char v2; //
int v3; //
int v4; //
int v5; //
int v6; //
int v7; //
int v8; //
int v9; //
int v10; //
int v11; //
int v12; //
__int16 v13; //

strcpy(v2, ":7utonj");
v3 = 0;
v4 = 0;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
v9 = 0;
v10 = 0;
v11 = 0;
v12 = 0;
v13 = 0;
if ( !strcmp(a1, v2) )
    puts(&byte_406044);
else
    puts(&byte_40604D);
return 0;
}

intcpf3(char *a1)
{
char v2; //
int v3; //
int v4; //
int v5; //
int v6; //
int v7; //
__int16 v8; //

strcpy(v2, "ujgprcp|jgskcpejgpi74rqlkg");
v3 = 0;
v4 = 0;
v5 = 0;
v6 = 0;
v7 = 0;
v8 = 0;
if ( !strcmp(a1, v2) )
    puts(aAuaeoye);
else
    puts(aAuae);
return 0;
}

正己 发表于 2020-5-15 14:43

小白只会爆破

审判者压缩 发表于 2020-5-15 14:44

爆破也挺好,我只会写,能把爆破的位置发下我学习学习。

正己 发表于 2020-5-15 14:52

审判者压缩 发表于 2020-5-15 14:44
爆破也挺好,我只会写,能把爆破的位置发下我学习学习。
第一步:根据提示,右键中文智能搜索

第二步:把每个判断修改一下就好了

syrmb 发表于 2020-5-15 15:08

int __cdecl main(int argc, const char **argv, const char **envp)
{
char v4; //

__main();
puts("请输入密码");
gets(&v4);
check((int)&v4, 0, 26, 26, 2, 3);
check((int)&v4, 0, 18, 18, 3, 1);
check((int)&v4, 19, 26, 7, 5, 2);
getchar();
return 0;
}

云在天 发表于 2020-5-15 17:48



错就错在第一个check函数就把整段算法暴露了,所以追出第一个函数剩下两个就不用跟了
密码:shen***zheqiancheng52pojie

weikun444 发表于 2020-5-15 19:47

hackabi 发表于 2020-5-15 20:10

确实简单到不懂的小白都会 - -0

hackabi 发表于 2020-5-15 20:31

云在天 发表于 2020-5-15 01:48
错就错在第一个check函数就把整段算法暴露了,所以追出第一个函数剩下两个就不用跟了
密码:shen***zh ...

这个密码也显示不正确啊,但是最后的功能正常什么鬼
页: [1] 2 3
查看完整版本: c写的简单CM(xp可运行)