几维KVM虚拟机分析(一)

由于虚拟机运行的runtime,几维混淆的实在是太凶了,可能是怕被人分析吧!

在关键函数中出现有个cmp R0,5,感觉可能会影响后面程序的运行流程,

因此关注运行的第五次结果。

几维KVM虚拟机分析(一)_第1张图片

几维KVM虚拟机分析(一)_第2张图片

几维KVM虚拟机分析(一)_第3张图片

大量的伪造控制流使得分析起来的难度很大;

几维KVM虚拟机分析(一)_第4张图片

几维KVM虚拟机分析(一)_第5张图片

由于控制流中大量的几维KVM虚拟机分析(一)_第6张图片这种操作,简直分析起来太美妙。

几维KVM虚拟机分析(一)_第7张图片

 

几维KVM虚拟机分析(一)_第8张图片

接下来不知道做了什么操作:

几维KVM虚拟机分析(一)_第9张图片

几维KVM虚拟机分析(一)_第10张图片

F7进去如下:

几维KVM虚拟机分析(一)_第11张图片

这个函数为真正的Handler

以下是第一个Handler:

几维KVM虚拟机分析(一)_第12张图片

伪C来看基本上是在操作数组。

几维KVM虚拟机分析(一)_第13张图片

几维KVM虚拟机分析(一)_第14张图片

几维KVM虚拟机分析(一)_第15张图片

几维KVM虚拟机分析(一)_第16张图片

几维KVM虚拟机分析(一)_第17张图片

几维KVM虚拟机分析(一)_第18张图片

以上这些Handler可以看出跟基于栈的有大不同,没有发现压栈和出栈的操作。在静态分析的时候出现看到的有的Handler是空的,没有实现的。所以感觉是基于寄存器的,但是这些Handler又这么的大,奇怪。也有可能就是原虚拟算法比较复杂。一先粗略的看一下,至于具体的细节,在二中再详细的说明。

 

 

 

你可能感兴趣的:(android逆向安全,Android,代码保护与逆向)