![]() |
Всех приветствую.
На днях пришла идея пореверсить один известный CRMP-мобайл проект, чем я собственно и занялся. Но, какую бы я функцию не пробовал хукать, итог один - краш. Сидеть рандомно искать ошибку я не хотел, поэтому написал простенький краш хандлер: C++: Код:
voidОднако, к большому сожалению, код не завелся, хотя на предыдущих приложениях, что я реверсил, все было четко. Тогда в голову пришла идея - что, если хандлер резервируется процессом игры и из-за этого мой хандлер не получает информации? Чтобы проверить догадку, понадобилось секунд 10, и вот оно: C++: Код:
unsignedТогда я подумал, что если при старте попробовать загрузить туда свою структуру? В принципе, может сработать, так что почему бы и нет? C++: Код:
voidОднако, чуда не произошло, на этот раз я получил краш при попытке вызова функции INT123_catchsignal. Подскажите, пожалуйста, в чем моя ошибка? |
Цитата:
|
Цитата:
arm - 32-ух битный набор инструкций, предоставляет полный набор возможностей ARM. Однако, я не совсем понимаю, чем оно мне поможет. Не просвятишь?) Дополнение: Решил поэксперементировать и хукнуть функцию INT123_catchsignal. C++: Код:
intРезультат меня удивил: все заработало. Просвятите, пожалуйста, почему) По сути, код в хуке и изначальный код идентичны, но первый работает, а второй - нет. А еще, краш хандлер так и не заработал :( может, есть альтернативные варианты по его установке? |
Цитата:
а на счёт твоего крашхандлера - он обрабатывает только SIGSEGV, хотя в данном случае скорее всего будет SIGILL (т.е. недействительня инструкция), и поэтому ты ничего не видишь ну и ещё можешь не скрывать, что это блек кака, это и так очевидно |
Цитата:
а на счет "не скрывать" - я не скрываю) просто не видел смысла упоминать можешь, пожалуйста, сказать, как определить, как определить, где thumb, а где - нет? ну, или литературу на эту тему скинуть, было бы интересно почитать |
Цитата:
|
Цитата:
|
| Время: 15:27 |