sANCHEZ_-
POKERPADAWAN
j'aime bien "the Wall"
ca me rappel mes moments cartes magic
ca me rappel mes moments cartes magic
Soit plus clair ...Kuzco El Lama a dit:dommage que la thèse de base soit erronée, sinon ca aurait pu le faire =p
explique ?Kuzco El Lama a dit:dommage que la thèse de base soit erronée, sinon ca aurait pu le faire =p
Je dis juste que ce n'est pas parce que tu lances un anti cheat en hook cs que ca empechera un hack de fonctionner. En bricolant, il sera vite fait de contourner ton anti-cheat. Pour l'instant je vois deux méthodes possibles, mais bon c'est sur que ca arrettera la plupart des gens.neku a dit:Soit plus clair ...
Car rien de ce qui à été dis n'est faux ...
Je sais pas pourquoi, mais c'est la deuxième fois que j'ai affaire à toi et à chaque fois tu critique sans donner de détail sur ta critique et une critique pour avoir de la valeur ce doit d'être développé...
oui tu as raisonGUMBAL a dit:explique ?
Zor, on utilise pas cd, normal les lans ne le demandent pas, la plus part des leagues idem, si l'on fait une tournoi et qu'on oblige les personnes à l'avoir, elles n'auront pas d'autres choix, c'est cela ou ne pas pouvoir acceder au server, tu fais comment alors ?
Lorsque tu n'as plus le choix, c'est encore plus facile d'obliger à avoir cela.
A savoir que les cheats utilise OpenGl pour faire Wh il suffit d'utiliser detour.h sur chaque fonction OpenGl importante (glBegin, glEnd, glViewport, glSwapBuffers,glBlendFunc, ...)Kuzco El Lama a dit:Je dis juste que ce n'est pas parce que tu lances un anti cheat en hook cs que ca empechera un hack de fonctionner. En bricolant, il sera vite fait de contourner ton anti-cheat. Pour l'instant je vois deux méthodes possibles, mais bon c'est sur que ca arrettera la plupart des gens.
Déso de pas être naïf comme la plupart des gens, si je ne me trompe pas en plus, ce projet a déja été pensé (j'ai oublié le nom, mais tu es surement plus renseigné que moi Oo)
//==================================================================================
// jumpgates...
//==================================================================================
DWORD retaddress;
__declspec( naked )void Gateway2_V_CalcRefdef( void )
{
__asm
{
call PostV_CalcRefdef;
jmp retaddress;
}
}
DWORD CalcRef = (DWORD)&Gateway2_V_CalcRefdef;
__declspec( naked )void Gateway1_V_CalcRefdef( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x10];
push esi;
call PreV_CalcRefdef;
add esp,4;
mov esi,dword ptr ss:[esp+0x0c];
mov retaddress,esi;
push CalcRef;
pop esi;
mov dword ptr ss:[esp+0x0c],esi;
pop esi;
ret;
}
}
__declspec( naked )void Gateway2_CL_CreateMove( void )
{
__asm
{
call CL_CreateMove;
jmp retaddress;
}
}
DWORD CreateMove = (DWORD)&Gateway2_CL_CreateMove;
__declspec( naked )void Gateway1_CL_CreateMove( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x28];
mov retaddress,esi;
push CreateMove;
pop esi;
mov dword ptr ss:[esp+0x28],esi;
pop esi;
ret;
}
}
__declspec( naked )void Gateway2_HUD_Redraw( void )
{
__asm
{
call HUD_Redraw;
jmp retaddress;
}
}
DWORD Redraw= (DWORD)&Gateway2_HUD_Redraw;
__declspec( naked )void Gateway1_HUD_Redraw( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x10];
mov retaddress,esi;
push Redraw
pop esi;
mov dword ptr ss:[esp+0x10],esi;
pop esi;
ret;
}
}
__declspec( naked )void Gateway2_HUD_PostRunCmd( void )
{
__asm
{
call HUD_PostRunCmd;
jmp retaddress;
}
}
DWORD PostRunCmd= (DWORD)&Gateway2_HUD_PostRunCmd;
__declspec( naked )void Gateway1_HUD_PostRunCmd( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x38];
mov retaddress,esi;
push PostRunCmd
pop esi;
mov dword ptr ss:[esp+0x38],esi;
pop esi;
ret;
}
}
__declspec( naked )void Gateway2_HUD_PlayerMove( void )
{
__asm
{
call HUD_PlayerMove;
jmp retaddress;
}
}
DWORD PlayerMove = (DWORD)&Gateway2_HUD_PlayerMove;
__declspec( naked )void Gateway1_HUD_PlayerMove( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x10];
mov retaddress,esi;
push PlayerMove
pop esi;
mov dword ptr ss:[esp+0x10],esi;
pop esi;
ret;
}
}
__declspec( naked )void Gateway2_HUD_Init( void )
{
__asm
{
call HUD_Init;
jmp retaddress;
}
}
DWORD Init = (DWORD)&Gateway2_HUD_Init;
__declspec( naked )void Gateway1_HUD_Init( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x08];
mov retaddress,esi;
push Init
pop esi;
mov dword ptr ss:[esp+0x08],esi;
pop esi;
ret;
}
}
extern int AddEntResult;
__declspec( naked )void Gateway2_HUD_AddEntity( void )
{
__asm
{
mov AddEntResult, eax;
call HUD_AddEntity;
mov eax, AddEntResult;
jmp retaddress;
}
}
DWORD AddEnt = (DWORD)&Gateway2_HUD_AddEntity;
__declspec( naked )void Gateway1_HUD_AddEntity( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x14];
mov retaddress,esi;
push AddEnt
pop esi;
mov dword ptr ss:[esp+0x14],esi;
pop esi;
ret;
}
}
extern int KeyEventResult;
__declspec( naked )void Gateway2_HUD_Key_Event( void )
{
__asm
{
mov KeyEventResult, eax;
call HUD_Key_Event;
mov eax, KeyEventResult;
jmp retaddress;
}
}
DWORD KeyEvent = (DWORD)&Gateway2_HUD_Key_Event;
__declspec( naked )void Gateway1_HUD_Key_Event( void )
{
__asm
{
push esi;
mov esi,dword ptr ss:[esp+0x14];
mov retaddress,esi;
push KeyEvent
pop esi;
mov dword ptr ss:[esp+0x14],esi;
pop esi;
ret;
}
}
__declspec(naked) void NullStub()
{
_asm ret;
}
//==================================================================================
//==================================================================================
bool ActivateClient()
{
dwClientPtr = 0x01A179F0;
if ( !IsBadReadPtr( ( LPCVOID )dwClientPtr, sizeof DWORD ) )
{
if ( *( ( DWORD* )dwClientPtr ) != NULL )
{
DWORD dwClientRealPtr;
__asm {
push eax;
push edx;
mov edx, dwClientPtr;
mov eax, [edx];
mov dwClientRealPtr, eax;
pop edx;
pop eax;
}
memcpy( &gClient, ( LPVOID )dwClientRealPtr, sizeof CLIENT );
gClient.HUD_Init = ( HUD_INIT_FUNCTION ) &Gateway1_HUD_Init;
gClient.HUD_Redraw = ( HUD_REDRAW_FUNCTION ) &Gateway1_HUD_Redraw;
gClient.HUD_PlayerMove = ( HUD_CLIENTMOVE_FUNCTION) &Gateway1_HUD_PlayerMove;
gClient.CL_CreateMove = ( HUD_CL_CREATEMOVE_FUNCTION ) &Gateway1_CL_CreateMove;
gClient.V_CalcRefdef = ( HUD_V_CALCREFDEF_FUNCTION ) &Gateway1_V_CalcRefdef;
gClient.HUD_AddEntity = ( HUD_ADDENTITY_FUNCTION ) &Gateway1_HUD_AddEntity;
gClient.HUD_PostRunCmd = ( HUD_POSTRUNCMD_FUNCTION ) &Gateway1_HUD_PostRunCmd;
gClient.HUD_Key_Event = ( HUD_KEY_EVENT_FUNCTION ) &Gateway1_HUD_Key_Event;
DWORD dwClientNewPtr = ( DWORD ) &gClient;
__asm {
push eax;
push edx;
mov edx, dwClientPtr;
mov eax, dwClientNewPtr;
mov [edx], eax;
pop edx;
pop eax;
}
bClientActive = TRUE;
return TRUE;
} else {
return FALSE;
}
} else {
return FALSE;
}
return TRUE;
}
//==================================================================================
//==================================================================================
bool ActivateEngine()
{
if( pEngfuncs->pfnHookUserMsg && pEngfuncs->pfnHookEvent )
{
memcpy( &gEngfuncs, pEngfuncs, sizeof( cl_enginefunc_t ) );
if( pStudio->GetModelByIndex )
{
memcpy( &IEngineStudio, pStudio, sizeof( IEngineStudio ) );
} else {
return FALSE;
}
pEngfuncs->pfnSPR_Load = &SPR_Load;
pEngfuncs->pfnSPR_Set = &SPR_Set;
pEngfuncs->pfnSPR_Draw = &SPR_Draw;
pEngfuncs->pfnSPR_DrawHoles = &SPR_DrawHoles;
pEngfuncs->pfnSPR_DrawAdditive = &SPR_DrawAdditive;
pEngfuncs->pfnDrawCharacter = &DrawCharacter;
pEngfuncs->pfnDrawConsoleString = &DrawConsoleString;
pEngfuncs->pfnFillRGBA = &FillRGBA;
pEngfuncs->pfnHookUserMsg = &HookUserMsg;
bEngineActive = TRUE;
} else {
return FALSE;
}
return TRUE;
}
//==================================================================================
Je vois bien que cela ne sert à rien de me fatiguer avec toi car tu n'as même pas le courage de t'expliquer donc t'es commentaire n'ont pas de valeur ... c'est comme si tu n'en avais pas.Kuzco El Lama a dit:écoute moi, je te dis que c'est possible à contourner. Maintenant que tu tiennes compte de mes commentaires ou pas, j'en ai rien à foutre en fait. Sors ton brol, et quand j'aurai le temps, je te montrerai qu'il ne fonctionne pas a 100% mais bien à 99%.
j'suis pas la pour te convaincre, juste pour t'informer.neku a dit:Je vois bien que cela ne sert à rien de me fatiguer avec toi car tu n'as même pas le courage de t'expliquer donc t'es commentaire n'ont pas de valeur ... c'est comme si tu n'en avais pas.
Tu n'est même pas capable de prouver ce que tu avance...
Quand tu aura compris que tu ferais mieux de t'expliquer au lieu de parler pour rien dire tu me pm
Hahaha pas envie de déballer des sources privées .... dis plutôt que tu crois tout savoir, mais que tu sais rien ...Kuzco El Lama a dit:j'suis pas la pour te convaincre, juste pour t'informer.
et perso, j'ai pas envie de déballer des sources privées pour prouver que j'ai raison, je préfère m'écraser plutôt
+11mpro a dit:Tfacon le mieux c'est de le faire puis ensuite de constaté et le perdant devra tondre le jadrin de l'autre vétu d'une robe de sa femme..
J'avoue, je n'y connais rien, tu es un dieu pour l'humanité. Tu vas sauver cs grace à ton anti-cheat inviolable.neku a dit:Hahaha pas envie de déballer des sources privées .... dis plutôt que tu crois tout savoir, mais que tu sais rien ...
En plus égoïste :/
Enfin bref ... des gars comme toi j'en croise tout les jours.