[Kinda Release]AVA Chams Source Code

Posts 1–15 of 15 · Page 1 of 1
[Kinda Release]AVA Chams Source Code
Hey guys, I found this in another forum, and I was wondering if it can be used, it might be detected/patched cuz this is from 10-22-2009... I hope I can help some coders, and if someone knows how to code this, please tell me, I wanna learn

Source Code:
Code:
//=====================================================================================

// Credz to CallMeEclipse

#include <windows.h>

#include <d3d9.h>
#pragma comment(lib, "d3d9.lib")

#include <d3dx9.h>
#pragma comment(lib, "d3dx9.lib")
#include <time.h>
#include <stdlib.h>
#include <fstream>
#include <vector>    
#include <D3dx9tex.h>
#include <stdio.h> 
#include <time.h>
#include <tchar.h>
#include <iostream>
#pragma warning(disable:4996)//to disable the sprintf warning in VC++ 2008
//-----------//
bool fCall = true;
bool Chams = false;
IDirect3DPixelShader9 *Front,
                      *Back;
//----------//




HRESULT CreateMyShader(IDirect3DPixelShader9 **pShader, IDirect3DDevice9 *Device, float red, float green, float blue, float alpha )
{
    ID3DXBuffer *MyBuffer = NULL;
    char MyShader[ 256 ];
    sprintf( MyShader, "ps.1.1\ndef c0, %f, %f, %f, %f\nmov r0,c0", red/255, green/255, blue/255, alpha/255 );
    D3DXAssembleShader( MyShader, sizeof( MyShader ), NULL, NULL, 0, &MyBuffer , NULL );
    if( FAILED( Device->CreatePixelShader((const DWORD*)MyBuffer ->GetBufferPointer(), pShader)) )return E_FAIL;
    return S_OK;
}

//=====================================================================================

typedef HRESULT (WINAPI* CreateDevice_Prototype)        (LPDIRECT3D9, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE9*);
typedef HRESULT (WINAPI* Reset_Prototype)               (LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*);
typedef HRESULT (WINAPI* EndScene_Prototype)            (LPDIRECT3DDEVICE9);
typedef HRESULT (WINAPI* DrawIndexedPrimitive_Prototype)(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);

CreateDevice_Prototype         CreateDevice_Pointer         = NULL;
Reset_Prototype                Reset_Pointer                = NULL;
EndScene_Prototype             EndScene_Pointer             = NULL;
DrawIndexedPrimitive_Prototype DrawIndexedPrimitive_Pointer = NULL;

HRESULT WINAPI Direct3DCreate9_VMTable    (VOID);
HRESULT WINAPI CreateDevice_Detour        (LPDIRECT3D9, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE9*);
HRESULT WINAPI Reset_Detour               (LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*);
HRESULT WINAPI EndScene_Detour            (LPDIRECT3DDEVICE9);
HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE9, D3DPRIMITIVETYPE, INT, UINT, UINT, UINT, UINT);

DWORD WINAPI VirtualMethodTableRepatchingLoopToCounterExtensionRepatching(LPVOID);
PDWORD Direct3D_VMTable = NULL;

//=====================================================================================

BOOL WINAPI DllMain(HINSTANCE hinstModule, DWORD dwReason, LPVOID lpvReserved)
{
  if(dwReason == DLL_PROCESS_ATTACH)
  {
    DisableThreadLibraryCalls(hinstModule);

    if(Direct3DCreate9_VMTable() == D3D_OK)
    return TRUE;
  }

  return FALSE;
}

//=====================================================================================

HRESULT WINAPI Direct3DCreate9_VMTable(VOID)
{
  LPDIRECT3D9 Direct3D_Object = Direct3DCreate9(D3D_SDK_VERSION);

  if(Direct3D_Object == NULL)
  return D3DERR_INVALIDCALL;
  
  Direct3D_VMTable = (PDWORD)*(PDWORD)Direct3D_Object;
  Direct3D_Object->Release();

  DWORD dwProtect;

  if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)
  {
    *(PDWORD)&CreateDevice_Pointer = Direct3D_VMTable[16];
    *(PDWORD)&Direct3D_VMTable[16] = (DWORD)CreateDevice_Detour;

    if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), dwProtect, &dwProtect) == 0)
    return D3DERR_INVALIDCALL;
  }
  else
  return D3DERR_INVALIDCALL;

  return D3D_OK;
}

//=====================================================================================

HRESULT WINAPI CreateDevice_Detour(LPDIRECT3D9 Direct3D_Object, UINT Adapter, D3DDEVTYPE DeviceType, HWND FocusWindow, 
                    DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* PresentationParameters, 
                    LPDIRECT3DDEVICE9* Returned_Device_Interface)
{
  HRESULT Returned_Result = CreateDevice_Pointer(Direct3D_Object, Adapter, DeviceType, FocusWindow, BehaviorFlags, 
                                              PresentationParameters, Returned_Device_Interface);
   
  DWORD dwProtect;

  if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)
  {
    *(PDWORD)&Direct3D_VMTable[16] = *(PDWORD)&CreateDevice_Pointer;
    CreateDevice_Pointer           = NULL;

    if(VirtualProtect(&Direct3D_VMTable[16], sizeof(DWORD), dwProtect, &dwProtect) == 0)
    return D3DERR_INVALIDCALL;
  }
  else
  return D3DERR_INVALIDCALL;

  if(Returned_Result == D3D_OK)
  {
    Direct3D_VMTable = (PDWORD)*(PDWORD)*Returned_Device_Interface;

    *(PDWORD)&Reset_Pointer                = (DWORD)Direct3D_VMTable[16];
    *(PDWORD)&EndScene_Pointer             = (DWORD)Direct3D_VMTable[42];
    *(PDWORD)&DrawIndexedPrimitive_Pointer = (DWORD)Direct3D_VMTable[82];

    if(CreateThread(NULL, 0, VirtualMethodTableRepatchingLoopToCounterExtensionRepatching, NULL, 0, NULL) == NULL)
    return D3DERR_INVALIDCALL;
  }
    
  return Returned_Result;
}

//=====================================================================================

HRESULT WINAPI Reset_Detour(LPDIRECT3DDEVICE9 Device_Interface, D3DPRESENT_PARAMETERS* PresentationParameters)
{
  return Reset_Pointer(Device_Interface, PresentationParameters);
}

//=====================================================================================

HRESULT WINAPI EndScene_Detour(LPDIRECT3DDEVICE9 Device_Interface)
{
  return EndScene_Pointer(Device_Interface);
}

//=====================================================================================

HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE9 Device_Interface, D3DPRIMITIVETYPE Type, INT BaseIndex, 
                                           UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount)
{
  LPDIRECT3DVERTEXBUFFER9 Stream_Data;
  UINT Offset = 0;
  UINT Stride = 0;

  if(Device_Interface->GetStreamSource(0, &Stream_Data, &Offset, &Stride) == D3D_OK)
  Stream_Data->Release();

  if(fCall)
  {
  CreateMyShader( &Front, Device_Interface,    255,     0,   0,   255 );
  CreateMyShader( &Back,  Device_Interface,    255,   255,   0,   255 );
  fCall = false;
  }

  if ( GetAsyncKeyState ( VK_NUMPAD1 ) &1 )
    {
         Chams = !Chams;
    }  

  if(Chams && (Stride == 32 && StartIndex == 0))
  {
        DWORD dwOldZEnable = D3DZB_TRUE; 
        Device_Interface->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); 
        Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
        Device_Interface->SetPixelShader( Front );
        DrawIndexedPrimitive_Pointer(Device_Interface, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
        Device_Interface->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
        Device_Interface->SetPixelShader( Back );
  }

  return DrawIndexedPrimitive_Pointer(Device_Interface, Type, BaseIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount);
}

//=====================================================================================

DWORD WINAPI VirtualMethodTableRepatchingLoopToCounterExtensionRepatching(LPVOID Param)
{
  UNREFERENCED_PARAMETER(Param); 

  while(1)
  {
    Sleep(100);

    *(PDWORD)&Direct3D_VMTable[42] = (DWORD)EndScene_Detour;
    *(PDWORD)&Direct3D_VMTable[82] = (DWORD)DrawIndexedPrimitive_Detour;
    *(PDWORD)&Direct3D_VMTable[16] = (DWORD)Reset_Detour;
  }

  return 1;
}

//=====================================================================================
thanks for sharing base. but it would be better if you would upload whole project... im thinking to do that.. +1
Quote Originally Posted by /b/oss View Post
thanks for sharing base. but it would be better if you would upload whole project... im thinking to do that.. +1
Sorry bro, I just found this source code, I don't even know how to work with it, that's why I wanted someone to help me or teach me how to code this...
wow if only i could understand this technical coding, nice find
Quote Originally Posted by Skyline. View Post
wow if only i could understand this technical coding, nice find
XoaX.net Video Tutorialsⓘ go go go!!
well, thanks, but this is only base
Ok no problem, but when you learn how to make it work tell me
we kinda need a ban hammer in AVA section ... for newphags like this ........ leecher + bumper + beggar = can't be worse
Quote Originally Posted by Phantazy View Post
we kinda need a ban hammer in AVA section ... for newphags like this ........ leecher + bumper + beggar = can't be worse
dave said i'll get it when AVA section will be more active
Hey I'm in programming class and I know what 2/3 that shit means and stands for =D
I actually have CallMeEclipse's AVA hack on my computer. I could upload the files but I don't want people being like "OMG HAX CAUSE HIS LOW POST COUNT"..

Scan if you think you need to, I didn't touch the file since I've downloaded it so on none of my part is there "viruses". My avast didn't pick it up either.


I attached the file to this post.



Enjoy Let me know if you get it tweaked to work with the new version of AVA or if it was to any help at all.
Quote Originally Posted by protyke View Post
Scan if you think you need to
I think he made it clear /
What i need to do with the hacck?
from the source code at the beginning of this thread. my compiler found an error in ID3DXBuffer *MyBuffer = NULL; but i cannot figure out why. any help? compiler is Dev-C++
Provide 2 virusscans so i can approve it.

thanks
Posts 1–15 of 15 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?