Показать сообщение отдельно

  #11  
Старый 13.08.2019, 00:06
ШPEK
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами: 4852492

Репутация: 88


По умолчанию

Цитата:
Сообщение от Stiopko  

Как можно взять параметры которые передавались в функцию которую хукнули?

И где они хранятся, в коком регистре?
Зависит от соглашения о вызове.

Например: _cdecl - в стеке, __thiscall - первый аргумент в регистре ecx и остальные в стеке, _stdcall - в стеке.

__thiscall обычно используется в методах класса.

Пример:







C++:





Код:
__asm
{
push ebp
// сохраняем значение регистра ebp в стеке
mov ebp
,
esp
  push
[
ebp
+
4
+
8
]
// передаем второй аргумент
push
[
ebp
+
4
+
4
]
// передаём первый аргумент
call hook
// функция должна быть _stdcall
pop ebp
// воостанавливаем значение регистра ebp из стека
}
 
Ответить с цитированием