NASM FindFirstFileA LPWIN32_FIND_DATAA - PullRequest
       41

NASM FindFirstFileA LPWIN32_FIND_DATAA

0 голосов
/ 14 апреля 2020

Я написал основную 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 для просмотра:

enter image description here

enter image description here

Большое спасибо

...