По поводу защиты прилаг. В стародосовские времена мы с другом играли в игру: защити/взломай. Каждый писал прогу с защитой. Каждый пытался взломать:) Помню я тогда заюзал баг в 486 процессоре (у моего друга был такой). Суть в том что если одной инструкцией заменить следующую, то выполнялась все равно старая (тогда только появился кеш команд). В итоге в IDA(популярный дизассемблер/дебугер) этот баг не срабатывал. Вообщем запутать отладку можно было капитально. Сейчас вроде как в секции с кодом писать нельзя...
Как вариант - считаем хеш сумму и записываем результат в секцию с кодом. В итоге получаем команду которая прыгает в нормальный код. Если хеш посчитался криво - прыжок будет в хз куда.
Как вариант - считаем хеш сумму и записываем результат в секцию с кодом. В итоге получаем команду которая прыгает в нормальный код. Если хеш посчитался криво - прыжок будет в хз куда.
А если я этот "если" изменю? Или сложно найти будет?)
Основная проблема разработчиков Android приложений в том, что они либо совсем не знают, либо очень плохо знают C/С++. Без натива нормальную защиту можно сделать, но для этого нужно иметь хороший скилл.
А если я этот "если" изменю? Или сложно найти будет?)
Так условия не будет. Суть запутывания - адрес правильной инструкции зависит от хеша который мы посчитали по некоторым данным (это может быть вся апк или вся нативная либка). Если у взломщика будет рабочее приложение и рабочий дебугер - разобраться можно будет что и как...
Так условия не будет. Суть запутывания - адрес правильной инструкции зависит от хеша который мы посчитали по некоторым данным (это может быть вся апк или вся нативная либка). Если у взломщика будет рабочее приложение и рабочий дебугер - разобраться можно будет что и как...