首页
社区
课程
招聘
[讨论]有没有谁研究过vmprotect在最后一次VirtualProtect之后干了些啥
2020-2-15 12:10 7459

[讨论]有没有谁研究过vmprotect在最后一次VirtualProtect之后干了些啥

2020-2-15 12:10
7459
如题,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 被白菜大哥编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 2510
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_xghoecki 2020-2-15 20:04
2
0
帮顶
雪    币: 8297
活跃值: (4831)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
v0id_ 2020-2-20 16:50
3
0
兄弟,vmp3.x的vadd,vsub这些虚拟指令怎么整理啊,有能用的工具吗,给个思路也行
雪    币: 12500
活跃值: (3043)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
白菜大哥 2020-2-20 17:20
4
0
alphc 兄弟,vmp3.x的vadd,vsub这些虚拟指令怎么整理啊,有能用的工具吗,给个思路也行
em。。建议学学il汇编,你就理解了。
雪    币: 2063
活跃值: (3823)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lhxdiao 2020-3-8 16:00
5
0
VMP重点不是脱壳,而是代码还原。脱壳本身比较简单,难点还是在于代码还原。
雪    币: 83
活跃值: (1052)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 2 2020-3-8 20:23
6
0
看不懂 期待大佬继续讲解
游客
登录 | 注册 方可回帖
返回