攻防世界 逆向 EasyRE (原创)
原题如下:
文章图片
下载文件:
文章图片
查看exe文件的脱壳信息并用IDA打开。
文章图片
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】主要部分为下图中的代码。
文章图片
主要的变量为v5、byte_40336C和其他几个表示位序的变量。
编写C语言的代码,如下。
文章图片
运行得到flag。