Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта
Имя
Сообщение << Старые топики   Новые топики >>
ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 04:24:10.513333   
smadov

Сообщений: 73
Оценки: 0
Присоединился: 2008-06-11 13:19:08.676666
Даю проект "как запихать в PE-файл свою собственную таблицу импорта"

То есть нужно самомоу написать собственную таблицу импорта. ПО определённому образцу. ОНа может быть очень маленькой. Образец- в проекте в папке nIAT_dir

После этого необходимо склепать как-нибудь файл nIAT (вы уж сами разберитьесь, как), который суть эта таблица и поместить его в одну папку с экзешником ra.exe. туда же поместить и файл, в котором собираетесь таблицу менять

По запуску ra.exe тот высчитает размер таблицы. Располагаеть её предполагается в той же секции, что и оригинальняа IAT, там, где ноли. Если места мало, будет выведено сообщение.

Если места достаточно, тогда эта таблица будет туда запихана, поправлены 2 директории: непосредственно таблица импорта (RVA и Size) и таблица импортируемых адресов (обнулена на хрен)

Кроме того, поправлены все RVA. В общем, всё, как положено. Отладчик такой экзешник загрузит, алдреса пропишет куда надо и не пикнет даже. Только работать он не будет.

Этот проект полезен, если кто хочет настоящую таблицу скрыть. Тогда ему потом придётся пощзаботиться о ВООССТАНОВЛЕНИИ ОРИГИНАЛЬНОЙ IAT.

Как писать новую IAT- думайте сами. Можете автоматизировать это дело. Мне пока не до этого. Да и цели я такой не ставил, а ставил просто корректно запихать (если влезет).

Чуть не забыл, результат в файле rez.exe

Короче, вот ссылка на рапиде.
http://www.rapidshare.ru/1576147

Люди, почему у меня не получается прикрепить файл к сообщению?
Post #: 1
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 11:41:56.500000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Ничего из поста не понял, что бы сделать файлу новую таблицу импорта надо:

1) Читаем заголовки PE
2) Создаем секцию, расширяем SizeOfHeaders при надобности
3) Устанавливаем указатель на эту секцию в ImportTable в PE заголовке.
4) Формируем собственную таблицу, как? Все документировано, гугл в помощь.

По памяти:

Структура из пяти DWORD'ов это IMAGE_IMPORT_DEsсriрtOR'ы

quote:

00h DWord Import LookUp Содержит ссылку на табличку RVA указывающих на соответствующие Hint-Name's или непосредственно ординал ипортируемого входа
04h DWord Time/Date Stamp Отметка о времени создания, часто содержит 0 (У-уф)
08h DWord Forward Chain ? связано с возможностью передачи экспорта в другие библиотеки. Обычно равно 0FFFFFFFFh
0Ch DWord Name RVA Ссылка на библиотеку с которой нам необходимо поиметь вызовы представлена в виде ASCIZ.
10h DWord Addres Table RVA Ссылка на табличку адресов импорта, заполняется системой при связывании


Их число нигде не указывается, заканчивается список IMAGE_IMPORT_DEsсriрtOR'ов нулевым дескриптором.

В простейшем случае, тебе можно записать одну структуру выше, в ней настроить RVA на

Имя DLL (Имя выравнивается на два байта + ес-но нульбайт), лукап таблицу, таблицу IAT.

C именем DLL все понятно.

Лукап таблица это таблица RVA смещений на некую структура, завершается нулевым DWORD
Вот эта некая структура:

WORD Hint; // Можно оставить нулевым
Имя импортируемой API из DLL, + нуль байт + желательно быть выравнено на два байта.

Таблица IAT это таблца в которую будут вписаны VA API функций.

Post #: 2
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 16:15:28.620000   
smadov

Сообщений: 73
Оценки: 0
Присоединился: 2008-06-11 13:19:08.676666
Да я всё это знаю.
Просто если чел напишет свою IAT, то чтобы запихать её в PE файл я и предложил такой проект.

То есть проект для запихивания в PE файл собственной таблицы IAT (для сокрытия оригинальной.)

2 ограниченя:
1) По размеру
2) Новая IAT должнаь быть сделана по прилагаемому образцу.

Я теперь понятен?
Post #: 3
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 17:22:49.230000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Бред какой-то…
Post #: 4
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 17:24:28.960000   
smadov

Сообщений: 73
Оценки: 0
Присоединился: 2008-06-11 13:19:08.676666
Ну, положим, чтобы оскорбить человека, ума много не требуется.
…Что именно бред?
Нет, я жду!
Post #: 5
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 20:07:05.983333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666

quote:

ORIGINAL: smadov

Ну, положим, чтобы оскорбить человека, ума много не требуется.
…Что именно бред?
Нет, я жду!


А чем не подойдет какой-нибудь пакер + PE Tools? C помощью этого можно и оригинальную таблицу скрыть и свою создать.
Post #: 6
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-16 22:44:16.030000   
smadov

Сообщений: 73
Оценки: 0
Присоединился: 2008-06-11 13:19:08.676666
Ну вопрос праздный, спрашивать кодера почему он кодит… Я такой же вопрос могу задать Вам, да и другим тоже ребятам- зачем писать свои крипторы, если лучше купить готовый?

Да много зачем. Затем хотя бы, что если однажды он даст сбой (а он непременно даст сбой), встретить его грамотно, а не как попрошайка вопрошать - ах, что же мне делать, у меня PE-tols не работает.

Кстати, что это такое я не знаю да и про пакер догадываюсь лишь.
Вообще размышляя на лоне природы над бренностью всего земного пришёл к выводу что криптор и джойнер- две вещи, которые надо писать самому.

Джойнер, кстати, готов уже.
Вывод, конечно, ошибочен, как и всё, что я делаю.

Post #: 7
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-17 17:20:23.216666   
xmystikx

Сообщений: 32
Оценки: 0
Присоединился: 2009-12-03 20:41:49.933333
Если я правильно понял, то ТС сделал прогу для генерации таблицы импорта другой без восстановления оригинальной?
А толку то от этого, без этого файлы все равно не будут работать. Вылетят наверное с ошибкой отправлять не отправлять отчёт
Post #: 8
RE: ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта - 2010-07-17 19:05:03.270000   
smadov

Сообщений: 73
Оценки: 0
Присоединился: 2008-06-11 13:19:08.676666
Почти правильно. Генерации новой IAT нет, есть запихивание.
Зачем?

Ну, во-первых, исследователь я или нет?
Во-вторых, когда-то же кому-нибудь надо будет кому-то запихивать в PE-файл левую IAT. Вот на этот случай мой код и есть. Не более Я обещал мало, но что обещал- сделал.
Post #: 9
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> ПРОЕКТ:как запихать в PE-файл свою собственную таблицу импорта







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.