Was wir bisher versucht haben
Grundlegende Android-Build-Konfigurationen:
minifyEnabled true
shrinkResources true
Root-Erkennungsbibliothek:
Integriertes Telsec zur Root-Erkennung.
App Kill Logic:
Ursprünglich in Java/Kotlin implementiert, aber das VAPT-Team konnte es umgehen. Die Root-Erkennung und App-Kill-Logik wurde auf nativen C++-Code verschoben.
VAPT-Ergebnisse
Obwohl die Logik auf nativen Code verschoben wurde, konnte das VAPT-Team sie mit Tools wie folgenden umgehen:
JADX
Ghidra
Frida
Sie haben die App erfolgreich auf gerooteten Geräten installiert. Was wir stoppen müssen.
Versuch der Verschleierung von nativem Code
Wir haben versucht, die folgenden Flags zu CMakeLists.txt hinzuzufügen:
Code: Select all
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mllvm -fla -mllvm -bcf -mllvm -sub -s -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s -mllvm -sub -mllvm -bcf -mllvm -fla")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions -fvisibility=hidden -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-rtti -fno-exceptions -fvisibility=hidden -s -mllvm -sub -mllvm -bcf -mllvm -fla")
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--strip-all")
Ich würde gerne mehr über Tigeress und OLLVM Obfuscator erfahren.
Ich interessiere mich für Anleitungen zu:
- Wie verschleiert man nativen C++-Code in einer Android-App richtig?
- Irgendwelche Best Practices oder Beispiele aus der Praxis, wie man nativen Code vor Reverse Engineering und Hooking schützt?
- Wie kombiniert man Verschleierung mit Anti-Debugging- und Anti-Hooking-Techniken?
Mobile version