c写的简单CM(xp可运行)
新手一个;用c写了个CM;
很简单;
gcc编译的;
这样?
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:44
爆破也挺好,我只会写,能把爆破的位置发下我学习学习。
第一步:根据提示,右键中文智能搜索
第二步:把每个判断修改一下就好了
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;
}
错就错在第一个check函数就把整段算法暴露了,所以追出第一个函数剩下两个就不用跟了
密码:shen***zheqiancheng52pojie 确实简单到不懂的小白都会 - -0 云在天 发表于 2020-5-15 01:48
错就错在第一个check函数就把整段算法暴露了,所以追出第一个函数剩下两个就不用跟了
密码:shen***zh ...
这个密码也显示不正确啊,但是最后的功能正常什么鬼