Я написал основную c программу в NASM, пытаясь использовать FindFileA с целью в конечном итоге перечислить все файлы в каталоге.
extern FindFirstFileA ; kernel32.dll
extern ExitProcess ; kernel32.dll
section .code
Start:
push dataStructPtr
push searchParameters
call [FindFirstFileA]
mov [fileHandle], eax
push 0
call [ExitProcess]
section .data
searchParameters: db "*.*",0
section .bss
dataStructPtr: resb 4
fileHandle: resb 4
Насколько я могу судить, 32-битный указатель на структуру WIN32_FIND_DATAA должен идти по адресу 402008.
Однако похоже, что записывается более 4 байтов, а также это дает мне адрес 007334C8, который не может вместить в память программы go.
Не могли бы вы пролить свет на то, почему это происходит и где находится структура, чтобы я мог посмотреть на нее, используя OllyDbg?
Использование OllyDbg для просмотра:
Большое спасибо