Код (Text): push 0 call GetModuleHandle mov imagebase,eax ;image baze) add eax,3ch ;eax pointer to PE signature mov eax,[eax] ;in eax RVA PE signature add eax,imagebase ;VA off PE signature on eax mov pesignature,eax ;save pe signature add eax,080h ;in eax pointer to RVA of IAT mov eax,[eax] ;in eax RVA IAT add eax,pesignature ;Addres of iat ret в выходе в еах отлично значение от возращеного ImageDirectoryEntryToData.B вообще по адресу в еах одни 0 храняться(.
mov eax,[eax] ;in eax RVA IAT add eax,pesignature ;Addres of iat Ошибка здесь. должнобыть add eax,imagebase.
с чего ты решил, что в ЕАХ окажется RVA на PE сигнатуру? если в масме, то попробуй так: push NULL call GetModuleHandle mov ImageBase,EAX assume EAX:PTR IMAGE_DOS_HEADER add EAX,[EAX].e_lfanew assume EAX:PTR IMAGE_NT_HEADERS lea EAX,[EAX].OptionalHeader.DataDirectory mov EAX,dword ptr [EAX+08h] add EAX,ImageBase ; Здесь в ЕАХ будет адрес таблицу импорта