This UGradeID method (C++)

Results 1 to 7 of 7
  1. #1
    I like pie OJuice is offline
    MemberRank
    Jul 2011 Join Date
    205Posts

    This UGradeID method (C++)

    http://forum.ragezone.com/f245/sourc...2008-a-772157/

    I am using this link but I have no clue what InfoPC is suppose to be so I get an error. anyone know?


  2. #2
    Alpha Member Chrisss is offline
    MemberRank
    Feb 2012 Join Date
    Ask the Fox!Location
    1,660Posts

    Re: This UGradeID method (C++)

    I dont know what you are trying to do, could you explain more?

  3. #3
    I like pie OJuice is offline
    MemberRank
    Jul 2011 Join Date
    205Posts

    Re: This UGradeID method (C++)

    Quote Originally Posted by Duluxe View Post
    I dont know what you are trying to do, could you explain more?
    i am trying 2 compile the source but i get an error

    InfoPC undeclared identifier and I'm noob with C++, i dont know what it's for lol.

  4. #4
    Alpha Member Chrisss is offline
    MemberRank
    Feb 2012 Join Date
    Ask the Fox!Location
    1,660Posts

    Re: This UGradeID method (C++)

    Paste the error here and maybe we can probably help.

  5. #5
    I like pie OJuice is offline
    MemberRank
    Jul 2011 Join Date
    205Posts

    Re: This UGradeID method (C++)

    main.cpp
    Code:
    #include <Windows.h>
    #include "UGradeID.h"
    
    
    // 2008
    DWORD GetUserGradeIDColorAddress = 0x4A17A0;
    unsigned long UGradeIDAddress = 0x477000;
    unsigned long UgradeIDRegreso = 0x40784E;
    unsigned long ScoreboardAddress = 0x407832;
    
    void CopyBuffer(BYTE *Buffer, int Size, DWORD *Address)	{
    		DWORD pPrevious = 0;
    		VirtualProtect(Address, Size, PAGE_EXECUTE_READWRITE, &pPrevious);
    		memcpy(Address, Buffer, Size);
    		VirtualProtect(Address, Size, pPrevious, &pPrevious);
    		}
    
    void SetupHook(DWORD Function, DWORD Hook, int Size)	{
    			Hook = Hook - Function - 5;
    			BYTE bHook[4];
    			memcpy(bHook,(void*)&Hook,4);
    			BYTE Buffer[10];
    			memset(Buffer,0x90,10);
    				Buffer[0] = 0xE9;
    				Buffer[1] = bHook[0];
    				Buffer[2] = bHook[1];
    				Buffer[3] = bHook[2];
    				Buffer[4] = bHook[3];
    			CopyBuffer(Buffer, Size, (DWORD*)Function);
    	}
    
    void LMAO()
    {
    /*	AllocConsole();
    	freopen("CONOUT$", "wb", stdout);
    	freopen("CONIN$", "rb", stdin);
    */
    
    	GetUserGradeIDColorDet.Detour((PBYTE)GetUserGradeIDColorAddress,(PBYTE)GetUserGradeIDColor,true);
    	GetUserGradeIDColorDet.Apply();
    	SetupHook((DWORD)UGradeIDAddress,(DWORD)UGradeID,5);
    	SetupHook((DWORD)ScoreboardAddress,(DWORD)Scoreboard,5);
    	CreateThread(NULL,NULL,InfoPC, NULL,NULL,NULL);
    }
    
    BOOL WINAPI DllMain (HMODULE hModule, DWORD dwReason, LPVOID)
    {
    	if (dwReason == DLL_PROCESS_ATTACH)
    	{
    		DisableThreadLibraryCalls (hModule);
    		LMAO();
    	}
    
    	return true;
    }

    UGradeID.h
    Code:
    #include "CDetour.h"
    
    #define Gunz08
    typedef struct MCOLOR
    {
        char r;
        char g;
        char b;
        char a;
    }MCOLOR;
    
    
    
    CDetour GetUserGradeIDColorDet;
    bool __cdecl GetUserGradeIDColor(int UGradeID, struct MCOLOR &Color,char *szName)
    {
    	//printf("%d\n",UGradeID);
    	switch(UGradeID)
    	{
    	case 255:
    	case 254:
    	case 7:
    	case 8:
    		break;
    		
    	default:
    		return true;
    	}
    	GetUserGradeIDColorDet.Ret(false);
    	
    	if(UGradeID == 7)
    	{
    		Color.a = 255;
    		Color.r = 255;
    		Color.g = 128;
    		Color.b = 64;
    	}else if(UGradeID == 255 || UGradeID == 254 || UGradeID == 8){
    		Color.a = 255;
    		Color.r = 9;
    		Color.g = 177;
    		Color.b = 163;
    	}
    	
    
    	//GetUserGradeIDColorDet.Org(UGradeID, Color, szName);
        return true;
    }
    
    
    __declspec(naked) void Scoreboard()	{
    #ifdef Gunz08
    	__asm
    	{
    		MOV EAX,[EBX+0x4EA] 
    	}
    #else
    	__asm
    	{
    		MOV EAX,[EBP+0x45A] 
    	}
    #endif
    	__asm
      {	
    	CMP EAX,0xFF //UGradeID 255
    	jne GradoM
    	MOV [EBP-0x17C],0x00 //The R
    	MOV [EBP-0x17B],0xB7 //The G
    	MOV [EBP-0x17A],0xFF //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    GradoM:
    	CMP EAX,0xFE //UGradeID 254
    	jne Grado1
    	MOV [EBP-0x17C],0xFF //The R
    	MOV [EBP-0x17B],0x80 //The G
    	MOV [EBP-0x17A],0x40 //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    Grado1:
    	CMP EAX,0x1 //UGradeID 1
    	jne Grado2
    	MOV [EBP-0x17C],0xFF //The R
    	MOV [EBP-0x17B],0x80 //The G
    	MOV [EBP-0x17A],0x40 //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    Grado2:
    	CMP EAX,0x7 //UGradeID 1
    	jne Final
    	MOV [EBP-0x17C],0xFF //The R
    	MOV [EBP-0x17B],0x80 //The G
    	MOV [EBP-0x17A],0x40 //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    Final:
    	JMP UgradeIDRegreso
    	}
    
    }
    
    __declspec(naked) void UGradeID()
    {
    	#ifdef Gunz08
    	__asm
    	{
    		MOV EAX,[ECX+0x4EA] 
    	}
    #else
    	__asm
    	{
    		MOV EAX,[ECX+0x45A] 
    	}
    #endif
    	__asm
    	{
    		CMP EAX,0xFF
    		JNE Final
    		CMP EAX,0xFE
    		JNE Final
    		CMP EAX,0x1
    		JNE Final
    		CMP EAX,0x7
    		JNE Final
    		XOR AL,AL
    		RETN
    	Final:
    		MOV AL,1
    		RETN
    	}
    }
    CDetour.h
    Code:
    #include "CDetour.h"
    
    #define Gunz08
    typedef struct MCOLOR
    {
        char r;
        char g;
        char b;
        char a;
    }MCOLOR;
    
    
    
    CDetour GetUserGradeIDColorDet;
    bool __cdecl GetUserGradeIDColor(int UGradeID, struct MCOLOR &Color,char *szName)
    {
    	//printf("%d\n",UGradeID);
    	switch(UGradeID)
    	{
    	case 255:
    	case 254:
    	case 7:
    	case 8:
    		break;
    		
    	default:
    		return true;
    	}
    	GetUserGradeIDColorDet.Ret(false);
    	
    	if(UGradeID == 7)
    	{
    		Color.a = 255;
    		Color.r = 255;
    		Color.g = 128;
    		Color.b = 64;
    	}else if(UGradeID == 255 || UGradeID == 254 || UGradeID == 8){
    		Color.a = 255;
    		Color.r = 9;
    		Color.g = 177;
    		Color.b = 163;
    	}
    	
    
    	//GetUserGradeIDColorDet.Org(UGradeID, Color, szName);
        return true;
    }
    
    
    __declspec(naked) void Scoreboard()	{
    #ifdef Gunz08
    	__asm
    	{
    		MOV EAX,[EBX+0x4EA] 
    	}
    #else
    	__asm
    	{
    		MOV EAX,[EBP+0x45A] 
    	}
    #endif
    	__asm
      {	
    	CMP EAX,0xFF //UGradeID 255
    	jne GradoM
    	MOV [EBP-0x17C],0x00 //The R
    	MOV [EBP-0x17B],0xB7 //The G
    	MOV [EBP-0x17A],0xFF //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    GradoM:
    	CMP EAX,0xFE //UGradeID 254
    	jne Grado1
    	MOV [EBP-0x17C],0xFF //The R
    	MOV [EBP-0x17B],0x80 //The G
    	MOV [EBP-0x17A],0x40 //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    Grado1:
    	CMP EAX,0x1 //UGradeID 1
    	jne Grado2
    	MOV [EBP-0x17C],0xFF //The R
    	MOV [EBP-0x17B],0x80 //The G
    	MOV [EBP-0x17A],0x40 //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    Grado2:
    	CMP EAX,0x7 //UGradeID 1
    	jne Final
    	MOV [EBP-0x17C],0xFF //The R
    	MOV [EBP-0x17B],0x80 //The G
    	MOV [EBP-0x17A],0x40 //The B
    	MOV [EBP-0x179],0xFF //The A
    	MOV ECX,[EBP-0x17C]
    	JMP UgradeIDRegreso
    Final:
    	JMP UgradeIDRegreso
    	}
    
    }
    
    __declspec(naked) void UGradeID()
    {
    	#ifdef Gunz08
    	__asm
    	{
    		MOV EAX,[ECX+0x4EA] 
    	}
    #else
    	__asm
    	{
    		MOV EAX,[ECX+0x45A] 
    	}
    #endif
    	__asm
    	{
    		CMP EAX,0xFF
    		JNE Final
    		CMP EAX,0xFE
    		JNE Final
    		CMP EAX,0x1
    		JNE Final
    		CMP EAX,0x7
    		JNE Final
    		XOR AL,AL
    		RETN
    	Final:
    		MOV AL,1
    		RETN
    	}
    }
    CByteArray.h
    Code:
    /*
    Generic Sizable Byte Array
    Written by LanceVorgin
    */
    
    #pragma once
    
    class CByteArray {
    public:
    	CByteArray(){
    		m_pbBuffer = NULL;
    		m_uiSize = 0;
    	}
    
    	~CByteArray(){
    		if(m_pbBuffer)
    			delete[] m_pbBuffer;
    	}
    
    	void Clear(){
    		if(m_pbBuffer)
    			delete[] m_pbBuffer;
    
    		m_pbBuffer = NULL;
    
    		m_uiSize = 0;
    	}
    
    	void CopyTo(BYTE* pbDest){
    		if(m_pbBuffer)
    			memcpy(pbDest, m_pbBuffer, m_uiSize);
    	}
    
    	void CopyFrom(BYTE* pbSrc, unsigned int uiSize){
    		Clear();
    
    		Add(pbSrc, uiSize);
    	}
    
    	BYTE* Copy(){
    		if(!m_pbBuffer)
    			return NULL;
    
    		BYTE* pbBuffer = new BYTE[m_uiSize];
    
    		CopyTo(pbBuffer);
    
    		return pbBuffer;		
    	}
    
    	void Grow(unsigned int uiSize){
    		BYTE* pbNewBuffer = new BYTE[m_uiSize + uiSize];
    
    		if(m_pbBuffer){
    			CopyTo(pbNewBuffer);
    
    			delete[] m_pbBuffer;
    		}
    
    		m_pbBuffer = pbNewBuffer;
    
    		m_uiSize += uiSize;
    	}
    
    	int SetEntry(int iIndex, void* pValue, unsigned int uiSize){
    		if((iIndex < 0) || ((iIndex + uiSize) > m_uiSize))
    			return -1;
    
    		memcpy(&m_pbBuffer[iIndex], pValue, uiSize);
    
    		return iIndex;
    	}
    
    	int Add(void* pValue, unsigned int uiSize){
    		Grow(uiSize);
    
    		return SetEntry(m_uiSize - uiSize, pValue, uiSize);
    	}
    
    	BYTE& operator[](int iIndex) const {
    		return m_pbBuffer[iIndex];
    	}
    
    	BYTE* GetBuffer(){
    		return m_pbBuffer;
    	}
    
    	unsigned int Size(){
    		return m_uiSize;
    	}
    
    	int Peek(){
    		return (int)m_uiSize;
    	}
    
    	int AddBYTE(BYTE bVal){			return Add(&bVal, 1);		}
    	int AddWORD(WORD wVal){			return Add(&wVal, 2);		}
    	int AddDWORD(DWORD dwVal){		return Add(&dwVal, 4);		}
    
    	void operator+=(BYTE bVal){		AddBYTE(bVal);				}
    	void operator+=(WORD wVal){		AddWORD(wVal);				}
    	void operator+=(DWORD dwVal){	AddDWORD(dwVal);			}
    
    	int operator+(BYTE bVal){		return AddBYTE(bVal);		}
    	int operator+(WORD wVal){		return AddWORD(wVal);		}
    	int operator+(DWORD dwVal){		return AddDWORD(dwVal);		}
    
    	BYTE& BYTEAt(int iIndex){		return (BYTE&)m_pbBuffer[iIndex];	}
    	WORD& WORDAt(int iIndex){		return (WORD&)m_pbBuffer[iIndex];	}
    	DWORD& DWORDAt(int iIndex){		return (DWORD&)m_pbBuffer[iIndex];	}
    
    private:
    	BYTE* m_pbBuffer;
    
    	unsigned int m_uiSize;
    };
    Error:
    Code:
    1>------ Build started: Project: UGradeIDs, Configuration: Debug Win32 ------
    1>  main.cpp
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(33): warning C4309: '=' : truncation of constant value
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(34): warning C4309: '=' : truncation of constant value
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(35): warning C4309: '=' : truncation of constant value
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(38): warning C4309: '=' : truncation of constant value
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(40): warning C4309: '=' : truncation of constant value
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(41): warning C4309: '=' : truncation of constant value
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(103): error C2094: label 'UgradeIDRegreso' was undefined
    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\main.cpp(43): error C2065: 'InfoPC' : undeclared identifier
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    i don't know what they should be lol

  6. #6
    Praise the Sun! Solaire is offline
    MemberRank
    Dec 2007 Join Date
    Undead BurgLocation
    2,862Posts

    Re: This UGradeID method (C++)

    Remove the line with CreateThread.

  7. #7
    I like pie OJuice is offline
    MemberRank
    Jul 2011 Join Date
    205Posts

    Re: This UGradeID method (C++)

    Quote Originally Posted by Wizkidje View Post
    Remove the line with CreateThread.
    thank you and i dont know what his intention was for this

    1>c:\users\storm rockwell\documents\visual studio 2010\projects\ugradeids\ugradeids\ugradeid.h(103): error C2094: label 'UgradeIDRegreso' was undefined



Advertisement