Verschleierung des nativen Codes in der Android-App, Implementierung der Root-Erkennungslogik [geschlossen]Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Verschleierung des nativen Codes in der Android-App, Implementierung der Root-Erkennungslogik [geschlossen]

Post by Anonymous »

Wir haben ein Problem mit der Umgehung der Root-Erkennung in unserer Android-Anwendung und ich möchte unseren nativen Code verschleiern, um es Angreifern zu erschweren, unsere Logik einzubinden oder zu ändern.
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")
Aber der Code ist weiterhin lesbar und modifizierbar. Das VAPT-Team empfahl die Verwendung von Tigress oder OLLVM, aber wir sind nicht mit der effektiven Integration oder Nutzung dieser Tools vertraut.
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post