Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2020 March 15

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
По поводу защиты прилаг. В стародосовские времена мы с другом играли в игру: защити/взломай. Каждый писал прогу с защитой. Каждый пытался взломать:) Помню я тогда заюзал баг в 486 процессоре (у моего друга был такой). Суть в том что если одной инструкцией заменить следующую, то выполнялась все равно старая (тогда только появился кеш команд). В итоге в IDA(популярный дизассемблер/дебугер) этот баг не срабатывал.  Вообщем запутать отладку можно было капитально. Сейчас вроде как в секции с кодом писать нельзя...
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
Можно, если mprotect вызвать;)
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
oles
Можно, если mprotect вызвать;)
Если можно - то тогда возможности по запутываю возрастают.
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
Как вариант - считаем хеш сумму и записываем результат в секцию с кодом. В итоге получаем команду которая прыгает в нормальный код. Если хеш посчитался криво - прыжок будет в хз куда.
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
Хакеры
источник
2020 March 16

M

Max in Android NDK (C++) — русскоговорящее сообщество
Arkadi Tolkun
Как вариант - считаем хеш сумму и записываем результат в секцию с кодом. В итоге получаем команду которая прыгает в нормальный код. Если хеш посчитался криво - прыжок будет в хз куда.
А если я этот "если" изменю? Или сложно найти будет?)
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Основная проблема разработчиков Android приложений в том, что они либо совсем не знают, либо очень плохо знают C/С++. Без натива нормальную защиту можно сделать, но для этого нужно иметь хороший скилл.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Хотя я не знаю, какой уровень знаний у среднего взломщика. Может быть, они и натив неплохо ломают.
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
Max
А если я этот "если" изменю? Или сложно найти будет?)
Так условия не будет. Суть запутывания - адрес правильной инструкции зависит от хеша который мы посчитали по некоторым данным (это может быть вся апк или вся нативная либка).  Если у взломщика будет рабочее приложение и рабочий дебугер - разобраться можно будет что и как...
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Arkadi Tolkun
Так условия не будет. Суть запутывания - адрес правильной инструкции зависит от хеша который мы посчитали по некоторым данным (это может быть вся апк или вся нативная либка).  Если у взломщика будет рабочее приложение и рабочий дебугер - разобраться можно будет что и как...
А, ну я понял. С кем-то обсуждал это.
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Только вот в apk 4 набора либ для разных архитектур.
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
примитивная защита от изменения кода.
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
что сработает в одном случае - сработает в 4-х
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Ну адреса-то разные будут
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
и что?  разные либы будут :)
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
я когда баловался с такой защитой - зашивал туда статичную строчку. котору после искал и модифицировал уже после сборки чтобы получился правильный хеш
источник

M

Max in Android NDK (C++) — русскоговорящее сообщество
Ну тут пример нужен на асме. Да и обфускацию проще использовать. Такие либы очень тяжело разбирать.
источник

M

Morgot in Android NDK (C++) — русскоговорящее сообщество
Нужно ли для кодинга на С++ под андроид сложная математика?
источник

C

Crush_my_love in Android NDK (C++) — русскоговорящее сообщество
оО
источник

o

oles in Android NDK (C++) — русскоговорящее сообщество
Смотря что кодить
источник