You are not logged in.
Pages: 1

Имеется участок кода:
.text:004C47DF 028 inc ebx ; default .text:004C47E0 028 add ebp, 38h .text:004C47E3 028 cmp ebx, 4Bh ; ? .text:004C47E6 028 fldz .text:004C47E8 028 fldz .text:004C47EA 028 fldz .text:004C47EC 028 jl loc_4C49F0 .text:004C47F2 028 cmp ds:_menu.field_35, 0 .text:004C47F9 028 jz loc_4C4A00 .text:004C47FF 028 cmp ds:?drawRadar, 0 .text:004C4806 028 jz short loc_4C4820 .text:004C4808 028 fld flt_68FDA0 .text:004C480E 028 fsub ds:flt_704734
cmp ebx, 4Bh
Беда такая что сюда не влазеет больше байта...
По пытался с инжектить:
void injectFunctionCall(DWORD address, DWORD function) 
{
DWORD Old;
	VirtualProtect( PVOID(address), 16, PAGE_READWRITE, &Old);
	BYTE * patch = (BYTE *)address;
	*patch = 0xE8;	// Call
	*(DWORD *)(patch+1) = (function-(address+5));	
	VirtualProtect( PVOID(address), 16, Old, &Old);
}
__declspec(naked) void  Code_1()
{
 _asm inc     ebx            
 _asm add    ebp, 38h
 _asm cmp   ebx, 1600h
 _asm retn;
}injectFunctionCall(0x04C47DF, (DWORD)Code_1); PathByte(0x04C47E4, 0x90); PathByte(0x04C47E5, 0x90);
Но не че не заменяется!!! Игра вылетает, как же заменить кусок кода на свой?
Offline

Обычно инжекты делают с помощью опкода jmp и ссылаются им на участок размеченной памяти (VirtualAlloc).


Offline

Тут не просто инжект надо было делать))))
Offline
Pages: 1