От переводчика: приложении к 45-ой главе находился PDF на испанском языке, и эта статья является его переводом на русский язык.
В этой статье показан другой способ противостоять упаковщику из вышеуказанной главы единственно с помощью щелчков по кнопкам мыши без необходимости делать что-то ещё.
Замечание: используемый Ollydbg - это обычная версия, единственные модификации - это Ollyghost и плагин Ollydump для дампа процесса.
• Также используется PE Editor, LordPE и две утилиты из списка - Estricina и Pokemon Anti_Attach.
Сводная информация
Первым делом до того, как атаковать программу в памяти, посмотрим на данные файла, для чего откроем программу в LordPE.
[Broken External Image]:
Эти данные нам понадобятся, так как упаковщик может изменить их во время распаковки, и мы ничего не сможет сделать. Как видим, данные NumberOfRvaAndsizes были изменены, так как знаем, что это поле содержало 10 в шестнадцатеричной системе. Изменим его, для чего необходимо его смещение, так что открывает редактор PE. Видим, что смещение равно B4.
[Broken External Image]:
Следующее, что нам необходимо знать - это OEP, и с этим нам поможет плагин PEID.
[Broken External Image]:
Ок, теперь у нас есть все сведения, которые нам нужны, чтобы начать... Стало быть, идём в атаку.
Полученые данные:
Запускаем упаковщик вне OllyDbg, и он работает.
[Broken External Image]:
Чтобы работать с большим удовольствием, будем использовать утилиту Marciano, которая называется Estricina, с помощью которой остановим третью нить, которая содержит упаковщик (этот шаг не является необходимым, но делает работу более удобной).
[Broken External Image]:
Если мы делаем это, то загрузка процессора нитью падает с 99 процентов до нуля.
[Broken External Image]:
Теперь мы можем спокойно использовать нашу машину.
Атака в памяти, чтобы нас не обнаружили
После использования Pokemos'а, чтобы избежать возможных противоприсоединительных и тому подобных приёмов, восстанавливаем значение NumberOfRvaSizes, которое, как мы помним, находится по смещению B4.
[Broken External Image]:
Хорошо, если была защита против присоединения, то она исчезла. Продолжаем атаковать упаковщик в памяти. Открываем LordPE, и ищем упаковщик в списке процессов.
[Broken External Image]:
Как видим, у него размер образа равна 0001000, и мы знаем, что он должен быть равен 0006000, и это запутывает OllyDbg и любой дампер, поэтому у нас на выходе и не получается хорошего исполняемого файла, кроме того это мешает использовать программу Import для восстановления таблицы импорта.
Вывод: нужно починить его, это понятно. Кликаем по нёму в LordPE правой кнопкой мыши и исправляем
[Broken External Image]:
И как видим на скриншоте справа, размер стал 0006000, каким он и должен быть.
Уже починили часть программы в памяти, теперь подсоединяемся с помощью OllyDbg и видим, что она сообщает нам о том, что заголовок неверен.
[Broken External Image]:
Жмём на "Oк" и программа аттакуется, останавливается на API-функции.
[Broken External Image]:
Теперь так как знаем его OEP, идём в окне кода в 00401000 и оказываемся на OEP программы.
[Broken External Image]:
И видим, что с ней всё в порядке... Нажимаем правую кнопку мышью.
[Broken External Image]:
И видим в регистре EIP, что остановились на OEP, так что теперь переходим к сдампливанию с помощью плагина.
[Broken External Image]:
Осталось только добавить таблицу, которую подготавливаем с помощью Import. Вводим OEP и нажимаем три кнопки по порядку, выбираем сдампленный ранее файл и не выходим из окна, в котором заголовок находится в плохом состоянии. Об этом нам ещё ранее сказал OllyDbg.
[Broken External Image]:
Реконструируем заголовок с помощью какой-нибудь программы, у которой есть такая функция, в данном случае это LordPE, и программа становится нормальной.
[Broken External Image]:
И если посмотрим в администраторе задач Windows, увидим, что программа больше не пожирает ресурсов - упаковщик исчез.
[Broken External Image]:
Ок, достаточно на сегодня.
В этой статье показан другой способ противостоять упаковщику из вышеуказанной главы единственно с помощью щелчков по кнопкам мыши без необходимости делать что-то ещё.
Замечание: используемый Ollydbg - это обычная версия, единственные модификации - это Ollyghost и плагин Ollydump для дампа процесса.
• Также используется PE Editor, LordPE и две утилиты из списка - Estricina и Pokemon Anti_Attach.
Сводная информация
Первым делом до того, как атаковать программу в памяти, посмотрим на данные файла, для чего откроем программу в LordPE.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Эти данные нам понадобятся, так как упаковщик может изменить их во время распаковки, и мы ничего не сможет сделать. Как видим, данные NumberOfRvaAndsizes были изменены, так как знаем, что это поле содержало 10 в шестнадцатеричной системе. Изменим его, для чего необходимо его смещение, так что открывает редактор PE. Видим, что смещение равно B4.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Следующее, что нам необходимо знать - это OEP, и с этим нам поможет плагин PEID.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Ок, теперь у нас есть все сведения, которые нам нужны, чтобы начать... Стало быть, идём в атаку.
Полученые данные:
- OEP 00401000
- SizeOfImagen 00006000
- NumberOfRvaAndSizes Находится по смещению b4 и было изменено на 10
Запускаем упаковщик вне OllyDbg, и он работает.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Чтобы работать с большим удовольствием, будем использовать утилиту Marciano, которая называется Estricina, с помощью которой остановим третью нить, которая содержит упаковщик (этот шаг не является необходимым, но делает работу более удобной).
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Если мы делаем это, то загрузка процессора нитью падает с 99 процентов до нуля.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Теперь мы можем спокойно использовать нашу машину.
Атака в памяти, чтобы нас не обнаружили
После использования Pokemos'а, чтобы избежать возможных противоприсоединительных и тому подобных приёмов, восстанавливаем значение NumberOfRvaSizes, которое, как мы помним, находится по смещению B4.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Хорошо, если была защита против присоединения, то она исчезла. Продолжаем атаковать упаковщик в памяти. Открываем LordPE, и ищем упаковщик в списке процессов.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Как видим, у него размер образа равна 0001000, и мы знаем, что он должен быть равен 0006000, и это запутывает OllyDbg и любой дампер, поэтому у нас на выходе и не получается хорошего исполняемого файла, кроме того это мешает использовать программу Import для восстановления таблицы импорта.
Вывод: нужно починить его, это понятно. Кликаем по нёму в LordPE правой кнопкой мыши и исправляем
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
[Broken External Image]:Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
И как видим на скриншоте справа, размер стал 0006000, каким он и должен быть.
Уже починили часть программы в памяти, теперь подсоединяемся с помощью OllyDbg и видим, что она сообщает нам о том, что заголовок неверен.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Жмём на "Oк" и программа аттакуется, останавливается на API-функции.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Теперь так как знаем его OEP, идём в окне кода в 00401000 и оказываемся на OEP программы.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
[Broken External Image]:Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
И видим, что с ней всё в порядке... Нажимаем правую кнопку мышью.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
И видим в регистре EIP, что остановились на OEP, так что теперь переходим к сдампливанию с помощью плагина.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Осталось только добавить таблицу, которую подготавливаем с помощью Import. Вводим OEP и нажимаем три кнопки по порядку, выбираем сдампленный ранее файл и не выходим из окна, в котором заголовок находится в плохом состоянии. Об этом нам ещё ранее сказал OllyDbg.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Реконструируем заголовок с помощью какой-нибудь программы, у которой есть такая функция, в данном случае это LordPE, и программа становится нормальной.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
[Broken External Image]:Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
И если посмотрим в администраторе задач Windows, увидим, что программа больше не пожирает ресурсов - упаковщик исчез.
[Broken External Image]:
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Ок, достаточно на сегодня.