分析
首先使用IDA分析,发现被加了壳。使用die查壳
为upx壳,使用脱壳软件脱壳失败后,开始使用手脱。
进入程序后就发现这里有一个jmp大跳,这是壳的特征。直接跟进
来到一个pushad,使用ESP定律。在执行完pushad后记录下堆栈顶
下硬件读断点,然后直接F9来到这里,看到还有一个jmp。跟进
这里就来到了OEP处了
然后使用ODdump脱壳,因为是UPX壳所以不需要修复IAT表
脱壳后的程序继续在IDA里分析。
进入第一个函数,查阅相关API函数得知该函数作用
进入第二个函数继续查看
这里参数数量为2就删除自己,再跟进第三个函数。
这里的整体流程为 下载一张指定url处的图片。因为不存在,所以需要自己构建一下本地服务器,推荐使用phpstudy这样的一体化,在www文件夹下放x.jpg文件。然后修改host文件,增加 127.0.0.1 http://www.ddctf.com.即可然后跟进运行即可获得flag
DDCTF-01c981e4d5ea4da6b38b2990abbaf411@didichuxing.com
总结
这里题目本身对我来说的难点是对于一些恶意代码的分析。作为新手,为了以后使用方便,弄了个windows虚拟机来为将来调试恶意代码做准备。其实早该弄了,只是一直没遇到,就懒得弄。这题的主要收获还有一些API的使用,也算是开拓了自己的一些视野。另外继续练习了手动脱壳。至于本地服务器搭建,因为以前做过PHP开发,所以不算难点。
明日计划
-
保持学业上相关课程的学习
-
完成pediy18-10
-
攻防世界下一题。