iOS OLLVM de compilación a aplicación (Hikari)

iOS OLLVM de la compilación a la aplicación

No hace falta decir aquí que OLLVM se usa para confundir el código durante la compilación, incluida la ofuscación de cadenas y la ofuscación del flujo de control. Esto hace que sea imposible aclarar la lógica de ejecución de instrucciones sin problemas al descompilar el análisis estático, lo que aumenta en gran medida el análisis estático de la aplicación, protegiendo así la aplicación.

Hikari

Usamos el proyecto de código abierto Hikari, GitHub
admite:
1. Habilitación del flujo de pseudo control
2. Aplanamiento del flujo de control
3. Segmentación básica de bloques
4. Reemplazo de instrucciones
5. Anti-volcado de clase
6. Salto relativo basado en registros Con otros refuerzos, puede ser Destruir completamente el pseudocódigo de IDA/Hopper (comúnmente conocido como F5)
7, encriptación de cadenas
8, encapsulación de funciones,
etc., sin más preámbulos, vamos directamente al tema.

1. Configuración del entorno

1.1 Instalar CMAKE

Dado que se compila a partir del código fuente, es necesario instalar cmake.
Dirección de descarga del sitio web oficial: https://cmake.org/download/
Encuentre una versión adecuada para descargar, mi versión es

cmake --version
cmake version 3.10.2

Instalación, configuración:
Seleccione de la barra de menú: Herramientas: cómo instalar para uso de la línea de comandos

cmake --version

Pruebe si la instalación está completa.

1.2 Instalar SWIG

Vaya al sitio web oficial para descargar SWIG , yo uso la versión 3.0.12.
Una vez completada la descarga, descomprima e ingrese swig-3.0.12

./configure
make
sudo make install

Probar si la instalación está completa

swig -version

1.3 Instalar Z3

brew install z3

2. Descarga Hikari

Estoy usando la última versión del código fuente. Debido a que hay otras referencias de GitHub en la versión , debe descargarlo usted mismo y colocarlo en la ubicación especificada: 1. Coloque el encabezado en /include/llvm/Transforms/Obfuscation. 2. Coloque Core en /lib/Transforms/Obfuscation.


3. Compilar

mkdir Build
cd Build
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DLLVM_APPEND_VC_REV=on ../Hikari
ninja

Desminado primero:
1. Al ejecutar cmake -G “Ninja” -DCMAKE_BUILD_…, generalmente faltan cosas. Descargue los archivos correspondientes y colóquelos en el directorio especificado como se mencionó anteriormente, y básicamente compile.
2. Al ejecutar ninja, al compilar el entorno específico de iOS, se informarán dos errores:
aplicación inválida de 'sizeof' a un tipo incompleto 'struct stat64'
aplicación inválida de 'sizeof' a un tipo incompleto 'struct statfs64'

inserte la descripción de la imagen aquí
En este momento , Para encontrar el archivo de error projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc, abra el archivo y cambie el correspondiente: struct
stat64 a struct stat
truct statfs64 a truct statfs
3. Al ejecutar ninja, error fatal: lipo: / Build/lib/libclang_rt.builtins_arm64_ios.a y /Build/lib/libclang_rt.builtins_arm64_iossim.a tienen las mismas arquitecturas (arm64) y no pueden estar en el mismo archivo gordo de salida

inserte la descripción de la imagen aquí

La arquitectura arm64 del chip M1 también existe durante la compilación, por lo que modificamos directamente build.ninja, encontramos el comando lipo -output correspondiente y eliminamos la arquitectura arm64 del chip M1 para fusionar.
-arch arm64 /Volumes/IosWorkSpace/OLLVM/Hikari/Build/lib/libclang_rt.builtins_arm64_iossim.a

la compilación continúa

ninja install
git clone https://github.com/HikariObfuscator/Resources.git ~/Hikari

Continuar con
el archivo de mina no puede crear el directorio: /usr/local/libexec. Tal vez necesite

inserte la descripción de la imagen aquí

Esto se debe a que la ruta de instalación especificada no tiene permiso y es necesario modificar los siguientes parámetros del Makefile

将:
"/usr/local/libexec"

修改为:
"$(ROMFS)/usr/local/libexec"

Supongo que te gusta

Origin blog.csdn.net/weixin_38367103/article/details/126623210
Recomendado
Clasificación