fasm+windows.inc=проблема

Тема в разделе "WASM.WIN32", создана пользователем n1kt0, 30 июл 2008.

  1. n1kt0

    n1kt0 Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    160
    в общем собрал инклюд для работы с PE
    в общем пишу:
    Код (Text):
    1. push eax                        ;->[ebp-0x8] EAX=MZP
    2. mov eax,[eax+0x3c]
    3. add eax,dword [ebp-0x8]
    4. movzx ax,byte [eax+IMAGE_FILE_HEADER.NumberOfSections]
    и в оле заммечаю:
    Код (Text):
    1. 00401047  |. 50                 PUSH EAX
    2. 00401048  |. 8B40 3C         MOV EAX,DWORD PTR DS:[EAX+3C]
    3. 0040104B  |. 0345 F8         ADD EAX,DWORD PTR SS:[EBP-8]
    4. 0040104E  |. 66:8B40 02     MOV AX,WORD PTR DS:[EAX+2]
    хм...м...чтобы было правильно нужно по крайней мере чтобы было MOV AX,WORD PTR DS:[EAX+6]

    вот сижу и думаю в чем проблема. Еще прикол в том, что мне на боарде flatassembler один товарищ давал недоделанную windows.inc, там были некоторые структуры и...и там была тоже такая проблема
    как решить проблему ?
     
  2. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    Код (Text):
    1.         mov     ecx, 0x400000 ; -> MZ header
    2.         mov     eax, [ecx + 0x3C] ; offset of PE header
    3.         movzx   eax, word [ecx + eax + 6] ; number of sections
     
  3. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    PE-заголовок описывается вовсе не структурой IMAGE_FILE_HEADER, а IMAGE_NT_HEADERS. Так сказала Microsoft в winnt.h, а в этом вопросе с ней не особо поспоришь :) Попробуй
    Код (Text):
    1. movzx eax, [eax+IMAGE_NT_HEADERS.FileHeader.NumberOfSections]
     
  4. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    Он на board.flatassembler.net уже всех достал...