Пакер для PE-модуля драйвера

Тема в разделе "WASM.NT.KERNEL", создана пользователем 0x6b65, 12 ноя 2009.

Статус темы:
Закрыта.
  1. HQ

    HQ New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2009
    Сообщения:
    10
    Нет не поняли, расскажите.
     
  2. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    А что именно вы не поняли? И почему ты отвечаешь за всех?
     
  3. HQ

    HQ New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2009
    Сообщения:
    10
    Ты кретин или прикалываешься?
     
  4. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Нет.
     
  5. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Объясню свою позицию.

    Некто из постояльцев форума, кого очевидно интересует мой ответ, специально регистрирует новый ник. Зачем? Потому что он где-то уже сделал по-другому, либо ему надо это сделать. Таким образом, дав полный развёрнутый ответ, я выполню его работу за бесплатно :) Как несложно понять, мне совершенно неинтересно кормить грубиянов, которые не хотят подумать хоть чуть-чуть.

    Обзывания и другие манипуляции работать не будут.

    Я готов ответить на конкретные вопросы, которые могут возникнуть из моего ответа #18.
     
  6. reader323

    reader323 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    134
    Жуе, это ты про меня? :_(
    Да мне то погуй на твой зироди метод да и на пакеры ваши эти кулхацкерские :)
    И нигуя не правда ник я только ради тебя не регал! :)
     
  7. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Вообще то, я подразумевал HQ. Но ты верно заметил, это подходит и под тебя. Да, я знаю, что ник reader323 был создан по другому случаю. Здесь, похоже, стало правилом хорошего тона - зарегать несколько ников и общаться сам с собой :)
     
  8. HQ

    HQ New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2009
    Сообщения:
    10
    Ну так что, по теме говорить будем? Ждём от J0E умной методики фикса SEH'ов.
     
  9. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Я по теме ответил в #25, так что очередь за тобой.
     
  10. HQ

    HQ New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2009
    Сообщения:
    10
    Назовите же цену!
     
  11. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Когда слышишь "спасибо, мне ничего не надо", понимай это как "ты не готов столько заплатить".

    Тебе понятно, откуда и как берется адрес обработчика, который нужно "фиксить"?
     
  12. reader323

    reader323 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2009
    Сообщения:
    134
    Жуе, ты вероятно сильно пересмотрел доктора хауса вчера в компании остальных кулхацкеров :)

    HQ
    см. генерируемый линкером переходник

    __except_handler3 proc near
    jmp ds:__imp__except_handler3
    __except_handler3 endp

    в сех фрейме try/except выглядит так (берем пример откуда-нибудь, ну из винды например):

    push 0FFFFFFFFh
    push offset unk_4030AD
    push offset __except_handler3
    mov eax, large fs:0
    push eax
    mov large fs:0, esp

    далее по курсу, идет исключеие, система получает указатель на джамп, проверяет вхождение его в загруженный драйвер по списку драйверов, если нихя не найдено вы ловите синий синий экран. Все что нужно это сделать так, чтобы при построении сеха в стек попал сам _except_handler3. И все, юзайте сехи в своих *уевых руткитах :)
     
  13. HQ

    HQ New Member

    Публикаций:
    0
    Регистрация:
    6 дек 2009
    Сообщения:
    10
    reader323, ты чё таблеток недоел? Я это 20 постов назад написал.
     
  14. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    reader323 - еще один пример когда гениальность стала тяжким бременем
     
  15. luckysundog

    luckysundog New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    106
    решением проблемы с SEH может послужить осознание того, что распаковка в пул в принципе бессмысленна.
     
  16. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Хм. В твоем примере _except_handler3 находится в модуле, и представляет собой переходник на экспорт кернела. Уверен, ты подразумевал адрес _except_handler3 именно из кернела.

    Если перевести эти слова на асм, то нужно поменять команду

    push offset __except_handler3

    на

    push __imp__except_handler3

    И все! Зачем релоки не пойму :)
     
  17. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Вы едите их из одной пачки, и ты переел его дозу? :) Я внимательно перечитал предыдущую страницу, 19 постов назад HQ зарегистрировался и начал клянчить ответ. На всякий случай: кто такой доктор хаус я не знаю и гуглить не собираюсь, догадываюсь, что он ваши таблетки и прописывает.
     
  18. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Рябят, куда вы делись? На очереди урок программирования №0. :)

    Тема урока: "учимся думать, или дурная голова рукам покоя не дает"

    Начнем с работы над ошибками.

    2 раза были подсказки, повторюсь: "откуда и как берется адрес обработчика?"

    На что было отвечено: "(берем пример откуда-нибудь, ну из винды например)".

    Это не правильный ответ. Во-первых, бессистемный, а во-вторых, предполагает, что винда - источник всего сущего. На самом деле это обычная программа, собранная компилятором из исходников.

    Правильный ответ: адрес обработчика сохраняется в SEH-списке машинным кодом, который произвел компилятор (кстати отсюда следует, что например у fasm проблемы не совсем).

    Теперь уделим должное внимание простым фактам.

    Да, когда мы пишем в исходнике __try, компилятор генерирует машинный код, с которым есть проблема. Очевидно, что бы решить проблему, придется изменить этот код. Как это сделать? Опять же, разобраться, что именно это за код. Поизучать SEH, почитать статьи, где сказано, что это функция называется _SEH_prolog.

    Итак, что бы изменить адрес обработчика, необходимо изменить _SEH_prolog. Изменения я привел раньше в #36.
    Как прилинковать исправленный SEH_prolog - это тема для домашнего задания, подготовка к уроку "учимся пользоваться инструментами".
     
  19. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    А теперь объясню, почему назвал способ с релоками дебильным.

    Исходное сообщение "Можно пройти по релокам и изменить адрес обработчика" фактически не несет никакой информации, становится лишь понятно, что можно каким-то образом использовать релоки.
    Мое сообщение "ролоки не нужны" несет информации не меньше, поэтому я был удивлен, почему ее не хватило для решения. :) Однако я и сам не смог сразу понять, как именно помогут релоки.
    Поскольку я знеаю, что все украдено до нас, то поискал в гугле сначала "пройти по релокам", а потом просто "по релокам". О чудо, махом нашелся развернутый ответ =)
    ВОт он:
    Мне стало понятно, что ответ этот неверен, следует читать "исправить _ИХ_ (то есть, инструкции по найденным ссылкам) так, что бы в стек попадал адрес экспортируемого из ntoskrnl _except_handler3()". Исправлять jmp понту нет. Короче, ответ он где-то подсмотрел и, сам до конца не поняв, отписал (предположение подтверждается репутацией статей MaD на rootkit.com). Таким же примерно образом ответ был скопирован сюда. Далее появляются клоуны-клоны неких уважаемых здесь никнеймов (что бы не обкакаться прилюдно) и пытаются понять, чем же плох тот код, который они взяли где-то по случаю и не разобрались с ним как следует. Объясняю: на самом деле это хороший код, помогает осваивать средства инвесторов )
     
  20. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    Ого вот это говна взбурлили =)
     
Статус темы:
Закрыта.