anybody can write an safeclick.mix for 1.24e?
Base on this
/*6F42607F*/ lea eax,dword ptr ss:[esp+0x5C]
/*6F426083*/ push eax
/*6F426084*/ mov ecx,esi
/*6F426086*/ call Game.6F422970
/*6F42608B*/ mov ecx,dword ptr ss:[esp+0x50]
/*6F42608F*/ mov edi,dword ptr ss:[esp+0x60]
/*6F426093*/ mov dword ptr ss:[esp+0x1C],ecx
/*6F426097*/ mov dword ptr ss:[esp+0x20],edi
This is the original code of Game.dll, as long as call HOOK
Let /*6F426086*/ call Game.6F422970
Jumped out the following functions can be achieved!
void WSAAPI SafeClick( DWORD dwEsi )
{
DWORD dwThis = 0; // unit adress
DWORD dwRet = 0; // Determine whether the visible
__asm
{
mov eax, dwEsi
push eax
mov eax,0x6f422970
call eax // Perform some original operation
}
if ( *(DWORD*)(dwEsi+4)==1 ) // The number of selected
{
__asm
{
// The first parameter to get ebx
mov ebx, 0x6facd44c
mov ebx, [ebx]
mov eax, ebx
add eax, 0x28
mov eax, [eax]
mov ecx, 4
mul ecx
add eax, 0x58
add ebx, eax
mov ebx, [ebx]
add ebx, 0x30
mov ebx, [ebx]
// Get uint address ecx,this pointer
mov ecx, dwEsi
add ecx, 8
mov ecx, [ecx]
mov ecx, [ecx]
// Get the address of the function call eax
mov eax, ecx
mov eax, [eax]
mov eax, [eax+0xfc]
push 0x4 // The third parameter
push 0x0 // The second
xor edx, edx
push ebx // The first
call eax // The CALL is to detect whether the unit has seen three parameters, and a pointer to ecx
mov dwRet, eax //1 indicates visible eax, 0 means not visible,
} // end __asm
if ( dwRet==0 ) //Invisible situation can be achieved by following safe handling clicked
{
__asm
{
mov ecx, dwEsi
add ecx, 8
mov ecx, [ecx]
mov dword ptr [ecx], 0
}
}
} // End if ( *(DWORD*)(dwEsi+4)==1 )
}
only for 1.24E
Thanks
Base on this
Quote:
/*6F42607F*/ lea eax,dword ptr ss:[esp+0x5C]
/*6F426083*/ push eax
/*6F426084*/ mov ecx,esi
/*6F426086*/ call Game.6F422970
/*6F42608B*/ mov ecx,dword ptr ss:[esp+0x50]
/*6F42608F*/ mov edi,dword ptr ss:[esp+0x60]
/*6F426093*/ mov dword ptr ss:[esp+0x1C],ecx
/*6F426097*/ mov dword ptr ss:[esp+0x20],edi
This is the original code of Game.dll, as long as call HOOK
Let /*6F426086*/ call Game.6F422970
Jumped out the following functions can be achieved!
void WSAAPI SafeClick( DWORD dwEsi )
{
DWORD dwThis = 0; // unit adress
DWORD dwRet = 0; // Determine whether the visible
__asm
{
mov eax, dwEsi
push eax
mov eax,0x6f422970
call eax // Perform some original operation
}
if ( *(DWORD*)(dwEsi+4)==1 ) // The number of selected
{
__asm
{
// The first parameter to get ebx
mov ebx, 0x6facd44c
mov ebx, [ebx]
mov eax, ebx
add eax, 0x28
mov eax, [eax]
mov ecx, 4
mul ecx
add eax, 0x58
add ebx, eax
mov ebx, [ebx]
add ebx, 0x30
mov ebx, [ebx]
// Get uint address ecx,this pointer
mov ecx, dwEsi
add ecx, 8
mov ecx, [ecx]
mov ecx, [ecx]
// Get the address of the function call eax
mov eax, ecx
mov eax, [eax]
mov eax, [eax+0xfc]
push 0x4 // The third parameter
push 0x0 // The second
xor edx, edx
push ebx // The first
call eax // The CALL is to detect whether the unit has seen three parameters, and a pointer to ecx
mov dwRet, eax //1 indicates visible eax, 0 means not visible,
} // end __asm
if ( dwRet==0 ) //Invisible situation can be achieved by following safe handling clicked
{
__asm
{
mov ecx, dwEsi
add ecx, 8
mov ecx, [ecx]
mov dword ptr [ecx], 0
}
}
} // End if ( *(DWORD*)(dwEsi+4)==1 )
}
only for 1.24E