Есть процедура с таким заголовком: Код (Text): proc ValidPE uses eax ebx esi, addrFile local idh:IMAGE_DOS_HEADER В процедуру MemCopy нужно передать через стек адрес idh: Код (Text): stdcall MemCopy, [b]addr[idh][/b], esi, sizeof.IMAGE_DOS_HEADER Как это сделать?
lea eax,[idx] stdcall MemCopy, eax, esi, sizeof.IMAGE_DOS_HEADER или include 'win32ax.inc' stdcall MemCopy, addr idx, esi, sizeof.IMAGE_DOS_HEADER
GoldFinch Конечно. Так и делаю обычно, прежде чем вопросы задавать. Однако вот следующий вопрос, с которым провозился порядочно времени: Вот описание структуры на masm: Код (Text): IMAGE_OPTIONAL_HEADER32 STRUCT ... NumberOfRvaAndSizes DWORD ? DataDirectory IMAGE_DATA_DIRECTORY IMAGE_NUMBEROF_DIRECTORY_ENTRIES dup(<>) IMAGE_OPTIONAL_HEADER32 ENDS Вот я переделал её под fasm: Код (Text): struct IMAGE_DATA_DIRECTORY VirtualAddress dd ? isize dd ? ends IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 struct IMAGE_OPTIONAL_HEADER32 ... NumberOfRvaAndSizes dd ? DataDirectory IMAGE_DATA_DIRECTORY IMAGE_NUMBEROF_DIRECTORY_ENTRIES dup <?> ends Не компилирует. Пишет "invalid argument". Выручайте, братцы.
Phuntik Подозреваю, что только так (с возможными вариациями ): Код (Text): struct IMAGE_OPTIONAL_HEADER32 ... NumberOfRvaAndSizes dd ? DataDirectory rb IMAGE_NUMBEROF_DIRECTORY_ENTRIES*sizeof.IMAGE_DATA_DIRECTORY ends
bendme Не, так не работает. l_inc Спасибо, буду пробовать. Однако назрел следующий вопрос: Есть вот такое: Код (Text): SEHHandler proc uses edx pExcept:DWORD, pFrame:DWORD, pContext:DWORD, pDispatch:DWORD mov edx,pFrame assume edx:ptr SEH mov eax,pContext assume eax:ptr CONTEXT push [edx].SafeOffset pop [eax].regEip Пытаюсь преобразовать: Код (Text): proc SEHHandler uses edx, pExcept, pFrame, pContext, pDispatch mov edx, [pFrame] assume edx SEH mov eax, [pContext] assume eax CONTEXT push [edx.safeOffset] pop [eax.regEip] Однако, конечно же, не работает. Подозреваю, здесь assume обозначает нечто другое, хотя и определено в MASM.INC. Подскажите, как быть?
Через двоеточие нужно было указывать. Вроде компилируется. П.С. Догадался по форуму поискать) Тут таких тем, оказывается, хватает.