Сейчас на форуме: vsv1 (+3 невидимых)

 eXeL@B —› Вопросы новичков —› VirtualProtectEx и WriteProcessMemory в x64
Посл.ответ Сообщение

Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 марта 2008 19:15 · Поправил: r00tk1d
· Личное сообщение · #1

Собсно сабж. кто-нибуть уже делал? застрял на передаче параметров через регистры в обоих процедурах
Помогите разобратся плиз

call GetCurrentProcessId
mov r8d,eax ;dwProcessId = ProcessID
xor rdx,rdx ;bInheritHandle = false
mov ecx,PROCESS_ALL_ACCESS
call OpenProcess

test rax,rax
jz Exit

;а здесь уже у мну проблемы
mov r9d, PAGE_EXECUTE_READWRITE ;32-бит регистр?
mov rcx, rax ;hProcess
lea r8, dwSize ; lea?
lea rdx, lpAddress

;а куда параметр OldProtection O_o
call VirtualProtectEx


ВАЖНО: MASM, AMDx64. В 32-бите параметры просто пихаются в стёк, а тут нужно передать через регистры, а как это сделать я хз



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 11 марта 2008 08:24
· Личное сообщение · #2

r00tk1d, стек в Win64 должен быть выровнен на 64 бита. Тебе уже ответили: https://wasm.ru/forum/viewtopic.php?id=25681
И нефиг везде одно и тоже спрашивать.
А вообще, на 64 пока FASM рулит. Там макросы для fastcall давно есть.

-----
Всем привет, я вернулся



 eXeL@B —› Вопросы новичков —› VirtualProtectEx и WriteProcessMemory в x64
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати