Сейчас на форуме: ManHunter, Magister Yoda, rtsgreg1989 (+10 невидимых)

 eXeL@B —› Основной форум —› нужен совет по pcguard
Посл.ответ Сообщение

Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 мая 2005 20:05
· Личное сообщение · #1

Доброе время суток.
Начал исследовать PCGuard 5.0D. Сама дема распаковалась PEID, а вот то, что ей было обжато - нет.
Посмотрел код, нашел и удалил блоки мусора, определил алгоритм и момент выхода из первого шага расшифровки загрузчика. Код для расшифровки переписал, а подготовку оставил "родную" из-за некоторого количества констант, отличающихся в разных файлах.
получилось что-то вроде такого (образ жертвы загружен, растянут как надо, настроен, импорт выполнен):
- нашел адрес проверки условия цикла (dec ecx,jmp$+1,Junk,jnz....,jmp...)
- пхнул туда Jmp на свой код - чтобы получить неиспохабленные регистры (после первого шага цикла, но это столь важно)
- взял EP жертвы и выполнил туда Jmp.
На свой код я вернулся, регистры получил, расшифровку выполнил. А вот дальше, когда надо бы жертву обратно на диск кинуть, начинается самое интересное - вызов CreateFileA отваливается с int 3.
В pcguard-овой "шкурке", правда, вход в цикл расшифровки проводится при помощи SEH, причем полезный код лежит в обработчике исключения....
Не понимаю, как это может повлиять, если восстановление предыдущего обработчика проходит нормально.
Может, видел кто-нибудь что-то подобное, или знает как обойти.... Хелп, плиз. А то идея-то в том, чтоб полностью пройти пакер и шкуру за шкурой с него содрать.



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 24 мая 2005 11:40
· Личное сообщение · #2

[b]entusiast[/b
Что то все как-то сложно, он по моему проще намного снимается. Прыгает в свою dll, проверяет регистрацию и если все ок то передает управление на оеп. Если рег. кода нет то расшифровать не выйдет, если есть, то можно ставить Dword Hardware on Access на ESP-4 в оле. После подтверждения рег.кода брякнемся на оеп.

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 24 мая 2005 20:45 · Поправил: entusiast
· Личное сообщение · #3

А у меня интерес пока спортивный (см ник :s5 . Может получится инструмент какой написать, чтоб хотя бы в полуавтоматике работать. А насколько я понял, у многих пакеров сейчас похожие методы - замусоривания лоадера и расшифровки его по исполняемому коду расшифровщика - может и еще где пригодится...
Ключа, конечно, нет Хотя, для своего примера сгенерить могу и могу посмотреть как оно там лопатится - до этого еще дойти надо. Обошел я вчерашнюю проблему- есть куда воткнуться...
А каким образом он тогда ухитряется вообще что-то расшифровывать? Генерит ключ на основе оригинала чтоли? Если так, то тогда на софтину один ключ всего. А если участвует MID, то под каждую машинку перешифровывать дОлжно.... непохоже.
Кстати, что есть Site ID?
И еще вопрос, на самом деле, ко всем. Ухитрился не найти примера как дебагеры ставят хардв. бряк. Вроде ж как нельзя из ring3 обращаться к DR*....



Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 мая 2005 21:41
· Личное сообщение · #4

entusiast
entusiast пишет:
Вроде ж как нельзя из ring3 обращаться к DR*....

SetThreadContext, seh frames. Подробнее - см. упаковщики на васме.




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 24 мая 2005 21:54
· Личное сообщение · #5

мде, странный способ распаковки что-то из разряда изобретения велосипеда ;)


 eXeL@B —› Основной форум —› нужен совет по pcguard
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати