!CN's ConsolePush

Posts 16–30 of 61 · Page 2 of 5
Useless find is useless
Quote Originally Posted by Synns View Post
Here is what I posted on another forum:




Just use that if you don't want to worry about updates.
... Err, for that wouldnt you still have to update the DevicePointer?...
Correct me if I'm wrong...

:S
Quote Originally Posted by Relyc View Post


... Err, for that wouldnt you still have to update the DevicePointer?...
Correct me if I'm wrong...

:S
Why would you need to have the device pointer ?
Quote Originally Posted by Relyc View Post


... Err, for that wouldnt you still have to update the DevicePointer?...
Correct me if I'm wrong...

:S
How about looking at Gordon`'s code? He gave you the signature for the device pointer.
Quote Originally Posted by Synns View Post
How about looking at Gordon`'s code? He gave you the signature for the device pointer.
Lol. Gordon didnt give me anything.
Quote Originally Posted by Relyc View Post


Lol. Gordon didnt give me anything.
I'm going to slap you through my monitor.

Take a look at this code by Gordon` and stop using CDetour.

Code:
DWORD GetAddressPtr(int index)
{
    DWORD dwBase = *(DWORD*)dwDevicePointer;
    if(dwBase == 0) return 0;

    dwBase = *(DWORD*)dwBase;
    if(dwBase == 0) return 0;

    dwBase = *(DWORD*)dwBase;
    if(dwBase == 0) return 0;

    return dwBase+4*index;
}

DWORD GetD3DHSApi(int index)
{
    DWORD dwVA = dwHSDevicePointer;

    if(IsBadReadPtr((void*)dwVA, 4)) return 0;
    
    dwVA = *(DWORD*)dwVA;
    
    if(!dwVA || IsBadReadPtr((void*)dwVA, 0x200)) return 0;
    
    return dwVA + (4*index);
}

#define HOOKD3DAPI(a, b) \
    if(*(DWORD*)GetAddressPtr(b) != (DWORD)&hk##a) { \
        p##a = (a##_t) *(DWORD*)GetAddressPtr(b); \
        *(DWORD*)GetAddressPtr(b) = (DWORD)&hk##a; \
        *(DWORD*)GetD3DHSApi(b) = (DWORD)&hk##a; \
    }


DWORD WINAPI HookD3DApis(LPVOID)
{
    bool bValid = false;
    while(true) {
        bValid = GetAddressPtr(0) > 0;

        if(bValid) {
            HOOKD3DAPI(Reset, 16)
            HOOKD3DAPI(EndScene, 42)
            HOOKD3DAPI(DrawIndexedPrimitive, 82)
            HOOKD3DAPI(SetStreamSource, 100)
        }
        
        Sleep(300);
    }

    return 1;
}

HookD3DApis is a thread

sigs:

Code:
dwHSDevicePointer = g_pTools->dwFindPattern((DWORD)GetModuleHandle(ehsvc), 0x90000, (PBYTE)"\x8B\x84\x11\x00\x00\x00\x00\x8B\x8D\xCC\xFD\xFF\xFF\x8B\x95", "xxx????xxxxxxxx");
    if(dwHSDevicePointer) {
        dwHSDevicePointer = *(DWORD*)(dwHSDevicePointer+3);
        dwHSDevicePointer += 0x10;
    }

DWORD dwTempDevicePointer = g_pTools->dwFindPattern((DWORD)GetModuleHandle(0), (DWORD)0xFFFFFFFF, (PBYTE)"\xA1\x00\x00\x00\x00\x89\x45\xF8\x8D", "x????xxxx");
    if(dwTempDevicePointer) {
        dwDevicePointer = *(DWORD*)(dwTempDevicePointer+1);
    }
Works for CA EU, CA NA and CA BR
HURRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
Quote Originally Posted by mmbob View Post
Useless find is useless
Its not useless it allows you to use one addy for EU/NA, and possibly BR/KO...
Quote Originally Posted by CoderNever View Post
Its not useless it allows you to use one addy for EU/NA, and possibly BR/KO...
And what happens when you need some more of L.T.Client's functions? You need the pointer, so why not just use that to get PushToConsole. And as long as NA and EU have the same Engine version the L.T.Client in Engine will be the same addy.
I was just trying to Imply that this code is not useless. I am not saying its the best method nor the worst. It works, and for the people that don't know how to get addies ill keep the addy for this completely up to date like instantly after a update.
Quote Originally Posted by CoderNever View Post
I was just trying to Imply that this code is not useless. I am not saying its the best method nor the worst. It works, and for the people that don't know how to get addies ill keep the addy for this completely up to date like instantly after a update.
Please please please please please dont update it. I beg for you to make them find it themselves.
Menu Hack...
Quote Originally Posted by Relyc View Post
Menu Hack...
It was supposed to update just the SCV function.
Cn would never leech , anyway good job mike XD
And you too acid_burn, you found an undetected hook.
Quote Originally Posted by ac1d_buRn View Post

My one:

Code:
void __cdecl PushToConsole(char* sVal)
{
    DWORD zAddress = 0x007D9200;
    void* szConsole = (void*)*(DWORD*)(zAddress);
    _asm
    {
        push sVal
        call szConsole
        add esp, 4
    }
}
EDIT: Just tested and DC.
Wanna see if the DWORD makes a difference

EDIT2: Added DWORD and working fine.
Nice find CN

Code above is working fine ^^
This D/C's for me... I use this one and it works fine:
Code:
void __cdecl PushToConsole( const char* szCommand )
{
DWORD *LTClient = ( DWORD* )( 0x3778BFB0 );
void* CONoff = ( void* )*( DWORD* )( *LTClient + 0x208 );
__asm
{
push szCommand;
call CONoff;
add esp, 4;
}
}
And no thats not my code that came straight from CN's tutorial
^^ Agreed. Let them find it by themselves so they can at least to something that isn't Copy&Pasting.
Posts 16–30 of 61 · Page 2 of 5
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us