Page 1 of 2 12 LastLast
Results 1 to 15 of 17
  1. #1
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18

    Problema Hook S2S

    Estou tentando fazer um hook no S2S pra logar os packets mas quando eu entro na partida e aperto INSERT pra ativar o hook o jogo fecha. Estou utilizando a Detour que o luizimloko postou. Será que é porque eu não estou utilizando o SDK e estou fazendo os parâmetros com o tipo errado?

    Se alguem puder dar uma olhada no código...

    Code:
    #include <stdio.h>
    #include <windows.h>
    
    typedef unsigned int(*pS2S)(void *buf, unsigned int flags);
    pS2S oS2S;
    
    #define ADDR_BYPASS 0x539949
    #define ADDR_S2S 0x47B940
    
    LPVOID DetourCreate(BYTE *src, CONST BYTE *dst, CONST INT len)
    {
    	BYTE *jmp = (BYTE*)malloc(len + 5);
    	DWORD dwBack;
    	VirtualProtect(src, len, PAGE_READWRITE, &dwBack);
    	memcpy(jmp, src, len);
    	jmp += len;
    	jmp[0] = '\xE9';
    	*(DWORD*)(jmp + 1) = (DWORD)(src + len - jmp) - 5;
    	
    	src[0]  = '\xB8';
    	src[5]  = '\xA9';
    	src[10] = '\x50';
    	src[11] = '\x90';
    	src[12] = '\xC3';
    	src[13] = '\x90';
    	
    	*(DWORD*)(&src[1]) = (DWORD)dst;
    	*(DWORD*)(&src[6]) = (DWORD)dst;
    	for (INT i = 14; i < len; i++) src[i] = 0x90;
    	VirtualProtect(src, len, dwBack, &dwBack);
        
    	return (jmp - len);
    }
    
    unsigned int hkS2S(void *buf, unsigned int flags)
    {
    	__asm PUSHAD;
    
    	printf("hu3hu3");
    
    	__asm POPAD;
    	return oS2S(buf, flags);
    }
    
    
    void Main()
    {
    		
    	DWORD dwOld;
    	VirtualProtect((void*)ADDR_BYPASS, 6, PAGE_EXECUTE_READWRITE, &dwOld);
    
    	while(memcmp((CONST VOID*)ADDR_BYPASS, (CONST VOID*)"\x0F\x84\xB4\x00\x00\x00", 6) != 0) Sleep(100);
    
    	memcpy((void*)ADDR_BYPASS, "\xE9\x19\x01\x00\x00\x90", 6);
    
    	while (1)
    	{
    		if (GetAsyncKeyState(VK_INSERT) & 1) // Ativa hook.
    			oS2S = (pS2S)DetourCreate((BYTE*)ADDR_S2S, (BYTE*)hkS2S, 7);
    	}
    
    	VirtualProtect((void*)ADDR_BYPASS, 6, dwOld, 0);
    
    }
    
    
    BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call,	LPVOID lpReserved )
    {
    	switch ( ul_reason_for_call )
    	{
    		case DLL_PROCESS_ATTACH:
    			AllocConsole();
    			freopen("CONOUT$", "w", stdout);
    			CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&Main, NULL, 0,NULL);
    		break;
    	}
    	return TRUE;
    }

  2. #2
    Fєηix's Avatar
    Join Date
    Apr 2013
    Gender
    male
    Location
    Brαzil
    Posts
    1,178
    Reputation
    114
    Thanks
    6,891
    My Mood
    Sleepy
    Quote Originally Posted by NeoStryker View Post
    Estou tentando fazer um hook no S2S pra logar os packets mas quando eu entro na partida e aperto INSERT pra ativar o hook o jogo fecha. Estou utilizando a Detour que o luizimloko postou. Será que é porque eu não estou utilizando o SDK e estou fazendo os parâmetros com o tipo errado?

    Se alguem puder dar uma olhada no código...

    Code:
    #include <stdio.h>
    #include <windows.h>
    
    typedef unsigned int(*pS2S)(void *buf, unsigned int flags);
    pS2S oS2S;
    
    #define ADDR_BYPASS 0x539949
    #define ADDR_S2S 0x47B940
    
    LPVOID DetourCreate(BYTE *src, CONST BYTE *dst, CONST INT len)
    {
    	BYTE *jmp = (BYTE*)malloc(len + 5);
    	DWORD dwBack;
    	VirtualProtect(src, len, PAGE_READWRITE, &dwBack);
    	memcpy(jmp, src, len);
    	jmp += len;
    	jmp[0] = '\xE9';
    	*(DWORD*)(jmp + 1) = (DWORD)(src + len - jmp) - 5;
    	
    	src[0]  = '\xB8';
    	src[5]  = '\xA9';
    	src[10] = '\x50';
    	src[11] = '\x90';
    	src[12] = '\xC3';
    	src[13] = '\x90';
    	
    	*(DWORD*)(&src[1]) = (DWORD)dst;
    	*(DWORD*)(&src[6]) = (DWORD)dst;
    	for (INT i = 14; i < len; i++) src[i] = 0x90;
    	VirtualProtect(src, len, dwBack, &dwBack);
        
    	return (jmp - len);
    }
    
    unsigned int hkS2S(void *buf, unsigned int flags)
    {
    	__asm PUSHAD;
    
    	printf("hu3hu3");
    
    	__asm POPAD;
    	return oS2S(buf, flags);
    }
    
    
    void Main()
    {
    		
    	DWORD dwOld;
    	VirtualProtect((void*)ADDR_BYPASS, 6, PAGE_EXECUTE_READWRITE, &dwOld);
    
    	while(memcmp((CONST VOID*)ADDR_BYPASS, (CONST VOID*)"\x0F\x84\xB4\x00\x00\x00", 6) != 0) Sleep(100);
    
    	memcpy((void*)ADDR_BYPASS, "\xE9\x19\x01\x00\x00\x90", 6);
    
    	while (1)
    	{
    		if (GetAsyncKeyState(VK_INSERT) & 1) // Ativa hook.
    			oS2S = (pS2S)DetourCreate((BYTE*)ADDR_S2S, (BYTE*)hkS2S, 7);
    	}
    
    	VirtualProtect((void*)ADDR_BYPASS, 6, dwOld, 0);
    
    }
    
    
    BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call,	LPVOID lpReserved )
    {
    	switch ( ul_reason_for_call )
    	{
    		case DLL_PROCESS_ATTACH:
    			AllocConsole();
    			freopen("CONOUT$", "w", stdout);
    			CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&Main, NULL, 0,NULL);
    		break;
    	}
    	return TRUE;
    }
    Será que é porque eu não estou utilizando o SDK e estou fazendo os parâmetros com o tipo errado?
    SDK, e isso:

    Code:
    while (1)
    	{
    		if (GetAsyncKeyState(VK_INSERT) & 1) // Ativa hook.
    			oS2S = (pS2S)DetourCreate((BYTE*)ADDR_S2S, (BYTE*)hkS2S, 7);
    }

  3. #3
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18
    Quote Originally Posted by --Fenix-- View Post




    SDK, e isso:

    Code:
    while (1)
    	{
    		if (GetAsyncKeyState(VK_INSERT) & 1) // Ativa hook.
    			oS2S = (pS2S)DetourCreate((BYTE*)ADDR_S2S, (BYTE*)hkS2S, 7);
    }
    "E isso" vc quer dizer a gambiarra que eu fiz pra não usar GameStatus ou onde eu crio a Detour?

  4. #4
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18
    Disfarça percebi o len errado. Baixei o SDK aqui, acho que vai funcionar agora só to esperando a manutenção... Valeu pela ajuda!

  5. #5
    New - Hacker's Avatar
    Join Date
    Aug 2011
    Gender
    male
    Posts
    498
    Reputation
    23
    Thanks
    110
    My Mood
    Aggressive
    isso deve dar um lag heim, coloca um Sleep nesse loop

  6. #6
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18
    Quote Originally Posted by New - Hacker View Post
    isso deve dar um lag heim, coloca um Sleep nesse loop
    Continua dando DC, mas valeu pela dica...

  7. #7
    luizimloko's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Location
    fs:[0]
    Posts
    1,879
    Reputation
    136
    Thanks
    10,137
    My Mood
    Yeehaw
    Quote Originally Posted by NeoStryker View Post
    Continua dando DC, mas valeu pela dica...
    claro!, modificação de memória na engine é detectado pelo HShield.

  8. #8
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18
    Então esse bypass não funciona? Como posso logar os ids então?

  9. #9
    New - Hacker's Avatar
    Join Date
    Aug 2011
    Gender
    male
    Posts
    498
    Reputation
    23
    Thanks
    110
    My Mood
    Aggressive
    não é necessário do SDK para fazer a hook, mas se quiser gravar os IDs vai precisar, já que necessita do ILTMessage_Read para pegar o ID
    tente só verificar os módulos do CA e o GameStatus, e logo em seguida "iniciar" a hook, eu lembro que se não verificar o GS ele da crash quando chega na tela de login

    Quote Originally Posted by luizimloko View Post


    claro!, modificação de memória na engine é detectado pelo HShield.
    faz tempo que eu não mexo com o CA, mas acho que o problema no caso é erro na sintaxe do código, se fosse detectação não iria dar crash na mesma hora, bem pelo menos antes não dava...

    Quote Originally Posted by NeoStryker View Post
    Então esse bypass não funciona? Como posso logar os ids então?
    O bypass não funciona, para pegar os ids você usa o (ILTMessage_Read) pMsg->Readuint8( ) na hook

  10. #10
    luizimloko's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Location
    fs:[0]
    Posts
    1,879
    Reputation
    136
    Thanks
    10,137
    My Mood
    Yeehaw
    Quote Originally Posted by New - Hacker View Post

    faz tempo que eu não mexo com o CA, mas acho que o problema no caso é erro na sintaxe do código, se fosse detectação não iria dar crash na mesma hora, bem pelo menos antes não dava...
    ele disse:

    "Continua dando DC" , interpretei DC ( Disconect )

  11. #11
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18
    Eu sei que se eu ativar o hook antes de entrar na partida vai dar DC. Por isso eu só apertei INSERT pra iniciar o hook quando estava dentro do modo treinamento e no mesmo instante o jogo travou e depois de alguns segundos fechou. O que eu faço?

  12. #12
    New - Hacker's Avatar
    Join Date
    Aug 2011
    Gender
    male
    Posts
    498
    Reputation
    23
    Thanks
    110
    My Mood
    Aggressive
    Quote Originally Posted by NeoStryker View Post
    Eu sei que se eu ativar o hook antes de entrar na partida vai dar DC. Por isso eu só apertei INSERT pra iniciar o hook quando estava dentro do modo treinamento e no mesmo instante o jogo travou e depois de alguns segundos fechou. O que eu faço?
    Tira esse negócio de INSERT, verifica os módulos e "inicia" a hook quando o GS for diferente de 5 e 0 (looby)

  13. #13
    NeoStryker's Avatar
    Join Date
    Nov 2014
    Gender
    male
    Posts
    187
    Reputation
    10
    Thanks
    18
    Quote Originally Posted by New - Hacker View Post


    Tira esse negócio de INSERT, verifica os módulos e "inicia" a hook quando o GS for diferente de 5 e 0 (looby)
    Sim, sei que fiz gambiarra, mas isso removeria o DC?

    Quote Originally Posted by luizimloko View Post
    claro!, modificação de memória na engine é detectado pelo HShield.
    Então existe alguma forma de fazer hook sem modificar a memória? Eu estou pesquisando sobre Hardware Breakpoints, será que dá certo?

  14. #14
    New - Hacker's Avatar
    Join Date
    Aug 2011
    Gender
    male
    Posts
    498
    Reputation
    23
    Thanks
    110
    My Mood
    Aggressive
    S2S não funciona com Hardware Breakpoint, tem que fazer bypass mesmo.

  15. #15
    XarutoUsoCrackNonCS's Avatar
    Join Date
    Feb 2014
    Gender
    male
    Posts
    8
    Reputation
    10
    Thanks
    1
    Quote Originally Posted by New - Hacker View Post
    S2S não funciona com Hardware Breakpoint, tem que fazer bypass mesmo.
    Não acho que não seja possivel, uma hora o jogo acessa a função então teria sim como fazer HWBP mas não adiantaria de nada já que o HShield checa as Threads que são chamada do GetThreadContext() e algumas APIs necessarias pra criar o HWBP tipo o AddVectoredExceptionHandler.

    Outra coisa, ja ta na hora do pessoal começar a logar os proprios erros (crash) que a .DLL causa loggando os exceptions e o local deles.

    Procurando um pouquinho você acha, não me venha com "RBBRBRBRBR HEUEHEUEHUHUHU PREGUIÇA" você não vai ganhar nada além de desrespeito com essas coisas...

Page 1 of 2 12 LastLast

Similar Threads

  1. [Source Code] Weapon Spawn List + Life Taker + Hook S2S
    By MrOriginal~ in forum Combat Arms BR Hack Coding/Source Code
    Replies: 49
    Last Post: 08-28-2013, 12:30 PM
  2. Alguem tem o hook s2s?
    By thedark22 in forum Combat Arms BR Coding Help
    Replies: 5
    Last Post: 03-14-2013, 03:26 PM
  3. [Help Request] Alguem tem o s2s hook ?
    By MyNameFl in forum Combat Arms BR Coding Help
    Replies: 0
    Last Post: 02-13-2013, 08:30 AM
  4. [Solved] Bypass for s2s hook
    By JohnFame in forum Combat Arms Coding Help & Discussion
    Replies: 4
    Last Post: 12-31-2012, 04:53 PM
  5. Hooking s2s
    By NotRealPro in forum Combat Arms Coding Help & Discussion
    Replies: 10
    Last Post: 07-17-2012, 05:03 PM