dll injection war3

83
9

У меня есть код:

    __asm
{
PUSHAD
MOV EAX, DWORD PTR DS:[hStorm_LOBBYPTR]
TEST EAX, EAX
JE nick_false
MOV ECX, DWORD PTR DS:[EAX+0xC464]
TEST ECX, ECX
JE nick_false
MOV EAX, DWORD PTR DS:[ECX+0x170+0xB0]
TEST EAX, EAX
JE nick_false
MOV EDX, i
MOV ECX, DWORD PTR DS:[EAX+EDX*4]
MOV EAX, DWORD PTR DS:[ECX+0x1A0]
MOV ECX, DWORD PTR DS:[EAX+0x1E4]
MOV EAX, DWORD PTR DS:[ECX+0x1E4]
MOV ECX, DWORD PTR DS:[EAX+0x1E8]
MOV tempdw, ECX
POPAD
JMP nick_true

nick_false:
XOR EAX, EAX
MOV tempdw, EAX
POPAD
}

nick_true:
/* do check if tempdw is NULL and then proceed with your stuff */

Как я могу обернуть его в DLL (Visual Studio C++ 2008)? После этого мне нужно вставить DLL в какой-то процесс, а затем восстановить tempdw, как я могу это сделать?

спросил(а) 2011-09-14T08:06:00+04:00 9 лет, 2 месяца назад
1
Решение
59

вам нужно будет деформировать это в обычной функции C, однако, судя по меткам, это не будет голой функцией:

void MyHook()
{
__asm
{
//asm here
}

nick_true:
//the other stuff
}

это затем необходимо поместить в базовый проект dll, который записывает необходимые крючки с помощью WriteProcessMemory (ничего более того, что можно дать, поскольку информации недостаточно). Чтобы ввести его, вы можете использовать RemoteDll или отредактировать программу запуска из w3l

ответил(а) 2011-09-14T08:27:00+04:00 9 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема