Сейчас на форуме: Rio, igorcauret (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Защита от распаковки UPX? |
Посл.ответ | Сообщение |
|
Создано: 21 декабря 2014 22:48 · Личное сообщение · #1 Есть программка (выкладывать на всеобщий не могу) упакованная UPXом. Распаковал им же ну и как-бы не запускается - тупо идет на ExitProcess. Запускал в Ольге упакованную и руками распаковывал - результат тот же. Простой обход ExitProcess не помог... истина где-то глубже. Приаттачивается прекрасно ну и то что я задумал собственно сделал, но цель всетаки научиться а не тупо паламать... так что прошу подсказки. Еще пробовал поменять хексом байтик в заголовке упакованной - тоже выходит... вот думаю где-то есть проверка на целостность... но тут я что-то в тупик зашел. Кто готов подсказать новичку скину прогу в личку (800кило) Но и другое меня смутило... взял прогу левую и запаковал ее UPXом. проверил работает. Потом распаковал ее опять же UPXом - а она не работает. Взял другую - тоже самое. Я что то не догоню... распаковщик то вообще работает? За тему прошу понять и простить ![]() ![]() |
|
Создано: 21 декабря 2014 22:57 · Личное сообщение · #2 |
|
Создано: 21 декабря 2014 23:09 · Личное сообщение · #3 |
|
Создано: 22 декабря 2014 00:04 · Личное сообщение · #4 Code:
После возврата из 004CF96C должна вернуться единица. ![]() |
|
Создано: 22 декабря 2014 04:15 · Личное сообщение · #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 в явном виде ----- ds ![]() |
|
Создано: 22 декабря 2014 07:34 · Личное сообщение · #6 |
|
Создано: 22 декабря 2014 08:45 · Личное сообщение · #7 Спасибо за помощь random и DimitarSerg! Уже есть над чем покурить. Со System.@LStrCmp я разобрался еще на стадии аттача... а вот как найти чексум... не сталкивался никогда почти. В любом случае выводы я походу правильно сделал в первом посте что идет проверка на целостность. Осталось только догнать как обойти ![]() Добавлено спустя 1 час 39 минут Вроде обошел правкой двух джампов 004D2E77 и 004D2E84 - но хоть убейте не пойму что я сделал. Чисто на шару... уже некое чутье появляется у меня на всякие такие джампы... Помогите пожалуйста с MapFileAndCheckSumA. Я не могу понять как она работает применительно к этой программе. MSDN вроде открыл но приложить к тому что вижу в отладчике не могу... ![]() |
|
Создано: 22 декабря 2014 11:44 · Личное сообщение · #8 |
|
Создано: 22 декабря 2014 11:59 · Поправил: vovanre · Личное сообщение · #9 Reversize пишет: Вроде обошел правкой двух джампов 004D2E77 и 004D2E84 Предлагаю подумать. Смотри: Code:
Усиленно думаем и наверное нужно что бы CALL 004CF96C ВСЕГДА возвращал AL == 1. Окей, дальше нужно пропатчить функцию 004CF96C. Должно быть примерно так -> кладём в AL единицу и выходим из функции. Поместить что либо в регистр можно через MOV . Вернуться из функции можно через RET. А теперь подумай как это записать на асме и перенести в олю. ![]() |
|
Создано: 22 декабря 2014 12:47 · Личное сообщение · #10 vovanre, как излечить я понял и уже удачно излечил. Вариантов лечения навалом. Я не могу понять как в отладчике увидеть как MapFileAndCheckSumA передаются параметры, куда она их вернет, где идет сверка с контрольной суммой которая записана в программе... Вижу только что MapFileAndCheckSumA возвращает 0 - типа все ок. Но где сама црц? ![]() |
|
Создано: 22 декабря 2014 12:50 · Личное сообщение · #11 |
![]() |
eXeL@B —› Вопросы новичков —› Защита от распаковки UPX? |
Эта тема закрыта. Ответы больше не принимаются. |