buuctf做题记录
查壳

64位无壳
IDA反编译
F5了main_main函数,看函数列表的时候就觉得不对劲,之后查了查这道题似乎是GO语言写的,属于是新的知识点。

函数很乱,对GO语言没有了解,所以在判断语句周围点出数据查看,找到明文flag。(按’a’转换成字符串形式)

小记
GO语言了解甚少,如果不是这种明文flag感觉很难找到函数逻辑,查资料时找到了一个叫IDAGolangHelper的插件,不过不是很会用,学习内容+1.
(IDA似乎给了个GO1.13,可能因为插件没有这个版本才没用?)
GO语言
IDAGolangHelper下载
Go 语言二进制文件有它自己的特殊性:
- Go 语言内置一些复杂的数据类型,并支持类型的组合与方法绑定,这些复杂数据类型在汇编层面有独特的表示方式和用法。比如 Go 二进制文件中的 string 数据不是传统的以 0x00 结尾的 C-St

本文记录了一次通过ida反编译64位无壳程序解决buuctf挑战的过程,重点在于遇到的GO语言二进制文件特性。博主发现GO语言的函数混乱,通过查找明文flag找到了解题线索。同时,了解到GO语言的连续栈机制和调用约定的特殊性,以及在逆向分析中面临的困难。文章还提及了IDAGolangHelper插件,但未深入掌握其使用。最后,博主认为对GO语言的深入理解和学习是必要的。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



