D3D Chams...

Posts 1–7 of 7 · Page 1 of 1
D3D Chams...
Alguem pode me falar porque isto esta detected....


Code:
#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include "stdafx.h"
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")

// NUMPAD1 => On/Off chams.
// NUMPAD2 => Change colors.

#define DIPEngine 0x004B766D
DWORD retDIPEngine = ( DIPEngine + 0x8 );

INT chams;
INT color;
INT chams2;
#define Red     D3DCOLOR_ARGB( 255, 255, 000, 000 )
#define Green   D3DCOLOR_ARGB( 255, 000, 255, 000 )
#define Blue    D3DCOLOR_ARGB( 255, 000, 000, 255 )
#define Black   D3DCOLOR_ARGB( 255, 000, 000, 000 )

HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
{
    if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)) )
        return E_FAIL;
     
    WORD colour16 =    ((WORD)((colour32>>28)&0xF)<<12)
            |(WORD)(((colour32>>20)&0xF)<<8)
            |(WORD)(((colour32>>12)&0xF)<<4)
            |(WORD)(((colour32>>4)&0xF)<<0);
 
    D3DLOCKED_RECT d3dlr;    
    (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
    WORD *pDst16 = (WORD*)d3dlr.pBits;
 
    for(int xy=0; xy < 8*8; xy++)
        *pDst16++ = colour16;
 
    (*ppD3Dtex)->UnlockRect(0);
 
    return S_OK;
}
__declspec( naked ) HRESULT WINAPI DIPMidfunction( )
{
    static LPDIRECT3DDEVICE9 pDevice;

    __asm
    {
        MOV EDX, DWORD PTR DS:[EAX]
        MOV EDX, DWORD PTR DS:[EDX + 0x148]
        MOV DWORD PTR DS:[pDevice], EAX
        PUSHAD
    }
    if( GetAsyncKeyState(VK_NUMPAD1)&1 )
        chams = !chams;
		if( GetAsyncKeyState(VK_NUMPAD9)&1)
		Chams( pDevice, Red );
    __asm
    {
        POPAD
        JMP retDIPEngine
    }
}

void *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] = 0xE9;
    *( DWORD * )( jmp + 1 ) = ( DWORD )( src + len - jmp ) - 5;

    src[0] = 0xE9;
    *( DWORD * )( src + 1 ) = ( DWORD )( dst - src ) - 5;
    for( int i = 5; i < len; i++ )
        src[i] = 0x90;
    VirtualProtect( src, len, dwBack, &dwBack );

    return( jmp - len );
}

DWORD WINAPI StartRoutine( LPVOID )
{
    while( TRUE )
    {
        if( memcmp( ( void * )DIPEngine, ( void * )( PBYTE )"\x8B\x10", 2 ) == 0 )
        {
            Sleep(200);
            DetourCreate( ( PBYTE )DIPEngine, ( PBYTE )DIPMidfunction, 8 );
        }
    }
 
    return 0;
}

BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{ 
    if( dwReason == DLL_PROCESS_ATTACH )
    {
        DisableThreadLibraryCalls( hDll );
        //MessageBoxA( 0, "Hook DIP Engine", "Crossfire", 0 );
        CreateThread( 0, 0, (LPTHREAD_START_ROUTINE)StartRoutine, 0, 0, 0 );
    }
 
    return TRUE;
}
Code:
#pragma once

#include <windows.h>
#include <stdio.h>
#include <d3d9.h>
#include <d3dx9.h>

#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")

void Chams( LPDIRECT3DDEVICE9 D3DDEVICE, DWORD COLOR )
{
	D3DDEVICE->SetRenderState( D3DRS_AMBIENT, COLOR );
}
Code:
 DipEngine + 0x08
Sempre pensei que se usava 0x02 , bom eu não sei mais deve ser uma string que deve ter sido detectada

por exemplo

Algumas vezes pode o Detours serem detectados , tente não sobrecarrega-los , pq tipo o copilador pode não da error ou warning mais pode está corrompendo alguma coisa , eu acho que sei oq é mais não irei falar , pq pode não ser isso
/\ Fica quieto por favor?

O código está funcionando ainda, porém o endereço pode estar errado!
De qual endereço vc esta falando?
pq eu funcei aquele mudulo "crossfire.exe" todo e tudo que esta ai, e o que esta la ....
Quote Originally Posted by BACKD00R View Post
/\ Fica quieto por favor?

O código está funcionando ainda, porém o endereço pode estar errado!


---------- Post added at 12:42 PM ---------- Previous post was at 12:36 PM ----------

Aqui:

Code:
004B5BB3   8B35 F0C06C00    MOV ESI,DWORD PTR DS:[6CC0F0]
004B5BB9   0FB76B 02        MOVZX EBP,WORD PTR DS:[EBX+2]
004B5BBD   B8 ABAAAAAA      MOV EAX,AAAAAAAB
004B5BC2   F7E2             MUL EDX
004B5BC4   0FB703           MOVZX EAX,WORD PTR DS:[EBX]
004B5BC7   8BFA             MOV EDI,EDX
004B5BC9   D1EF             SHR EDI,1
004B5BCB   894424 18        MOV DWORD PTR SS:[ESP+18],EAX
004B5BCF   E8 BCC4FFFF      CALL crossfir.004B2090
004B5BD4   57               PUSH EDI
004B5BD5   8BCE             MOV ECX,ESI
004B5BD7   8B01             MOV EAX,DWORD PTR DS:[ECX]
004B5BD9   8B4C24 18        MOV ECX,DWORD PTR SS:[ESP+18]
004B5BDD   8B10             MOV EDX,DWORD PTR DS:[EAX]
004B5BDF   8B92 48010000    MOV EDX,DWORD PTR DS:[EDX+148]
004B5BE5   51               PUSH ECX
004B5BE6   8B4C24 20        MOV ECX,DWORD PTR SS:[ESP+20]
004B5BEA   55               PUSH EBP
004B5BEB   51               PUSH ECX
004B5BEC   6A 00            PUSH 0
004B5BEE   6A 04            PUSH 4
004B5BF0   50               PUSH EAX
004B5BF1   FFD2             CALL EDX
004B5BF3   8B43 08          MOV EAX,DWORD PTR DS:[EBX+8]
004B5BF6   8B8C24 3C020000  MOV ECX,DWORD PTR SS:[ESP+23C]
004B5BFD   834424 10 0C     ADD DWORD PTR SS:[ESP+10],0C
004B5C02   894424 14        MOV DWORD PTR SS:[ESP+14],EAX
004B5C06   8B4424 34        MOV EAX,DWORD PTR SS:[ESP+34]
004B5C0A   83C0 01          ADD EAX,1
004B5C0D   3B81 C0000000    CMP EAX,DWORD PTR DS:[ECX+C0]
004B5C13   894424 34        MOV DWORD PTR SS:[ESP+34],EAX
004B5C17  ^0F8C D3FCFFFF    JL crossfir.004B58F0
004B5C1D   5F               POP EDI
004B5C1E   5E               POP ESI
004B5C1F   5D               POP EBP
004B5C20   5B               POP EBX
004B5C21   81C4 28020000    ADD ESP,228
004B5C27   C2 1400          RETN 14


---------- Post added at 12:57 PM ---------- Previous post was at 12:42 PM ----------

unica coisa que tava errado e o DIPEngine mais ja corrigi

Code:
#define DIPEngine 0x004B5BDD
Quote Originally Posted by BACKD00R View Post
/\ Fica quieto por favor?

O código está funcionando ainda, porém o endereço pode estar errado!
Se está tudo certo e está detectando, dai tem que partir para os testes. Estou de férias, só volto na ativa depois do ano novo!
Posts 1–7 of 7 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us