-
-
[原创]第六题 Repwn WriteUp
-
发表于: 2019-3-14 23:01 3089
-
首先来到下面这个函数
int __thiscall fst_sub_4014C0(void *this)
{
unsigned int v1; // ebx
char *Str; // [esp+0h] [ebp-68h]
char v4[4]; // [esp+10h] [ebp-58h]
int v5; // [esp+20h] [ebp-48h]
int v6; // [esp+24h] [ebp-44h]
int v7; // [esp+28h] [ebp-40h]
int v8; // [esp+2Ch] [ebp-3Ch]
int v9; // [esp+30h] [ebp-38h]
int v10; // [esp+34h] [ebp-34h]
int v11; // [esp+38h] [ebp-30h]
int v12; // [esp+3Ch] [ebp-2Ch]
char v13; // [esp+40h] [ebp-28h]
sub_404930(0x10u, this, Str);
sub_4044B0();
v1 = 0;
v5 = 'yt^';
v6 = '+pLc';
v7 = 'a+SG';
v8 = 'G-QG';
v9 = 'Gl(V';
v10 = ')y}J';
v11 = 'SGA)';
v12 = 'ea+';
strcpy(v4, "Ansome_Is_Wrong");
while ( v1 < strlen(&v5) )
*(&v5 + v1++) ^= 0x18u;
puts("Please Input Your Key_ Now!");
scanf("%s", &v13);
if ( m_12_1key_sub_4012F0(&v13) )//判断
{
hou_4_1keyycsub_401460(&v13);
system("pause");
}
else
{
puts(v4);
}
return 0;
}
关注第一个判断
signed int __cdecl m_12_1key_sub_4012F0(int a1)
{
signed int v1; // ecx
signed int v2; // edx
signed int result; // eax
int v4; // [esp+0h] [ebp-38h]
int v5; // [esp+4h] [ebp-34h]
int v6; // [esp+8h] [ebp-30h]
char v7; // [esp+Ch] [ebp-2Ch]
int v8; // [esp+10h] [ebp-28h]
int v9; // [esp+14h] [ebp-24h]
int v10; // [esp+18h] [ebp-20h]
int v11; // [esp+1Ch] [ebp-1Ch]
int v12; // [esp+20h] [ebp-18h]
v1 = 8;
v2 = 0;
v8 = 'ruoY';
v9 = 'pnI_';
v10 = 'I_tu';
v11 = 'rW_s';
v12 = 'gno';
v4 = '0Y1X';
v5 = 't3Nu';
v6 = 'd00G';
v7 = 0;
while ( *(&v4 + v2) == *(v1 + a1) )
{
++v2;
++v1;
if ( v2 > 11 ) // 判断[8-19]位是否相等
// 所以输入的第9-20位为X1Y0uN3tG00d
{
result = 1;
if ( *(a1 + 20) == 'H' ) // 第[20]位是'H'
return result; // 输入的第9-21为X1Y0uN3tG00dH否则返回false
return 0;
}
}
return 0;
}
确定输入的9-21位是X1Y0uN3tG00dH
判断内的第2个函数
int __cdecl hou_4_1keyycsub_401460(char *Str)
{
char Dest; // [esp+8h] [ebp-10h]
if ( strlen(Str) == 24 )//输入为24位
{
if ( q_8_fc_sub_4013B0(Str) )//跟进
{
Str[20] -= 0x58;
Str[21] -= 0x46;
Str[22] -= 3;
Str[23] -= 0x6B;
strcpy(&Dest, Str);
}
}
else
{
printf("String Length is Wrong");
}
return 0;
}
signed int __cdecl q_8_fc_sub_4013B0(int a1)
{
int v1; // ebx
int v2; // ecx
int v3; // esi
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [原创]KCTF 2024 第十题 试探 1984
- KCTF2023第五题 争分夺秒 9501
- KCTF2022第三题 石像病毒 7282
- [原创]KCTF2021春季赛第四题 英雄救美 10009
- [原创] 第五题:魅影舞姬 3192
看原图
赞赏
雪币:
留言: