Unpack TTProtect
本帖最后由 Liquor 于 2013-8-20 16:22 编辑http://www.reversesec.com/wp-content/uploads/2013/07/1.png
我们可以直观的发现,先是自定位、之后是异或,紧跟着有一个call。
http://www.reversesec.com/wp-content/uploads/2013/07/2.png
是利用0101301F处的CALL来调用一个SEH异常。
不过我们是脱壳,而不是分析壳,所以就不要纠结这些问题了。
程序F9运行,之后F12暂停,打开堆栈调用,来到最后一个
http://www.reversesec.com/wp-content/uploads/2013/07/3.png
http://www.reversesec.com/wp-content/uploads/2013/07/4.png
如果对Visual C++ 7.0的程序熟悉的话,就可以知道,这里是oep入口段的末尾
找一个vc7.0的对比下。
http://www.reversesec.com/wp-content/uploads/2013/07/5.png
我们向上找,看下正常的vc7.0入口应该是什么样子的
http://www.reversesec.com/wp-content/uploads/2013/07/6.png
那我们把加壳的程序同样向上找。
http://www.reversesec.com/wp-content/uploads/2013/07/7.png
这里就是oep,那我们手工修复一下。把01用90(nop)填充。
http://www.reversesec.com/wp-content/uploads/2013/07/8.png
既然oep已经找到,我们来修复iat指针。下VirtualProtect断点。
第一次
http://www.reversesec.com/wp-content/uploads/2013/07/9.png
……
第六次
http://www.reversesec.com/wp-content/uploads/2013/07/10.png
Alt+F9返回用户代码。
http://www.reversesec.com/wp-content/uploads/2013/07/a6efce1b9d16fdfa612433bdb58f8c5494ee7b1d.jpg.png11.png
我们下一个写入断点,继续跟。
http://www.reversesec.com/wp-content/uploads/2013/07/12.png
向上拉,寻找一下magic jmp。
http://www.reversesec.com/wp-content/uploads/2013/07/13.png
此时我们来看一下iat
http://www.reversesec.com/wp-content/uploads/2013/07/14.png
搜索特征码,“jmp eax”之后F7跟入,并还原oep。
http://www.reversesec.com/wp-content/uploads/2013/07/15.png
http://www.reversesec.com/wp-content/uploads/2013/07/16.png
之后copy该段代码,来到正确的oep处并覆盖。
http://www.reversesec.com/wp-content/uploads/2013/07/17.png
开始dump,并使用ImportREC修复。
http://www.reversesec.com/wp-content/uploads/2013/07/18.png
http://www.reversesec.com/wp-content/uploads/2013/07/19.png
至此脱壳结束。
如有指教,请发送邮件到qs#ff0000.cc(#换@),谢谢。
给力,占沙发了,谢谢。 这篇在逆缘看到过啊 吾爱扣扣 发表于 2013-8-20 16:34 static/image/common/back.gif
这篇在逆缘看到过啊
报告扣扣老师 我就是qs
RE: Unpack TTProtect
Liquor 发表于 2013-8-20 16:45 static/image/common/back.gif报告扣扣老师 我就是qs
好吧。。。。。 感谢提供分享! Qs师傅都可以逆天了 图挂了。。求更新
页:
[1]