KiwiVM For SO
This article is for android developers
The SO code virtualization tool [KiwiVM] supports the virtualization protection of C, C++ and objective-c code. By virtue of the characteristics of custom CPU instructions, once the code is encrypted, it will never be decrypted. Attackers cannot restore the code and analyze the core business logic.
After purchasing the KiwiVM virtual machine, use the machine code generation tool provided by Kiwisec to extract the Key of the computer to be bound. Kiwisec will generate a unique KiwiVM toolkit based on Key, authorization time and enterprise information.
Go to the KiwiVM directory and execute
python setup.py --clang=/path/to/clang --install , install the compiler
4. Import header file
Copy the header file in the include directory into your iOS project and refer to it as needed.
5. Add label KIWIVM
For functions that require virtualization protection, add the KIWIVM tag to notify the compiler to virtualize compilation.
KiwiVM code virtualization compiler is implemented based on clang. For some projects using Gcc compiler, it is necessary to specify clang compiler in Application.mk or build.gradle[cmake]. The ndk-build compilation mode sets Application.mk, As shown below： The cmake compilation method sets the build. gradle of the project, As shown below：
Switch to the KiwiVM directory and execute python setup.py --clang=/path/to/clang --uninstall
8. Effect analysis
Decompile unprotected code via IDA tool to view source code logic directly
Decompiling the virtualized code through the IDA tool, the original code logic is hidden
If you have any problems, please contact our customer service or technical support.