Я использую IDA Pro для демонстрации исполняемых файлов SPEC 2006 в Windows 7 32 бит.Как перевести «aKernel32_dll_0: unicode 0, <KERNEL.32>, 0» в юридическую декларацию?
Это создает переменную, объявленную как это:
aKernel32_dll_0 unicode 0, <KERNEL32.DLL>,0
В секции .text, я считаю использование этой переменной, как это:
push offset aKernel32_dll_0
call ds:[email protected]
......
То, что я пытаюсь сделать, это сделать эти коды/данные собираются.
Так что мои вопросы:
Так в основном декларации, как ** aKernel32_dll_0 юникода 0,, 0 ** не может быть непосредственно собраны с помощью MASM/NASM, как я должен настроить его?
Я просто настроить его в aKernel32_dll_0 д.д. 0 и код выглядит так:
и она будет работать в странную ситуацию каждый раз после йза вызова: __ imp__GetModuleHandleW @ 4
По сравнению с исходным двоичным кодом с использованием Ollydbg:
Таким образом, кажется, что aKernel32_dll_0 на самом деле является ехЬегп переменной? Итак, правильный способ удалить декларацию, а extern объявить эту переменную? Если да, то каково имя этой переменной? Я не думаю, что это aKernel32_dll_0, поскольку это похоже на случайное имя, созданное IDA Pro.
Может ли кто-нибудь мне помочь? Спасибо!
Привет, но, но какой правильный синтаксис masm ..? – computereasy
'masm', похоже, не поддерживает utf16 из коробки, но есть макрокоманды, которые это делают. Однако для этой простой строки ascii вы можете просто вставить 0 байт вручную, например 'aKernel32_dll_0 DB 'K', 0, 'E', 0 ...' вы получите эту идею. Должен заканчиваться 3 нулями (один - старший байт последнего wchar, остальные два - терминаторы). Или вы можете сохранить это как ansi и переключить вызов функции, чтобы использовать 'GetModuleHandleA'. – Jester