-
-
[原创] 2023腾讯游戏安全大赛-安卓赛道决赛"TVM"分析与还原
-
发表于:
2023-9-24 20:36
13188
-
[原创] 2023腾讯游戏安全大赛-安卓赛道决赛"TVM"分析与还原
论坛里已经有很多人发过关于"2023腾讯游戏安全大赛-安卓赛道决赛"的文章了我就不多介绍,本人有幸参加过这次比赛,很可惜的是我PC和安卓两个赛道都参加了时间不够,最近有时间了花了两天重新看了一下题目,发现这个"tvm"还是比较简单的给大家分析还原一下。
在阅读本文之前,建议先对虚拟机(VM)的执行流程有一定的了解。这样能更好地理解本文所讨论的内容。
a64.dat不懂的可以看一下juice4fun(a64.dat),里面主要包含了arm64虚拟化指令("tvm"shellcode)。
上面是虚拟机初始化代码,通过sub_9570函数初始化虚拟机环境得到vContext(包含虚拟寄存器、虚拟化指令、handler表、跳转表、调用表...),调用sub_98e50开始执行虚拟机。
vContext结构如下
对于确认sub_98e50是vm_start的问题,可以根据上面的流程图进行分析。在反汇编中,可以观察到这里进行了表查找调用,也就是Handler的分发过程。
sub_98e50(vm_start)还原大致内容
这里拿个比较简单的举例 ADRP [vm] fun: 0xD0A88, opcode: 05000000
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2024-4-28 23:05
被a'ゞCicada编辑
,原因: