Обнаружение взлома кода в Apk - PullRequest
0 голосов
/ 02 мая 2018

Я особенно новичок в разработке приложений и недавно узнал обо всем процессе подписания apk, почему он является обязательным и важно предотвращать несанкционированное и фальсификацию приложения. Одна из известных проверок Signature относится к использованию класса PackageManager для проверки подписи. Есть ли какой-либо другой метод, который проверяет каталог META-INF в самом apk на предмет взлома или других оскорбительных действий, чтобы убедиться, что приложение не подделано и не повреждено своей оригинальной подписью?

1 Ответ

0 голосов
/ 04 декабря 2018

Этот код Получите контрольную сумму CRC файла Classes.dex и сравните ее с предоставленной.

private void crcTest() throws IOException {
 boolean modified = false;
 // required dex crc value stored as a text string.
 // it could be any invisible layout element
 long dexCrc = Long.parseLong(Main.MyContext.getString(R.string.dex_crc));

 ZipFile zf = new ZipFile(Main.MyContext.getPackageCodePath());
 ZipEntry ze = zf.getEntry("classes.dex");

 if ( ze.getCrc() != dexCrc ) {
  // dex has been modified
  modified = true;
 }
 else {
  // dex not tampered with
  modified = false;
 }
}
...