Я тестирую программу сборки, скомпилированную flatassembler, и ей нужно изменить таблицу импорта, поэтому, когда я запускаю objdump
, я вижу, какие внешние функции пытается вызвать программа.
Итак, я начинаю с:
format PE GUI
section '.flat' readable writeable executable
Он вызывает некоторые функции в библиотеке MS, но таблица импорта неверна.
Вот простая часть, показывающая, как я включаю две dll и функцию:
;user32
_MessageBoxA dw $0
db 'MessageBoxA', $0
kernel32_name db 'kernel32.dll', $0
user32_name db 'user32.dll', $0
Что нужно сделать в программе сборки, чтобы внешние функции отображались в таблице импорта?
library
иimport
, они, вероятно, связаны. Если вы хотите сделать это вручную, взгляните на этот рисунок: i.imgur.com/pHjcI.png в таблице импорта больше структур, чем вы используете здесь, особенно указатели (ну, RVA) на строки. - person harold   schedule 19.03.2013