ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Переносим ли код?
  #1  
Старый 23.09.2007, 18:53
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


Question Переносим ли код?

Интересен следующий вопрос, компилятор создает файл с кодом, данными, ресурсами. Если нет Reloc директории (Relocation Table), то код можно считать всегда переносимым , т.е. независимым от базоваго адреса загрузки.
 
Ответить с цитированием

  #2  
Старый 23.09.2007, 19:17
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

>> Если нет Reloc директории (Relocation Table), то код можно считать всегда переносимым

все с точностью до наоборот. Таблица перемещаемых элементов используется, чтобы файл можно было загрузить по адресу отличному от указанного в Optionalheader.imagebase (см. формат pe)
 
Ответить с цитированием

  #3  
Старый 23.09.2007, 19:27
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Цитата:
(см. формат pe)
Это я смотрел
Я говорю про компилятор, если он не создаст таблицу перемещаемых элементов, то значит компилятор создал код без абсолютной адресации, или он просто создал код, без поддержки базового адреса загрузки отличного от "OptionalHeader.ImageBase"...
 
Ответить с цитированием

  #4  
Старый 23.09.2007, 19:35
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Если нет таблицы перемещаемых элементов загрузка файла будет возможна только по адресу в OptionalHeader.ImageBase и ни по какому другому.

>>создал код без абсолютной адресации

неееее. как раз в этом случае загрузка по другому адресу невозможна=> есть привязка к конкретным адресам (если я правильно тебя понимаю)

В общем для начала что такое таблица перемещаемых элементов - это массив указателей на rva адреса, которые будут скорректированы при смене image base. значит=> если нет этой таблицы, лоадер не сможет ниче скорректировать => загрузка по другому адресу невозможна

Последний раз редактировалось 0x0c0de; 23.09.2007 в 19:56..
 
Ответить с цитированием

  #5  
Старый 23.09.2007, 19:48
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Под абсолютной адресацией я понимал "привязка к конкретным адресам".
Гм.. Забавно тогда получается, большенство файлов из под компилятора, не поддерживают загрузки отличного от "OptionalHeader.ImageBase" Пытаюсь понять, доасмыслить работу паковщиков (После "Об упаковщиках в последний раз").

P.S. Значит "таблицу перемещаемых элементов" можно просто выкинуть из файла.

0x0c0de Спс за разьяснения, но знаю я это

Последний раз редактировалось GlOFF; 23.09.2007 в 20:05..
 
Ответить с цитированием

  #6  
Старый 23.09.2007, 20:02
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

>>большенство файлов из под компилятора, не поддерживают загрузки отличного от "OptionalHeader.ImageBase"

Большинству файлов это и не надо. таблица перемещаемых элементов встречается в подавляющем большинстве случаев в dll, так как у длл частенько меняются адреса загрузки.
 
Ответить с цитированием

  #7  
Старый 23.09.2007, 20:07
0x4D617A
Новичок
Регистрация: 23.09.2007
Сообщений: 12
Провел на форуме:
44190

Репутация: 24
По умолчанию

Цитата:
Сообщение от 0x0c0de  
>>большенство файлов из под компилятора, не поддерживают загрузки отличного от "OptionalHeader.ImageBase"

Большинству файлов это и не надо. таблица перемещаемых элементов встречается в подавляющем большинстве случаев в dll, так как у длл частенько меняются адреса загрузки.
Это точно...а виндовый загрузчик экзешники загружает именно по адресу указанному в "OptionalHeader.ImageBase"
 
Ответить с цитированием

  #8  
Старый 23.09.2007, 20:09
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

0x4D617A
Цитата:
Это точно...а виндовый загрузчик экзешники загружает именно по адресу указанному в "OptionalHeader.ImageBase"
В описаниях формата PE никто не дает 100% гарантии. И релоки в exe - это не навинка.

0x0c0de Я вот и хочу узнать почему
Цитата:
>>большенство файлов из под компилятора, не поддерживают загрузки отличного от "OptionalHeader.ImageBase"

Большинству файлов это и не надо.
Потому что компилятор не создает прямой адресации привязанной к полным адресам, или у exe в 99.99% случаев совпадение адресов загрузки.

И склоняясь ко второму, можно ли тогда "таблицу перемещаемых элементов" просто выкинуть из EXE-файла?

Последний раз редактировалось GlOFF; 23.09.2007 в 20:16..
 
Ответить с цитированием

  #9  
Старый 23.09.2007, 20:12
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

>>у exe в 99.99% случаев совпадение адресов загрузки

да
 
Ответить с цитированием

  #10  
Старый 23.09.2007, 20:38
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от 0x0c0de  
>>большенство файлов из под компилятора, не поддерживают загрузки отличного от "OptionalHeader.ImageBase"

Большинству файлов это и не надо. таблица перемещаемых элементов встречается в подавляющем большинстве случаев в dll, так как у длл частенько меняются адреса загрузки.
И у SYS. Они просто физически не могут грузиться по базовому адресу, указанному в PE хидере - он обычно ставится юзермодный. К тому же они все грузятся в одно АП (системное), и поэтому могут быть конфликты
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрываем свой Php код в скрипте жертвы. _Great_ PHP, PERL, MySQL, JavaScript 19 03.08.2009 02:08
Исправление для IPB 2.1.x _GaLs_ Форумы 6 20.06.2007 09:31
распродаю всякое genom-- Разное - Покупка, продажа, обмен 0 21.03.2007 22:07
Коды состояния HTTP - Коды ошибок http сервера D=P=CH= MOD= *nix 6 15.10.2006 20:47
Подборка уязвимостей phpBB -=ka$at1k=- Форумы 3 02.07.2006 15:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ