Кинь исключение пока apktool попробуй декомпилировать / разархивировать мой apk - PullRequest
0 голосов
/ 30 октября 2018

Я пытался защитить свой APK от обратного инжиниринга. Я знаю, что невозможно предотвратить декомпиляцию APK, но я видел, что некоторые APK использовали трюк, чтобы генерировать исключение apktool в процессе декомпиляции (не только инструмент APK, все декомпиляторы, такие как QARK не может вернуть APK classes.dex), поэтому я решил сделать это на более длительное время в процессе обратного инжиниринга

Здесь вы можете увидеть некоторый результат результата закаленного приложения: WinRar: WinRar 1015 * winrar2

.

apktool:

    sudo apktool d -f app/TTT.apk --keep-broken-res
    I: Using Apktool 2.3.1-dirty on TTT.apk
I: Loading resource table...
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
W: Multiple types detected!  ignored!
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/lab/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
Exception in thread "main" java.lang.NullPointerException
    at brut.androlib.res.data.value.ResEnumAttr.serializeBody(ResEnumAttr.java:56)
    at brut.androlib.res.data.value.ResAttr.serializeToResValuesXml(ResAttr.java:64)
    at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResources.java:555)
    at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:269)
    at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:132)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:124)
    at brut.apktool.Main.cmdDecode(Main.java:163)
    at brut.apktool.Main.main(Main.java:72)

Пожалуйста, объясните мне, как это возможно? (Мне нужна деталь реализации)

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Это функция шифрования классов Java (например, dexgaurd или Bangcle kh); а также это защищено с помощью Native Library Encryption (NLE) + JNI Obfuscation (JNI) от чего-то вроде dexprotector (я обнаружил, что в инструментах динамического анализа)

и множество танков для семантики Эта статья и эта

0 голосов
/ 30 октября 2018

Первый APK, на который вы ссылаетесь, не является действительным APK. Это просто текстовый файл со следующим текстом, повторяемым снова и снова:

HTTP/1.1 200 OK
Date: Sat, 27 Oct 2018 17:35:36 GMT
Strict-Transport-Security: max-age=31536000;includeSubDomains; preload
Last-Modified: Sat, 28 Jul 2018 11:40:03 GMT
ETag: "23b1fe5-5720db0636ac0"
Accept-Ranges: bytes
Content-Length: 37429221
Keep-Alive: timeout=20
Connection: Keep-Alive

Очевидно, что повторяющиеся заголовки ответа HTTP не образуют действительный APK. Причина, по которой ваши инструменты не работают с этим файлом, заключается не в том, что он зашифрован / запутан / закален, а в том, что это вообще не APK, и не будет работать, если вы попытаетесь установить его.


Второй APK вы связали с выдержками для меня нормально, когда я unzip it.

Мой вывод заключается в том, что упомянутое вами "усиление защиты" не существует (оно, по-видимому, связано только со смешением действительных и недействительных APK), и что любой успешно установленный APK также может быть успешно извлечен.

...