AliCTF2014题目解析之<reverse-200>
reverse-200
工具:procmon、immunity dbg、idapro
首先通过procmon观察ch2.exe
发现ch2.exe需要读取flag.txt,可以分析出ch2.exe是要读取flag.txt内容,加密后写到flag.crpyt
目录下创建一个flag.txt,写入aaaaaaaaaaaa,再次使用procmon观察
根据ch2.exe的api调用过程,开始动态调试
首先
bp ReadFile
直接断在读取flag.txt的过程,继续执行到用户代码
用IDA pro打开ch2.exe,到地址0x4022B8
IDA自动识别出了所处的函数_read
显然只是个读文件内容的函数,有可能是C语言的标准库。结合动态调试往外退,依次是如下函数
_filbuf
fread
最后跟踪到0x40121E,这里IDA pro没能识别出指令,还有很多标红的地方,根据一些书中所说,应该是使用了反汇编机制了
按《恶意代码分析实战》一书中所说的,写一段IDA python脚本,从0x401000开始将干扰码都改为NOP指令,改完后发现0x40121E下面指令序列变为
随后调用了函数 sub_401000,查看函数sub_401000
这里简单分析一下,可以看出就是加密函数了,逻辑很简单,限于篇幅,就不继续分析了。
另:看了wuyun上一篇帖子的解法是不通过逆向分析,直接构造可见字符集交给程序加密,得到映射表,阿里大牛原意可能是让同学们用这种方法,不过使用逆向方法也不失为一次很好的锻炼机会。