-
-
[讨论]有没有谁研究过vmprotect在最后一次VirtualProtect之后干了些啥
-
2020-2-15 12:10
7459
-
[讨论]有没有谁研究过vmprotect在最后一次VirtualProtect之后干了些啥
如题,3.x版本以上,过了所有反调试,到最后一次VirtualProtect以后,发现代码还有vm痕迹。尝试整理。发现如下形式
vpush 1
vpush xxxxxxxx
vadd
vpop reg0 :保存eflags
vpop reg4
vreadmem
vpush reg8 ;这里保存了一个hash const到寄存器,但是没有使用,不知所以然
vpop n次
vpush 回来n次数 ;以上几对vpush,是实现了所谓的寄存器重新排序
vpush 0
vpush xxxx
vreadmem
vadd
vpop reg4 ;保存eflags寄存器
vpop reg0
vpush 常量
再次寄存器乱序
………循环如此
一堆pop和push做寄存器乱序可能是为了防止直接找到寄存器。但是不理解他vreadmem以后vpop regxx了,结果没有操作这个regxx而是重新乱序然后或获取保存下一个 hash const(也可能是跟踪的不够,毕竟是脚本跟踪,有待完善),这样的意义何在。。这些新保存的vregxx都是vmp0区断里面的一些hash const,这些hash const可能是干啥用的。说的比较乱,如果还原成x86,大概就是
最后一次VirtualProtect
mov 【寄存器1】,vmp0.hash1
mov 【寄存器2】,vmp0.hash2
…
这里的hash1和hash2相邻四个字节,问下这些hash值是用来干啥的,有研究过的小兄弟没?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌
握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
最后于 2020-2-15 12:11
被白菜大哥编辑
,原因: