首页 » 技术分享 » XMAN【第几天?】magic

XMAN【第几天?】magic

 

前言

~~~
本来几天前就可以写的,可是一直没什么时间。
终于考完试了,可以和师傅们面基了。

magic

http://wemedia.ifeng.com/65490822/wemedia.shtml
https://www.52pojie.cn/thread-742361-1-1.html
这两篇文章写的很详细了,结合起来看。
主要的我觉得是windows下的 onexit函数在程序退出时对地址进行回调,类似的linux下有个相同功能的函数atexit基本上都会有一个假的入口,让我们入坑,我们可以通过trace进行跟踪,找到正确的逻辑后便可以进行下一步分析。
另外一点就是对程序代码的复用,我觉得有以下三种思路:
1. 通过ida的伪c代码,得到c代码
2. 如果是windows程序,那么可以通过loadlibrary进行地址空间的回调(注意目标平台,此题中要选择x64平台编译)
3. 动态调试,在运行时修改数据
具体的此题中,我用的是二、三方法,主要是第一种方法我觉得代码量太大不好把握。
我看官方的wp中multiasm写shellcode调用程序自身代码不是很明白怎么操作,以后有机会一定要学习下。
补充:multiasm是od,x32,x64的一款插件,需要自己写汇编
最后就是逆向虚拟机,对字节码进行分析,这确实感到很困难,需要很强的抽象的能力,之前做过olvm都还能理解,但这~~。
首先根据if else找出操作码,相当于mov的字节码,然后分析出具体的指令,每条指令进行对应,接下来便是痛苦的将指令对应成汇编代码,而后抽象出伪c代码,一般加密算法不会太难,有个xor就差不多了吧,在复杂就想撞墙了。

总结

-。-

转载自原文链接, 如需删除请联系管理员。

原文链接:XMAN【第几天?】magic,转载请注明来源!

0