В основном я использую IDA Pro для демонстрации некоторых двоичных файлов из SPEC2006 и выполняю некоторые изменения, чтобы сделать его nasm-reassmeble на Windows 7 32bit.Как бороться с таблицей прыжков, встроенной в .text-раздел в nasm?
Я нахожу одну проблему в разобранном ассемблерный код, генерируемый из IDA Pro, как это:
;this is .text section
.....
LeadUpVec:
dd offset LeadUp1
dd offset LeadUp2
dd offset LeadUp3
LeadUp1:
;this is .text section
Очевидно IDA Pro положить эту таблицу переходов внутри кода.
Я использую NASM, чтобы собрать этот код и генерировать это:
error: comma expected after operand 1
в каждой из четырех линий
Я изменить это так:
;this is .text section
.....
section .data <--- I add it here
LeadUpVec:
dd offset LeadUp1
dd offset LeadUp2
dd offset LeadUp3
section .text <--- I add it here
LeadUp1:
;this is .text section
Но она по-прежнему генерировать те же ошибки на каждой из четырех линий ...
error: comma expected after operand 1
Может ли кто-нибудь мне помочь? Спасибо!
Nasm не использует ключевое слово 'offset'. Просто 'dd LeadUp1' и т. Д. Должны это сделать. Если у вас их много, вы можете «% define offset» (как ничто) заставить Nasm игнорировать его. Наличие таблицы перехода в 'section .text' не должно быть проблемой. Память будет только для чтения, но вы, вероятно, не хотите, чтобы ваша таблица перехода была записана в любом случае ... –
@FrankKotler Да, вы правы! Спасибо, Фрэнк :) – computereasy
@FrankKotler Если вы хотите ответить на этот вопрос ниже, я буду отмечать его как «ответ», и он принесет пользу другим :) – computereasy