下载文件,是一个exe可执行文件,ida看看先,找到main,双击main0 先直接看最下面,如果Dest和Str2相等,则为flag,所以双击Str2,导出后 再看Dest,第一个for循环中,0x64就是100,所以这个循环不执行,无视掉,重点就是sub_4110BE函数,双击看看 很长的一堆啊,但仔细分析完发现就是将它扩展然后进行base64加密,之后回到main0进行+j,所以写个脚本,将之前导出的Str2拿过来:
a ='e3nifIH9b_C@n@dH' flagbase64='' for i in range(len(a)): flagbase64+=chr(ord(a[i])-i) print(flagbase64)输出得到base64加密后的flag:e2lfbDB2ZV95b3V9,之后进行base64解密后:{i_l0ve_you} 所以flag为flag{i_l0ve_you}
打开之后,确实和名字一样,是个游戏,ida打开,发现连main函数都没有,只能打开od了,搜索一下字符串flag 双击点开发现,每一步运行完的都指向一个地方啊 就是00C6A7BE,去找这个地址,发现是个jmp,指向00C6F770,那就去这里, 下一个断点,运行发现,果然每一步都会跳转到此处,但我们的目的是跳转到done!flag那一段。我们记下done!flag的地址,来到
双击进行修改,开始运行程序
拿到flag