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-fla 控制流平展次数 将代码中的if、while、for、do等控制语句随机转化为switch分支选择语句,设置为2表示对该函数循环处理2次;取值范围是0~5,默认值1
-kce-fla-chance 控制流平展函数比例 针对未设置标签的函数,进行随机加密,如果只加密标记的函数,设置0即可,设置为50表示对该项目中50%的函数进行随机加密;取值范围是0~100,默认值0
-kce-bcf 控制流伪造次数 针对C/C++代码中的跳转语句和分支语句,随机添加条件跳转指令,模糊代码执行流程;设置为2表示对该函数循环处理2次;取值范围是0~5,默认值1
-kce-bcf-prob 控制流伪造基本块比例 每次加密随机覆盖基本块的比例,100表示所有基本块都加密;取值范围是0~100,默认值15
-kce-bcf-chance 控制流伪造函数比例 针对未设置标签或未勾选的函数,进行随机加密,如果只加密标记的函数,设置0即可;取值范围是0~100,默认值15
-kce-str 字符串加密 字符串加密开关,对项目中的明文字符串进行加密保护;默认值0关闭

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

NDK项目的混淆参数在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 ""