NP跟HS加了VM保护,搞不定,发现Xtrap没有用VM保护,于是拿来分析了下,
用的是老版本XDva220,因为之前在老版本做的静态分析,有些信息懒的在新版本上去改动了,
现在的版本XDva280看了看,好像变化不大,估计只是针对后面系统的更新或者
多了些新的ControlCode.

逆向的部分尽量保证接近原始汇编代码,还有5个IoControlCode没有逆向,
IoControlCode_85000880
IoControlCode_850008C0
IoControlCode_85000894
IoControlCode_85000840
IoControlCode_850008C4
感兴趣的话,大家可以接着逆.
其他部分都逆向完了,数据部分还原了大部分,有的不知道什么意思的就用dummy代替
另外有2个DeviceExtension不知道是什么结构,这个只有自己定义了2个,
XTRAP_DEVICE_EXTENSION2跟XTRAP_DEVICE_EXTENSION3(为了保证与原始汇编一致),
有逆向得不对的地方或者发现其他结构不对的,欢迎大家指出,一起修正.
另外IDB文件中间有些部分比如它所加密的字符串已用脚本解开,因为结构挺大,
所以写了个脚本处理结构的变量名字打印保存到文本.附件中包含py脚本.

我所用的DDK是2600.1106这个版本,它的_DEVOBJ_EXTENSION定义没有AttachedTo,
所以这个需要手动加上,不然不能够编译通过.
欢迎转载,请保持文章完整性.

Revers by dengkeng, Email:poppig@sohu.com

附件说明:
DeCode.py是对应的脚本文件,IDA5.5 + IDAPython 1.2
原始驱动:目录包含对应IDB文件以及驱动.

上传的附件 XTrap.rar