Thread: Present Engine

Results 1 to 12 of 12
  1. #1
    IrineuMito's Avatar
    Join Date
    Sep 2017
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    9
    My Mood
    Doh

    Thumbs up Present Engine

    Hello coder friends, can anyone send me an undetectable Present Engine hook? pls

  2. #2
    luizimloko's Avatar
    Join Date
    Feb 2011
    Gender
    male
    Location
    fs:[0]
    Posts
    1,879
    Reputation
    136
    Thanks
    10,137
    My Mood
    Yeehaw
    .






















    This way is 1 on 1000 ways to do that. with basic assembly knowledge you can do this.

    Code:
    DWORD dw_PresentStart  = 0x004FB0BF; //8b 51 44 6a 00 6a 00 6a 00 50 ff d2 b8 ?? ?? ?? ??
    DWORD dw_PresentReturn = ( dw_PresentStart + 0x03 );
    
    void WINAPI startMainRender( LPDIRECT3DDEVICE9 pDevice )
    {
    	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
    
    	//Your d3d stuffs...
    
    	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE  );
    }
    
    __declspec( naked ) HRESULT WINAPI hk_PresentEngine( void )
    {
    	__asm
    	{
    		mov edx, [ ecx + 0x44 ]
    		pushad
    
    		push eax
    		call startMainRender
    
    		popad
    		jmp dw_PresentReturn
    	}
    }
    
    DWORD WINAPI dwWriteHook( void *lpParameter )
    {
    	while( memcmp( ( void * ) dw_PresentStart, ( void * ) "\x8B\x51\x44", 3 ) )
    		Sleep( 500 );
    
    	DWORD dw_ProperAddress = NULL;
    
    	for( int i = 0; !dw_ProperAddress; i++ )
    		if( !memcmp( ( void * ) ( dw_PresentStart + i ), ( void * ) "\xC3\xCC", 2 ) )
    			dw_ProperAddress = ( dw_PresentStart + i + 0x01 );
    
    	*( BYTE  * ) ( dw_ProperAddress + 0x00 ) = 0xE9;
    	*( DWORD * ) ( dw_ProperAddress + 0x01 ) = ( ( DWORD ) hk_PresentEngine - dw_ProperAddress ) - 5;
    
    	*( BYTE  * ) ( dw_PresentStart + 0x00 ) = 0xEB;
    	*( BYTE  * ) ( dw_PresentStart + 0x01 ) = 0x37;
    	*( BYTE  * ) ( dw_PresentStart + 0x02 ) = 0x90;
    
    	return 0;
    }
    Last edited by luizimloko; 10-26-2019 at 04:37 PM.

  3. The Following 3 Users Say Thank You to luizimloko For This Useful Post:

    IrineuMito (10-27-2019),Janitor (10-26-2019),TheG2ek (12-17-2019)

  4. #3
    Janitor's Avatar
    Join Date
    Aug 2011
    Gender
    male
    Location
    MPGH Reports
    Posts
    16,255
    Reputation
    3259
    Thanks
    7,214
    Moved to the proper section.

  5. #4
    IrineuMito's Avatar
    Join Date
    Sep 2017
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    9
    My Mood
    Doh
    Quote Originally Posted by luizimloko View Post
    .

    This way is 1 on 1000 ways to do that. with basic assembly knowledge you can do this.

    Code:
    DWORD dw_PresentStart  = 0x004FB0BF; //8b 51 44 6a 00 6a 00 6a 00 50 ff d2 b8 ?? ?? ?? ??
    DWORD dw_PresentReturn = ( dw_PresentStart + 0x03 );
    
    void WINAPI startMainRender( LPDIRECT3DDEVICE9 pDevice )
    {
    	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
    
    	//Your d3d stuffs...
    
    	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE  );
    }
    
    __declspec( naked ) HRESULT WINAPI hk_PresentEngine( void )
    {
    	__asm
    	{
    		mov edx, [ ecx + 0x44 ]
    		pushad
    
    		push eax
    		call startMainRender
    
    		popad
    		jmp dw_PresentReturn
    	}
    }
    
    DWORD WINAPI dwWriteHook( void *lpParameter )
    {
    	while( memcmp( ( void * ) dw_PresentStart, ( void * ) "\x8B\x51\x44", 3 ) )
    		Sleep( 500 );
    
    	DWORD dw_ProperAddress = NULL;
    
    	for( int i = 0; !dw_ProperAddress; i++ )
    		if( !memcmp( ( void * ) ( dw_PresentStart + i ), ( void * ) "\xC3\xCC", 2 ) )
    			dw_ProperAddress = ( dw_PresentStart + i + 0x01 );
    
    	*( BYTE  * ) ( dw_ProperAddress + 0x00 ) = 0xE9;
    	*( DWORD * ) ( dw_ProperAddress + 0x01 ) = ( ( DWORD ) hk_PresentEngine - dw_ProperAddress ) - 5;
    
    	*( BYTE  * ) ( dw_PresentStart + 0x00 ) = 0xEB;
    	*( BYTE  * ) ( dw_PresentStart + 0x01 ) = 0x37;
    	*( BYTE  * ) ( dw_PresentStart + 0x02 ) = 0x90;
    
    	return 0;
    }
    @luizimloko
    When a number of players start playing the hack starts dcing everyone and ghost ban who has already logged out

    ( after a few minutes )
    Last edited by IrineuMito; 10-28-2019 at 02:14 PM.

  6. #5
    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 IrineuMito View Post
    @luizimloko
    When a number of players start playing the hack starts dcing everyone and ghost ban who has already logged out

    ( after a few minutes )
    .



















    isn't the hook, this method is still undetected. You are fucking with the engine (Byte patching) or some Weapons/Players functions on CShell.dll, causing your ban.

  7. #6
    IrineuMito's Avatar
    Join Date
    Sep 2017
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    9
    My Mood
    Doh

    Unhappy

    Quote Originally Posted by luizimloko View Post

    .



















    isn't the hook, this method is still undetected. You are fucking with the engine (Byte patching) or some Weapons/Players functions on CShell.dll, causing your ban.
    I will test tomorrow only ESP + Aimbot, my weapon functions are PlayerClient and I no longer use BasicPlayerInfo

    Note: I will bring the results.

  8. #7
    IrineuMito's Avatar
    Join Date
    Sep 2017
    Gender
    male
    Posts
    68
    Reputation
    10
    Thanks
    9
    My Mood
    Doh
    Quote Originally Posted by luizimloko View Post

    .



















    isn't the hook, this method is still undetected. You are fucking with the engine (Byte patching) or some Weapons/Players functions on CShell.dll, causing your ban.

    Really was that, just one more question, when is the current CurrentWeapon (CFBR)? could you send me aob?

  9. #8
    MemoryThePast's Avatar
    Join Date
    Sep 2018
    Gender
    male
    Posts
    148
    Reputation
    10
    Thanks
    35
    My Mood
    Stressed
    Quote Originally Posted by IrineuMito View Post
    Really was that, just one more question, when is the current CurrentWeapon (CFBR)? could you send me aob?
    check if the player holding the current weapon

  10. #9
    5ph1nx's Avatar
    Join Date
    Jun 2017
    Gender
    male
    Posts
    8
    Reputation
    10
    Thanks
    3
    Quote Originally Posted by IrineuMito View Post
    Really was that, just one more question, when is the current CurrentWeapon (CFBR)? could you send me aob?
    Code:
    std::int16_t GetCurrentWeaponID()
    {
    	std::int16_t iCurrentID = 0;
    
    	__asm
    	{
    		mov     edx, g_pLTClientShell
    		mov     ecx, [edx + 0x78]
    		mov     eax, [ecx]
    		mov     edx, [eax + 0x84]
    		call    edx
    		mov     edx, [eax]
    		mov     ecx, eax
    		mov     eax, [edx + 0x78]
    		call    eax
    		mov     iCurrentID, ax
    	}
    	return iCurrentID;
    }
    credits: me

  11. The Following User Says Thank You to 5ph1nx For This Useful Post:

    akbargain (11-04-2019)

  12. #10
    akbargain's Avatar
    Join Date
    Apr 2018
    Gender
    male
    Posts
    120
    Reputation
    10
    Thanks
    18
    Quote Originally Posted by 5ph1nx View Post
    Code:
    std::int16_t GetCurrentWeaponID()
    {
    	std::int16_t iCurrentID = 0;
    
    	__asm
    	{
    		mov     edx, g_pLTClientShell
    		mov     ecx, [edx + 0x78]
    		mov     eax, [ecx]
    		mov     edx, [eax + 0x84]
    		call    edx
    		mov     edx, [eax]
    		mov     ecx, eax
    		mov     eax, [edx + 0x78]
    		call    eax
    		mov     iCurrentID, ax
    	}
    	return iCurrentID;
    }
    credits: me
    is this inside PVM?
    if so, you used the vtable 0x84 to get the PVM ptr but how did you locate the pvm + 0x3C (weaponID)?
    sorry i don't know how to read asm
    Last edited by akbargain; 11-04-2019 at 06:53 AM.

  13. #11
    5ph1nx's Avatar
    Join Date
    Jun 2017
    Gender
    male
    Posts
    8
    Reputation
    10
    Thanks
    3
    Quote Originally Posted by akbargain View Post
    is this inside PVM?
    if so, you used the vtable 0x84 to get the PVM ptr but how did you locate the pvm + 0x3C (weaponID)?
    sorry i don't know how to read asm
    it's a virtual func that returns the weapon id from the camera object player.

  14. #12
    akbargain's Avatar
    Join Date
    Apr 2018
    Gender
    male
    Posts
    120
    Reputation
    10
    Thanks
    18
    Quote Originally Posted by 5ph1nx View Post
    it's a virtual func that returns the weapon id from the camera object player.
    oh, thanks for this function. I don't have to get the weaponstruct from cplayer.

    =============================

    I get it now.

    you get the clientshell +78 vtable which is player client then run the 0x84
    Code:
    MOV EAX,DWORD PTR DS:[ECX+2D0]
    RETN
    which will return PVM ptr, then you get the PVM vtable

    then you run the vtable PVM + 0x78
    Code:
    MOV EAX,DWORD PTR DS:[ECX+3C]
    RETN
    which will return the PVM + 0x3C (WEAPONID) nice. Thanks for this knowledge.
    Last edited by akbargain; 11-04-2019 at 08:00 PM.

Similar Threads

  1. [Source Code] Hook Present Engine
    By Hacker Fail in forum Combat Arms BR Hack Coding/Source Code
    Replies: 25
    Last Post: 07-23-2013, 07:18 PM
  2. [Solved] Whats the actual Present Engine Address called?
    By TrixtSam in forum Combat Arms Coding Help & Discussion
    Replies: 4
    Last Post: 07-20-2013, 03:01 PM
  3. [Source Code] Hook Present Engine
    By Hacker Fail in forum Combat Arms Hack Coding / Programming / Source Code
    Replies: 11
    Last Post: 07-20-2013, 02:57 PM
  4. [Release] Hook Present Engine 6/9/2012
    By Avene in forum CrossFire Hack Coding / Programming / Source Code
    Replies: 14
    Last Post: 09-06-2012, 10:58 PM
  5. [Release] Hook Present Engine
    By Avene in forum CrossFire Hack Coding / Programming / Source Code
    Replies: 16
    Last Post: 09-05-2012, 06:14 PM