в общем собрал инклюд для работы с PE в общем пишу: Код (Text): push eax ;->[ebp-0x8] EAX=MZP mov eax,[eax+0x3c] add eax,dword [ebp-0x8] movzx ax,byte [eax+IMAGE_FILE_HEADER.NumberOfSections] и в оле заммечаю: Код (Text): 00401047 |. 50 PUSH EAX 00401048 |. 8B40 3C MOV EAX,DWORD PTR DS:[EAX+3C] 0040104B |. 0345 F8 ADD EAX,DWORD PTR SS:[EBP-8] 0040104E |. 66:8B40 02 MOV AX,WORD PTR DS:[EAX+2] хм...м...чтобы было правильно нужно по крайней мере чтобы было MOV AX,WORD PTR DS:[EAX+6] вот сижу и думаю в чем проблема. Еще прикол в том, что мне на боарде flatassembler один товарищ давал недоделанную windows.inc, там были некоторые структуры и...и там была тоже такая проблема как решить проблему ?
Код (Text): mov ecx, 0x400000 ; -> MZ header mov eax, [ecx + 0x3C] ; offset of PE header movzx eax, word [ecx + eax + 6] ; number of sections
PE-заголовок описывается вовсе не структурой IMAGE_FILE_HEADER, а IMAGE_NT_HEADERS. Так сказала Microsoft в winnt.h, а в этом вопросе с ней не особо поспоришь Попробуй Код (Text): movzx eax, [eax+IMAGE_NT_HEADERS.FileHeader.NumberOfSections]