(十三)、easy_go

easy_go

攻防世界第64题

 

一、 运行,查看文件类型

提升为执行权限后运行

 

 

二、 IDA静态分析

 

IDA7.0与IDA7.6打开后不一样

IDA7.0:

 

IDA7.6:

 

好像IDA7.0需要下载IDAGolangHelper进行符号分析

链接: https://github.com/sibears/IDAGolangHelper

 

分析:

 

这里,上半部分是判断失败的代码,下半部分是判断成功的代码

交叉引用

 

 

 

这里v3来自v17,v17来自v12,而v12来自何处无从得知

用Gdb动态调试一下看看

三、gdb动态分析

1、peta插件

这里介绍一款特别好用的插件:

peta(https://github.com/longld/peda)

下载方法:

git clone https://github.com/longld/peda.git ~/peda

echo "source ~/peda/peda.py" >> ~/.gdbinit

抄自:

https://backendhouse.github.io/post/%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%AA%E6%9C%89%E6%84%8F%E6%80%9D%E7%9A%84gdb%E6%8F%92%E4%BB%B6/

 

2、调试

 

下 b *0x495318断点

 

 

直接就出flag了

 

Flag:

flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}

PS

虽然最后拿到了flag,但代码逻辑我还是捋不清,老是感觉这IDA反编译的变量有问题...还是太菜了吗,占个坑,以后了解了解GO语言之后再看看

 

posted @ 2022-01-28 23:26  TLSN  阅读(121)  评论(0)    收藏  举报