![]() |
eXeL@B —› Вопросы новичков —› Подскажите по распаковке |
Посл.ответ | Сообщение |
|
Создано: 04 февраля 2013 13:56 · Личное сообщение · #1 Сдампил программу в Олли, с помощью Импрека восстановил ресурсы, они были без "инвалида". Программа запускается, при нажатии кнопки открывается вспомогательное окно. Но при нажатии в этом окне кнопки тест, с подключенным диагностическим кабелем, вылетает ошибка : Code:
Подскажите пожалуйста, в каком направлении вести поиск ошибки? ![]() ![]() |
|
Создано: 04 февраля 2013 13:58 · Личное сообщение · #2 |
|
Создано: 04 февраля 2013 14:29 · Личное сообщение · #3 |
|
Создано: 04 февраля 2013 14:54 · Личное сообщение · #4 DimitarSerg Даже не знаю, помогло или нет, но теперь выскакивает другая ошибка. Code:
mysterio Выложить-то не проблема, но как проверять будете? Эта ошибка появляется только при подключенном кабеле. Выложу чуть позже. ![]() ![]() |
|
Создано: 05 февраля 2013 09:52 · Личное сообщение · #5 |
|
Создано: 05 февраля 2013 10:34 · Личное сообщение · #6 |
|
Создано: 05 февраля 2013 11:49 · Личное сообщение · #7 |
|
Создано: 05 февраля 2013 13:17 · Поправил: Kuzya69 · Личное сообщение · #8 Парни, спасибо. Разобрался сам. Не без вашей помощи. Стал копать в зоне этого патча, что во втором сообщении указали. И заметил, что та фукция вызывается только в распакованной программе, а в запакованной нет. Вот и нашел этот злосчастный условный джамп. Это была защита от распаковки видимо. Но теперь запускается и работает, но только на том ноуте на котором распаковываешь. На "чужом" ноуте завешивает намертво систему. Что это может значить, куда копать? ![]() |
|
Создано: 05 февраля 2013 14:29 · Личное сообщение · #9 |
|
Создано: 05 февраля 2013 15:11 · Поправил: Kuzya69 · Личное сообщение · #10 Johnny Mnemonic Там внутри 4 реализации ВМ и 75 вызовов. 46 вызовов я уже декомпильнул из известных. Не могу еще с 5-ю вызовами справится, но это вопрос времени и знаний. А вот остальные вызовы вообще не учавствуют в программе, вернее они может и учавствуют, но на другом кабеле. Я не думаю, что тут ВМ виновата, ведь прогу распаковывают, для перевода, и без снятия ВМ вообще. Может какие косяки с ресурсами, хотя Импрек вообще все без проблем сделал. Ах да, забыл. http://zalil.ru/34232961 Там 3.2 метра, если интересно поглядите. Внутри и оригинальный и сдампленный и нужный для работы программы бин-файл. ![]() |
|
Создано: 05 февраля 2013 16:24 · Личное сообщение · #11 |
|
Создано: 05 февраля 2013 17:10 · Личное сообщение · #12 Archer Тоесть с ресурсами не заморачиваться? Просто уж как-то легко они восстановились, на младших версиях как минимум одна, но была инвалидная функция. А вообще примерный метод поиска защиты от анпака не подскажите? Кроме как трейсить километровые коды. Может на какие апи-функции обратить особое внимание? ![]() |
|
Создано: 05 февраля 2013 17:18 · Личное сообщение · #13 Kuzya69 Ресурсы - это иконки, курсоры, картинки и т.д. Импорт (импортируемые функции) - это функции, код которых расположен за пределами исполняемого файла и импортируется ехе-шником. Т.е. для вызова передаётся управление на адреса, лежащие за пределами ехе. А то уже не смешно. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 05 февраля 2013 17:30 · Личное сообщение · #14 |
|
Создано: 06 февраля 2013 10:56 · Личное сообщение · #15 |
|
Создано: 06 февраля 2013 12:24 · Личное сообщение · #16 |
|
Создано: 06 февраля 2013 12:39 · Личное сообщение · #17 |
|
Создано: 06 февраля 2013 12:51 · Личное сообщение · #18 |
|
Создано: 06 февраля 2013 14:53 · Поправил: Kuzya69 · Личное сообщение · #19 |
|
Создано: 06 февраля 2013 16:45 · Личное сообщение · #20 |
|
Создано: 06 февраля 2013 18:26 · Поправил: Kuzya69 · Личное сообщение · #21 daFix Я так понимаю, что все отвечают на первый вопрос. Но он уже решен. Наверно надо новую тему создавать. Или атрибуты секции тоже могут влиять на переносимость программы с одного компа на другой? Все, разобрался со второй проблемой. Спасибо, добрые люди помогли. Оказалось, действительно косяки с импортом. А у меня, в настройках импрека не стояла галка "создать новую секцию". Вот импрек и пытался восстановить старые таблицы. А они по размеру даже были меньше новой секции. ![]() |
|
Создано: 16 февраля 2013 14:44 · Личное сообщение · #22 R6002 floating point support not loaded - после распаковки // для гугла Тема довольно актуальная, столкнулся с этой ошибкой после снятия армы, решил провести небольшой реверс и вот что вышло. Метод указанный Manhunter не совсем корректен и вот почему: - мы патчим уже результат проверки, но никак не причину - на данный момент, я знаю софт, в котором патч fptrap > RET убивает поддержку вещественных чисел. - патчить нужно или атрибуты секций (что не всегда реально, если это секция data) либо искать причину. загружаем софт, ставим мемори бряк на заголовок файла, прерываемся трейсим и ставим, повторяем до тех пор пока не окажемся здесь: Code:
поднимаемся к месту вызова по RET: Code:
после CALL dump_SCY.005FDA30 в EAX указатель на секцию .rdata (в моем случае) дальше берём аттрибуты секции и проверяем: в битовом представлении C0000040 = 11000000000000000000000001000000 в битовом представлении 40000040 = 01000000000000000000000001000000 собственно понятно, что делать? процедура должно возвращать в EAX 1, патч: Code:
вот так правильнее и красивее ![]() ----- [nice coder and reverser] ![]() |
|
Создано: 16 февраля 2013 15:40 · Личное сообщение · #23 ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 16 февраля 2013 16:15 · Личное сообщение · #24 |
|
Создано: 16 февраля 2013 16:40 · Личное сообщение · #25 |
|
Создано: 16 февраля 2013 16:45 · Личное сообщение · #26 |
|
Создано: 16 февраля 2013 17:00 · Личное сообщение · #27 |
|
Создано: 16 февраля 2013 17:31 · Поправил: alexpol · Личное сообщение · #28 |
|
Создано: 16 февраля 2013 19:30 · Личное сообщение · #29 ClockMan Именно так, как по ссылке, эта программа и защищалась. Переписывала адреса коссвенных обращений к другим функциям, если атрибуты верны. Если-же атрибуты неверны, то адреса все вели на выдачу этого сообщения. И патчить пришлось именно результат проверки секций. Но все равно совет, патчить "fptrap > RET", помог попасть в эту проверку атрибутов секции. Потому-как бряк на этом патче, в распакованной проге, срабатывал. А в оригинальной не срабатывал. Дальше было дело за трассером, отследить место развилки. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Подскажите по распаковке |