eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: magarikaci, rmn, stran34, Ferdik, redlord (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Защита от распаковки UPX?
Посл.ответ Сообщение

Ранг: 2.8 (гость)
Статус: Участник

Создано: 21 декабря 2014 22:48 New!
Цитата · Личное сообщение · #1

Есть программка (выкладывать на всеобщий не могу) упакованная UPXом. Распаковал им же ну и как-бы не запускается - тупо идет на ExitProcess. Запускал в Ольге упакованную и руками распаковывал - результат тот же. Простой обход ExitProcess не помог... истина где-то глубже. Приаттачивается прекрасно ну и то что я задумал собственно сделал, но цель всетаки научиться а не тупо паламать... так что прошу подсказки. Еще пробовал поменять хексом байтик в заголовке упакованной - тоже выходит... вот думаю где-то есть проверка на целостность... но тут я что-то в тупик зашел.
Кто готов подсказать новичку скину прогу в личку (800кило)

Но и другое меня смутило... взял прогу левую и запаковал ее UPXом. проверил работает. Потом распаковал ее опять же UPXом - а она не работает. Взял другую - тоже самое. Я что то не догоню... распаковщик то вообще работает?

За тему прошу понять и простить

Ранг: 231.8 (наставник)
Статус: Участник

Создано: 21 декабря 2014 22:57 New!
Цитата · Личное сообщение · #2

Экстрасенсов здесь нет. Или выкладываешь или --> тебе сюда <--

Ранг: 2.8 (гость)
Статус: Участник

Создано: 21 декабря 2014 23:09 New!
Цитата · Личное сообщение · #3

Ссылка для скачивания файла: http://rusfolder.com/42588557

Ранг: 7.9 (гость)
Статус: Участник

Создано: 22 декабря 2014 00:04 New!
Цитата · Личное сообщение · #4

Code:
  1. 004D2E70    E8 F7CAFFFF     CALL 1.004CF96C

После возврата из 004CF96C должна вернуться единица.

| Сообщение посчитали полезным: Reversize



Ранг: 222.2 (наставник)
Статус: Участник
radical

Создано: 22 декабря 2014 04:15 New!
Цитата · Личное сообщение · #5

Чтоб человеку понятнее:
Бряк на CreateFileA (файл читать будет себя) , смотришь вызов
...
004CF9AD . E8 5EDEFFFF CALL <JMP.&IMAGEHLP.MapFileAndCheckSumA>
...

Название говорит само за себя.

Добавлено спустя 12 минут
а, ну и
004CF5F9 . 8B45 F4 MOV EAX, DWORD PTR [EBP-0xC]
004CF5FC . 8B55 F0 MOV EDX, DWORD PTR [EBP-0x10]
004CF5FF . E8 405BF3FF CALL <System.@LStrCmp>


знаменитое StrCmp в явном виде

| Сообщение посчитали полезным: Reversize


Ранг: 376.0 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 22 декабря 2014 07:34 New!
Цитата · Личное сообщение · #6

я думал там вообще StarForce - он ведь тоже упх пакуется

Ранг: 2.8 (гость)
Статус: Участник

Создано: 22 декабря 2014 08:45 New!
Цитата · Личное сообщение · #7

Спасибо за помощь random и DimitarSerg! Уже есть над чем покурить.
Со System.@LStrCmp я разобрался еще на стадии аттача... а вот как найти чексум... не сталкивался никогда почти.
В любом случае выводы я походу правильно сделал в первом посте что идет проверка на целостность.
Осталось только догнать как обойти Но это я думаю справлюсь

Добавлено спустя 1 час 39 минут
Вроде обошел правкой двух джампов 004D2E77 и 004D2E84 - но хоть убейте не пойму что я сделал. Чисто на шару... уже некое чутье появляется у меня на всякие такие джампы...
Помогите пожалуйста с MapFileAndCheckSumA. Я не могу понять как она работает применительно к этой программе. MSDN вроде открыл но приложить к тому что вижу в отладчике не могу...


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 22 декабря 2014 11:44 New!
Цитата · Личное сообщение · #8

Reversize а что непонятно? вот тут можно почитать http://www.delphikingdom.com/asp/viewitem.asp?catalogid=763

функция мапит PE файл и считает для него CRC потом в софте сравнивает с оригинальной.

Ранг: 92.3 (постоянный)
Статус: Участник

Создано: 22 декабря 2014 11:59 · Поправил: vovanre New!
Цитата · Личное сообщение · #9

Reversize пишет:
Вроде обошел правкой двух джампов 004D2E77 и 004D2E84

Предлагаю подумать. Смотри:

Code:
  1. 004D2E70 CALL 004CF96C // Возвращает в регистра AL либо 0, либо 1 (логично -_-)
  2. 004D2E75 TEST AL,AL    // to google...
  3. 004D2E77 JZ 004D37B2 // Если AL = 0 то фигачим далеко и программа ничего не делая выходит


Усиленно думаем и наверное нужно что бы CALL 004CF96C ВСЕГДА возвращал AL == 1.
Окей, дальше нужно пропатчить функцию 004CF96C. Должно быть примерно так -> кладём в AL единицу и выходим из функции.
Поместить что либо в регистр можно через MOV .
Вернуться из функции можно через RET. А теперь подумай как это записать на асме и перенести в олю.

Ранг: 2.8 (гость)
Статус: Участник

Создано: 22 декабря 2014 12:47 New!
Цитата · Личное сообщение · #10

vovanre, как излечить я понял и уже удачно излечил. Вариантов лечения навалом.
Я не могу понять как в отладчике увидеть как MapFileAndCheckSumA передаются параметры, куда она их вернет, где идет сверка с контрольной суммой которая записана в программе...
Вижу только что MapFileAndCheckSumA возвращает 0 - типа все ок. Но где сама црц?

Ранг: 435.2 (мудрец)
Статус: Участник

Создано: 22 декабря 2014 12:50 New!
Цитата · Личное сообщение · #11

http://msdn.microsoft.com/en-us/library/windows/desktop/ms680355(v=vs.85).aspx
 eXeL@B —› Вопросы новичков —› Защита от распаковки UPX?
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS