【攻防世界】secret-galaxy-300
看了题解才会,这题很有趣
涉及到的技巧:ida里ctrl+x可以追溯变量/函数的调用
ida进去之后能看见一个da♂rk galaxy
网上有一篇题解说得很好,这个东西在程序主体里没用过,那就看看它还在哪里出现了
一路追溯,可以看到这样一个东西
不知道这个函数是咋运行的,我猜可能是程序启动的时候加载了什么东西,把这个函数稍上了
其实没看题解之前我倒是看见这个函数了,但是当时没有悟出是什么意思
题解就说了,这个其实是用已有的字符串拼了一个新串出来,然后藏到内存里
那么怎么还原出flag呢,一个一个扣也是可以的,不过有更简单的办法
进gdb动态调试,在return那个地址设个断点,然后查看byte_40DAC0这个地址和之后的内存就可以了
小技巧:
用指令“x/100s 0x40DAC0”可以快速查看字符串值
其中x指令是查看内存的值,100是查看几个字节,s表示以字符串形式查看
这样就可以直接看到flag啦