Сейчас на форуме: zds (+7 невидимых) |
![]() |
eXeL@B —› Протекторы —› Проблема с инлайном Armadillo |
Посл.ответ | Сообщение |
|
Создано: 17 сентября 2010 01:15 · Личное сообщение · #1 Всем здравствуйте. Решил поломать одну прогу, на которой висит арма со всеми опциями защиты (наномиты мне не восстановить). Написал код, который обходит барьеры и патчит код (приметные оффсеты нашел при отладке дампа с криво пофиксеными нано). И все бы хорошо, но, как всегда есть НО. Прога запускается, чувствует себя зареганой, но данная радость длится пару секунд и прога закрывается. Я подозреваю, что срабатывает crc проверка. Еще одна проблема в том, что код этой проверки арма динамически криптует/декриптует. Вопрос: как подобраться к этой функции или хотя бы определить ее адрес? ![]() ![]() |
|
Создано: 17 сентября 2010 01:46 · Личное сообщение · #2 |
|
Создано: 17 сентября 2010 09:02 · Поправил: [X-Ray] · Личное сообщение · #3 |
|
Создано: 17 сентября 2010 10:14 · Поправил: FrenFolio · Личное сообщение · #4 [X-Ray] пишет: а где фиксить контрольную сумму? И как узнать, какой она должна быть? Есть такая утилита от крякера What под названием Armadillo CRC Patcher. На tuts4you ее выкладывали, она вместе с сорцами на асм. Так вот она позволяет найти и пропатчить CRC армы. Ну а после фикса проги уже, собственно, вписываешь свой патчащий код. Приаттачил, на всякий пожарный. ![]() ![]() ----- Программист SkyNet ![]() |
|
Создано: 17 сентября 2010 12:15 · Поправил: Iona · Личное сообщение · #5 |
|
Создано: 17 сентября 2010 12:51 · Личное сообщение · #6 2 lona: Из меня неважный математик, и разобрать систему проверки ключей армы у меня вряд ли получится, а использовать чужой труд (тулзы для кейгена армы) для создания своих релизов я считаю ниже своего достоинства. Копимем мне не мешает, мешает только тот самый memory patching. Возможно, мой метод не слишком красивый, но вот как он работает: хучится SetFilePointer, хук смотрит, какую область файла читают, если увидит, что пытаются считать патченную область, хучит ReadFile и правит буфер (обход црц файла). Далее создается поток, который проверяет нужные мне области кода на предмет расшифровки и в положительном случае выполняет патч и закрывает трэд. З.Ы. АсФальт (учи русский язык) 2 FrenFolio: спасибо за тулзу, буду смотреть ![]() |
|
Создано: 17 сентября 2010 13:02 · Личное сообщение · #7 |
|
Создано: 17 сентября 2010 13:35 · Личное сообщение · #8 |
|
Создано: 17 сентября 2010 15:46 · Поправил: Iona · Личное сообщение · #9 |
|
Создано: 21 сентября 2010 21:12 · Личное сообщение · #10 На днях было некогда, но сейчас решил снова поковырять. Вопрос такой: я ошибочно полагал, что арма выполняет crc памяти раз в N секунд, но поймать процедуру проверки, зациклив основной тред, не получилось (проверка не выполняется, либо арма контролирует прогу на наличие EB FE по адресу eip). Подскажите, пожалуйста, как же в таком случае работает эта штуковина? ![]() |
|
Создано: 21 сентября 2010 22:26 · Поправил: BoOMBoX · Личное сообщение · #11 |
|
Создано: 22 сентября 2010 06:45 · Поправил: Iona · Личное сообщение · #12 @BoOMBoX Если Secured Sections не распаковались то там стоят нопы, изза этого падать не будет. @[X-Ray] Цели и задачи инлайна: 1 распаковываем прогу, если все работает нормаль то и инлайнить там нечего. 2 Находим все места, где надо пропатчить, чтобы прога нормально заработала. 3 На базе карты патча, пишем инлайн. Как я понимаю, прогу ты не распаковал нормально, места где надо патчить не нашел. Отсюда вопрос, что ты там инлайнишь? Даже нормально распакованная прога после запуска падает , нашел три проверки пока прога запустилась, начиная от проверки на отладчик и заканчивая неким подобием crc. Так что, пока эти места не найдешь, никакой инлай не заработает. ![]() |
|
Создано: 22 сентября 2010 17:50 · Поправил: BoOMBoX · Личное сообщение · #13 |
|
Создано: 22 сентября 2010 23:31 · Личное сообщение · #14 |
|
Создано: 23 сентября 2010 06:42 · Поправил: Vovan666 · Личное сообщение · #15 |
![]() |
eXeL@B —› Протекторы —› Проблема с инлайном Armadillo |