· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ZEN —› asm в Delphi7

Посл.отвђт Сообщенiе


Дата: Мар 14, 2004 21:03:49

Подскажите, плиз, как из этого кода
asm
   call            GetModuleHandleA
   mov             ebx,eax
   mov             eax,[ebx.MZ_lfanew]
   lea             edi,[eax.ebx]
   mov             esi,[edi.NT_OptionalHeader.\
                   OH_DirectoryEntries.DE_Export.\
                   DD_VirtualAddress]
   mov             esi,[esi.ebx.ED_AddressOfFunctions]
   mov             ecx,[esi.ebx]
   add             ecx,ebx         //ecx==VxDCall0
   shr             ebx,12
   push            020060000h
   push            00h
   push            01h
   push            ebx
   push            001000dh        //_PageModifyPermissions
   call            ecx
 end;


получить конфетку, т. е. на что надо заменить MZ_lfanew, NT_OptionalHeader, OH_DirectoryEntries, DE_Export, DD_VirtualAddress, ED_AddressOfFunctions чтоб компилятор слабал эту ассемблерную вставку (ессно, без потери функциональности)?


Дата: Мар 14, 2004 21:36:32 · Поправил: hello_world

Это константы. Читай про РЕ формат. На форуме и сайте полно исходников.
mov	eax,0bff70000h
mov	ecx,[eax + 3Ch]
add	ecx,eax
mov	ecx,[ecx + 78h]
mov	ecx,[ecx + eax + 1Ch]
mov	ecx,[ecx + eax]
add	ecx,eax
mov	eax,memaddr	; адрес памяти, у которой меняешь атрибуты
shr	eax,12
push	020060000h
push	0
push	1		; сколько страниц
push	eax
push	1000dh		; _PageModifyPermissions
call	ecx


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.037