eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: rmn (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› От какой опции компилятора зависит наличие переходника (IAT)?
Посл.ответ Сообщение

Ранг: 18.6 (новичок)
Статус: Участник

Создано: 6 июня 2010 23:53 New!
Цитата · Личное сообщение · #1

Есть два испытуемых, оба собраны MSVC. В одном случае есть переходник, в другом нет.

Какая опция влияет и как можно узнать в каком "режиме" было собрано приложение, чтоб выбрать ту или иную тактику для автоматического анализа?

Задача заключается в нахождении вызова импортированной функции и некоторого рода обработке.

Ранг: 189.9 (ветеран)
Статус: Участник

Создано: 7 июня 2010 00:46 New!
Цитата · Личное сообщение · #2

кaк бы опции описaны у микрософт.


Статус: Пришелец

Создано: 7 июня 2010 00:59 New!
Цитата #3

NikolayD
да ваш очередной бред всем интересен, безусловно

Переходник это JMP надо думать? Это зависит от оптимизации. В MSVC скажем, есть ещё один вид оптимизации, когда API адрес сохраняется в регистр, если сама API вызывается в процедуре дважды или даже чаще. В общем случае вы не сделаете ничего, чтобы сказать компилятору, как ему надо создавать код. В чём на самом деле стоит задача? Что пишете?

Добавлено:
NikolayD, ты хоть одну программу на MSVC написал? Задолбали ранг набивать.


Ранг: 325.8 (мудрец)
Статус: Участник

Создано: 7 июня 2010 08:02 New!
Цитата · Личное сообщение · #4

uinor пишет:
Есть два испытуемых, оба собраны MSVC. В одном случае есть переходник, в другом нет.

Переходник будет 100% в режиме Debug с опциями по умолчанию, и 100% его не будет в режиме Release с опциями по умолчанию. Во всех других случаях возможны вариации, в том числе и через #pragma.

Ранг: 162.4 (ветеран)
Статус: Участник

Создано: 7 июня 2010 16:08 New!
Цитата · Личное сообщение · #5

В дебаге переходники делаются если стоит инкремент компилинг.
(строится таблица JMPов на функции)

Ранг: 18.6 (новичок)
Статус: Участник

Создано: 7 июня 2010 20:27 New!
Цитата · Личное сообщение · #6

int, пробегаюсь по таблице импорта, нахожу нужную функцию, затем ищу ее вызов в коде и небольшая обработка вокруг вызова (получаю указатели на важные данные - забираю их, все делаю в статике). Ничего сложного.

Приходится формировать ряд "сигнатур" под разные условия компиляции и компиляторы.

Допустим, в msvc билдах встречал вариант без переходника (call dword ptr [x] / FF15[X]), так и с переходником (call [y], jmp dword ptr [x] / E8[Y], FF25[X]).

Vamit, действительно, есть такой момент. Благодарю.

Тут сделать прогноз и проанализировать какой вариант будет встречен заранее - проблематично? Тогда оставляю вариант с поиском по нескольким сигнатурам.
 eXeL@B —› Основной форум —› От какой опции компилятора зависит наличие переходника (IAT)?
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS