Android版使用说明

1.概述

本文的主要介绍SO源码虚拟化保护NDK插件的使用方式,阅读者需具备NDK开发经验,否则使用可能存在困难。

2.安装插件

使用编辑器打开configuration.txt文件,指定环境变量中NDK的clang路径,mac电脑修改OSX_Clang_Path路径,windows电脑修改WIN_Clang_Path路径,如图:

"2-1"

Ndk插件通过执行python install.py命令安装编译器,使用完成后执行python uninstall.py即可恢复原始编译器 如下图:

"2-1"

3.引入头文件

将include目录下的KiwiOBF.h头文件拷贝到Ndk项目中,并在需的地方进行引用即可。

4.添加KIWIOBF标签

对需要进行虚拟化保护的函数,添加KIWIOBF标签,以告知编译器该函数需要进行虚拟化编译。如下图: "2-1"

5.设置参数

安全编译器有默认虚拟化参数,如不能满足需求,可以自定义配置参数

加密参数说明

标识 作用 描述
-kce-mbs 代码虚拟化 在不改变原逻辑的情况下对程序基本块进行加密转化,防止对目标程序被静态分析;取值范围是0~5,默认值为1
-kce-mbs-inst-chance 代码虚拟化基本块比例 每次加密随机覆盖基本块的比例,100表示所有基本块都加密;取值范围是0~100,默认值为100
-kce-mbs-chance 代码虚拟化函数比例 针对未设置标签或未勾选的函数,进行随机加密,如果只加密标记的函数,设置0即可;取值范围是0~100,默认值100
-kce-str 字符串加密 字符串加密开关,对项目中的明文字符串进行加密保护;默认值0关闭

可对比虚拟化前后可执行文件的大小,或使用IDA Pro分析实际虚拟化效果[参数越大,编译时间更长,如果编译时等待时间过长,建议调整参数后重新编译]

ndk-build编译模式的虚拟化参数在Android.mk中设置,如下: "2-1"

"2-1"

CMake编译模式的虚拟化参数在build.gradle中设置,如下: "2-1"

6.执行编译

项目编译操作和原始流程一样,NDK项目执行ndk-build即可。 "2-1"

7.卸载插件

Ndk插件:执行python uninstall.py即可恢复原始编译器

8. 加密效果

代码虚拟化效果参考

如遇问题请联系我们的客服或技术支持,公司电话:028-83177117

results matching ""

    No results matching ""