前言
感觉自己就是把几个mips的题给汇总了一下,算不上是总结吧。不过还是很有收获的。
题目一
DDCTF-babymips
拿到题目,分析是mips小端序,利用qemu模拟运行,注意要使用小端序(qemu也区分了大端小端)。然后输入了16个字符,结果出现段错误。23333
然后我就放弃了。
https://www.codetd.com/article/67983
https://cloud.tencent.com/developer/news/196131
参考这两篇文章我又复现了一遍。
qemu动态调试,我也没有成功2333.所以感觉自己分析不出这是花指令。
好吧,假如看出了是花指令,然后使用idc或者python去除之后。得到patch后的程序,使用ida反编译。
同样的搜索字符串定位到sub_400420函数,从后往前看,可以看到这么个流程图
数了一下,有16条判断,正确的流程应该是从右边过来。猜测这就是要对我们输入的16个数进行判断了。随便找一个判断看看。
233333.根本看不懂丫这些数据都是动态分配的吧。F5又无效,没办法了。
反编译mips指令有两种办法Retdec,和jeb2-mips。我两种方法都是了一遍。emmm,感觉还是Retdec好用。jeb其实很好,但是demo版的功能受限了。。。老是莫名其妙的退出???蒙蔽。
求个jeb2.3mips的破解版。。。
使用Retdec反编译后,定位到sub_400420函数,查看逻辑