Шифрование активов (JSON) с помощью DexGuard

Я использую DexGuard v7.3.18 и хочу зашифровать файлы JSON, которые хранятся в assets/json, к которым я обращаюсь в своих классах следующим образом:

inputstream = context.getAssets().open("json/" + jsonFileName)

и я настроил dexguard-project.pro с различными параметрами, такими как:

  1. -encryptassetfiles assets/json/**.json
  2. -encryptassetfiles assets/json/**

но ни один из них не помог зашифровать файлы JSON. Согласно документам DexGuard:

-encryptassetfiles [file_filter] Указывает файлы активов Android, которые должны быть зашифрованы. Файлы ресурсов хранятся в каталоге ресурсов и могут содержать любые данные. Этап запутывания может автоматически шифровать их и обеспечивать их расшифровку на лету во время выполнения. Чтобы это работало, файлы активов должны передаваться в потоковом режиме, а их имена должны указываться как строковые константы. Это означает, что ваш код должен вызывать AsssetManager следующим образом: open("MyAssetFile") Затем в вашей конфигурации можно указать "-encryptassetfiles assets/MyAssetFile". Применимо только при запутывании кода Android.

Я проверил настроенный APK с помощью Apktool. Что мне не хватает?


person Anil Gorthy    schedule 27.04.2017    source источник
comment
Вы используете программу на своем компьютере для шифрования файла активов в файле apk?   -  person greenapps    schedule 27.04.2017
comment
Нет, шифрованием занимается DexGuard.   -  person Anil Gorthy    schedule 27.04.2017
comment
Совершенно непонятно, чего вы хотите.   -  person greenapps    schedule 27.04.2017
comment
Я не уверен, какая часть неясна. У меня простой вопрос: DexGuard обеспечивает шифрование активов, и я хочу знать, как следует настроить параметры, чтобы включить шифрование активов, и я указал параметры, которые пробовал, но они не сработали должным образом.   -  person Anil Gorthy    schedule 27.04.2017
comment
Если вы не используете программу на своем компьютере для шифрования файла в активах файла apk, то что вы делаете? Что случилось? Когда? Где? Совершенно непонятно.   -  person greenapps    schedule 27.04.2017


Ответы (1)


Вам нужно специально загрузить файлы ресурсов таким образом, чтобы Dexguard зашифровал ваши файлы мезонов:

AssetManager assetManager = getAssets();  
InputStream is = assetManager.open("json/file1.json");
InputStream is2 = assetManager.open("json/file2.json");
.......(individually load each file)

Другими словами, имена файлов должны специально появляться в каждом методе open как постоянная строка.

В противном случае Dexguard не зашифрует файлы или зашифрованные файлы не будут правильно расшифрованы.

Надеюсь, это поможет.
Дэвид

person us_david    schedule 05.07.2018