>
>
CTFSHOW内部赛 逆向6_二进制玩家人均全栈
newbie99
是个zip文件,修复一下得到一个 ” 听说大家很怕VMP? ” 的文件。
无法运行,跟标准elf文件比较一下,把头部改3个字节,文件可以跑了。
发现upx,解一下,解不开。。。
参考:https://www.52pojie.cn/thread-1048649-1-1.html
手动脱一下upx壳。
找到oep,dump_elf64.idc跑一下
找到dumpfile,这下ida打开可以看了。
找到关键代码:
__int64 fastcall sub_401BFD(int64 a1, __int64 a2)
{
signed int v2; // eax
int v4; // [rsp+10h] [rbp-20h]
int v5; // [rsp+14h] [rbp-1Ch]
signed int i; // [rsp+2Ch] [rbp-4h]
v4 = 0;
v5 = 0;
sub_409740("input_flag:");
((void (fastcall *)(const char *, char *))loc_408C60)("%s", byte_4C0430);
for ( i = 0; i < 22; ++i )
{
v2 = byte_4C0430;
if ( v2 == 'd' )
{
++v5;
}
else if ( v2 > 'd' )
{
if ( v2 == 's' )
{
++v4;
}
else
{
if ( v2 != 'w' )
{
LABEL_12:
sub_409740("input_error!");
sub_408130(0);
}
--v4;
}
}
else
{
if ( v2 != 'a' )
goto LABEL_12;
--v5;
}
if ( dword_4BE100[8LL * v4 + v5] != 1 )
{
sub_409740("input_error!");
sub_408130(0);
}
}
sub_408AE0((int64)"correct! %s\n", "Please bring ctfshow{} with you when submitting.", a2);
return 0LL;
}
明显是个迷宫:asd w 4个方向,22步
找一下迷宫数据:
比划一下:dsddssaassddsddwwddsss
测试一下:
over!
v0id
newbie99 newbie佬可以简单说一下re4的思路嘛,爱你哟
admin
牛皮
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论