逆向攻防世界CTF系列29-secret-galaxy-300
逆向攻防世界CTF系列29-secret-galaxy-300
32位无壳,扔进IDA,main函数包括
int __cdecl main(int argc, const char **argv, const char **envp)
{
__main();
fill_starbase((int)&starbase);
print_starbase((int)&starbase);
return 0;
}
其中跟进fill_starbase,应该是赋值,跟进print就是打印,没有发现什么输入,动态运行一下
设置断点
回去看看这几个galaxyname怎么来的
跟进
发现这个从来没用到,而且跟题目名类似,交叉引用off_409014
逻辑其实就是从前几个字符串里拼接flag
设置断点
运行到这时,提取出enc
enc = [
0x61, 0x6C, 0x69, 0x65, 0x6E, 0x73, 0x5F, 0x61, 0x72, 0x65,
0x5F, 0x61, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x5F, 0x75, 0x73,
0x00
]
for i in range(len(enc)):
print(chr(enc[i]),end='')
aliens_are_around_us
解法二是gbd动调
用指令“x/100s 0x40DAC0”可以快速查看字符串值
或x/s 0x80485bc
根据文件不同自己配,比如这个40DAC0是32ELF
其中x指令是查看内存的值,100是查看几个字节,s表示以字符串形式查看
这样就可以直接看到flag啦
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Matriy
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果