几维资讯> 行业资讯

几维安全最新APP加密神器,国内首款全平台移动代码虚拟机KiwiVM即将发布

几维安全 2017-11-20 17:01:25  5930
分享到:

几维安全携最新APP加密神器:全平台移动代码虚拟机KiwiVM亮相11月18日在北京举办的看雪安全峰会。

下面我们就来看看这个虚拟机到底厉害在哪里!

传统的Android SO加密方式

SO加壳-黑盒方式

功能:对SO进行二进制加壳,破坏ELF文件信息,导致静态反编译工具解析失败,静态加密的方式,是通过干预系统对SO的加载过程进行动态解密。

缺陷:1.恢复简单,通过内存dump或者二进制修复即可

2.平台依赖严重,由于Android版本众多,各家厂商对系统进行了不同程度的定制,所以针对不同的系统库加载器均需要进行适配;

3.容易被脱壳,由于Android环境为开源环境,导致修改系统非常容易,脱壳手段层出不穷。

SO源代码混淆-白盒方式

功能:基于OLLVM开源项目改造的代码混淆加密,包括指令平展化,逻辑混淆和字符串加密。

缺陷:基于代码基本块混淆粒度太大,只增加了假基本块来迷惑分析者,仔细分析的情况下,真实块很明显。

下面我们就来看看KiwiVM虚拟机凭什么能这么任性!

KiwiVM代码虚拟化系统

功能:针对代码顶级加密方案,虚拟代码指令执行

应用场景:针对C/C++开发的应用,SDK中的核心代码,关键数据保护代码,反欺诈数据采集核心逻辑,支付及通信加解密模块。

原理介绍

几维安全KiwiVM虚拟化编译器基于LLVM编译器中间层实现,通过设计独有保密的虚拟CPU解释器以及完备虚拟指令,将原始CPU指令进行加密转换处理为只能由KiwiVM虚拟解释器解释执行的虚拟指令,能够完全隐藏函数代码逻辑,以及函数及变量之间的依赖关系。

几维安全编译器基于LLVM编译器中间层实现,加密代码与业务代码紧密结合,有效阻挡逆向分析;由于是从编译器内部生成平台依赖代码前实现无平台依赖代码虚拟化过程,不依赖于特定系统环境,无兼容性问题,天然兼容所有CPU架构,包括IOS,Android、armv7,arm64),Windows,Liunx(X86,X64),Other(Mips)等。

如图所示:

APP加密.png

KiwiVM代码虚拟化(效果展示)

原始代码反编译(使用IDA F5功能)

void __fastcall wbaes128_enc(uint8_t *p, uint8_t *c)

{

  v2 = c;

  _aeabi_memmove(c, p, 16);

  shift_rows(v2);

  v3 = 0;

  v4 = t_boxes;

  do

  {

    v5 = 0;

    v6 = v4;

    do

    {

      v7 = (*v6)[0][v2[v5]];

      v6 = (uint8_t (*)[16][256])((char *)v6 + 256);

      v2[v5++] = v7;

    }

    while ( v5 != 16 );

    v8 = 0;

    do

    {

      *(_DWORD *)&v2[4 * v8] = ty_tables[0][v2[4 * v8]] ^ ty_tables[1][v2[4 * v8 + 1]] ^ ty_tables[2][v2[4 * v8 + 2]] ^ ty_tables[3][v2[4 * v8 + 3]];

      ++v8;

    }

    while ( v8 != 4 );

    shift_rows(v2);

    ++v3;

    ++v4;

  }

  while ( v3 != 9 );

  v9 = t_boxes[9];

  v10 = 0;

  do

  {

    v11 = (*v9)[v2[v10]];

    ++v9;

    v2[v10++] = v11;

  }

  while ( v10 != 16 );

}

加密代码反编译(使用IDA F5功能)

KVMVoid __fastcall wbaes128_enc(void *p1, void *p2)

{

  v5 = p2;

  v6 = p1;

  v3 = (int *)&v6;

  v4 = (int *)&v5;

  v7 = __KVM_RELOCS___;

  v8 = __KVM_SIGNS___;

  v9 = __KVM_MODULE___;

  v10 = _kvm_init_gv__;

  v11 = 1278;

  v12 = 2;

  v13 = (int *)&v3;

  return *(_DWORD *)kiwisec_vm_interpreter(&v7);

}

KiwiVM代码虚拟化优势

1顶级安全防护

自定义虚拟CPU,代码一旦加密,很难解密,其不可逆的特性能有效避免攻击者通过DUMP内存,还原原始代码。
2函数级虚拟化

以C、C++源文件函数为单位进行虚拟化,具有粒度细、可控性高、隐蔽性强的特性,虚拟化之后函数完全隐藏。
3全平台全架构

支持iOS与安卓双平台的Native代码虚拟化,包括armv7、arm64、armv7a、x86、x86_64等架构。
4兼容情况良好

在C、C++代码编译时直接虚拟化,其兼容性与原始应用一样。
广告及反欺诈SDK应用场景。

APP加密1.png

总而言之,言而总之。新产品KiwiVM虚拟机加密相比于以往的APP加密方式,它的可操作性、安全性、高效性等都有显著的提升。并且,在实际操作方面,KiwiVM虚拟机也将更加的便捷,对于公司安全部门和个人开发者而言,这项技术将大大减少你们的工作量,提高你们的工作效率。


分享到:



《安卓应用加密》 《Unity3D手游加密》 《源代码加密》 《移动端的KiwiVM虚拟机》