![]() |
eXeL@B —› Основной форум —› От какой опции компилятора зависит наличие переходника (IAT)? |
Посл.ответ | Сообщение |
|
Создано: 06 июня 2010 23:53 · Личное сообщение · #1 Есть два испытуемых, оба собраны MSVC. В одном случае есть переходник, в другом нет. Какая опция влияет и как можно узнать в каком "режиме" было собрано приложение, чтоб выбрать ту или иную тактику для автоматического анализа? Задача заключается в нахождении вызова импортированной функции и некоторого рода обработке. ![]() |
|
Создано: 07 июня 2010 00:46 · Личное сообщение · #2 |
|
Создано: 07 июня 2010 00:59 · Личное сообщение · #3 NikolayD да ваш очередной бред всем интересен, безусловно Переходник это JMP надо думать? Это зависит от оптимизации. В MSVC скажем, есть ещё один вид оптимизации, когда API адрес сохраняется в регистр, если сама API вызывается в процедуре дважды или даже чаще. В общем случае вы не сделаете ничего, чтобы сказать компилятору, как ему надо создавать код. В чём на самом деле стоит задача? Что пишете? Добавлено: NikolayD, ты хоть одну программу на MSVC написал? Задолбали ранг набивать. ![]() |
|
Создано: 07 июня 2010 08:02 · Личное сообщение · #4 uinor пишет: Есть два испытуемых, оба собраны MSVC. В одном случае есть переходник, в другом нет. Переходник будет 100% в режиме Debug с опциями по умолчанию, и 100% его не будет в режиме Release с опциями по умолчанию. Во всех других случаях возможны вариации, в том числе и через #pragma. ----- Everything is relative... ![]() |
|
Создано: 07 июня 2010 16:08 · Личное сообщение · #5 |
|
Создано: 07 июня 2010 20:27 · Личное сообщение · #6 int, пробегаюсь по таблице импорта, нахожу нужную функцию, затем ищу ее вызов в коде и небольшая обработка вокруг вызова (получаю указатели на важные данные - забираю их, все делаю в статике). Ничего сложного. Приходится формировать ряд "сигнатур" под разные условия компиляции и компиляторы. Допустим, в msvc билдах встречал вариант без переходника (call dword ptr [x] / FF15[X]), так и с переходником (call [y], jmp dword ptr [x] / E8[Y], FF25[X]). Vamit, действительно, есть такой момент. Благодарю. Тут сделать прогноз и проанализировать какой вариант будет встречен заранее - проблематично? Тогда оставляю вариант с поиском по нескольким сигнатурам. ![]() |
![]() |
eXeL@B —› Основной форум —› От какой опции компилятора зависит наличие переходника (IAT)? |
Эта тема закрыта. Ответы больше не принимаются. |