攻防世界 逆向 EasyRE

攻防世界 逆向 EasyRE (原创)
原题如下:
攻防世界 逆向 EasyRE
文章图片

下载文件:
攻防世界 逆向 EasyRE
文章图片

查看exe文件的脱壳信息并用IDA打开。
攻防世界 逆向 EasyRE
文章图片

Shift+F12查看字符串窗口,发现flag,但是并不对。
注意到下面的right\n,查看其伪代码。
此函数源代码如下:

int sub_401080() { unsigned int v0; // kr00_4 signed int v1; // edx char *v2; // esi char v3; // al unsigned int v4; // edx int v5; // eax __int128 v7; // [esp+2h] [ebp-24h] __int64 v8; // [esp+12h] [ebp-14h] int v9; // [esp+1Ah] [ebp-Ch] __int16 v10; // [esp+1Eh] [ebp-8h]sub_401020(&unk_402150, v7); v9 = 0; v10 = 0; v7 = 0i64; v8 = 0i64; sub_401050((const char *)&unk_402158, (unsigned int)&v7); v0 = strlen((const char *)&v7); if ( v0 >= 0x10 && v0 == 24 ) { v1 = 0; v2 = (char *)&v8 + 7; do { v3 = *v2--; byte_40336C[v1++] = v3; } while ( v1 < 24 ); v4 = 0; do { byte_40336C[v4] = (byte_40336C[v4] + 1) ^ 6; ++v4; } while ( v4 < 0x18 ); v5 = strcmp(byte_40336C, "xIrCj~

【攻防世界 逆向 EasyRE】主要部分为下图中的代码。
攻防世界 逆向 EasyRE
文章图片

主要的变量为v5、byte_40336C和其他几个表示位序的变量。
编写C语言的代码,如下。
攻防世界 逆向 EasyRE
文章图片

运行得到flag。

    推荐阅读