c++ Python.h und detours.h

06/15/2011 19:48 FuNyMt2#1
hi
ich benutze Microsoft visual c++ 2010

und wenn ich

#include "windows.h"
#include <Python.h>
#include "detours.h"
benutze wird nur windows.h gefunden

kann mir wer helfen
und die Python.h und so schicken

danke
06/15/2011 20:22 .BritainAndy#2
Quote:
benutze wird nur windows.h gefunden

kann mir wer helfen
und die Python.h und so schicken
du includierst die dateien obwohl du weißt , dass du sie nicht hast? -.-
google doch mal, wirst bestimmt fündig
06/15/2011 20:27 FuNyMt2#3
der source code ist nicht von mir

und wenn ich das google kommen nur seiten auf englisch und ein download link gibt es da auch nicht

hat von euch vllt einer die dateien??
06/15/2011 21:14 xNopex#4
Was willst du überhaupt mit den Headern? Ohne Lib bringen dir die eh nichts. Lad dir erstmal die ganzen SDK's runter, linke sie, gebe die Pfade an und dann klappt das auch. Aber warum will man in C++ mit Python arbeiten? o,ô
06/15/2011 21:22 FuNyMt2#5
[Hack]MobPuller (Tapferkeitsumhang-Hack) + Source
von musicinstructor
Link
[Only registered and activated users can see links. Click Here To Register...]


PHP Code:
#include "windows.h"
#include <Python.h>
#include "detours.h"

DWORD Offset1 = 0; //mainstream
DWORD Offset2 = 0; //AddPacketData Function
DWORD Offset3 = 0; //AddSignatureByte Function
DWORD Offset4 = 0; //Update Function (MainFunc)
DWORD Offset5 = 0; //RegisterVid Function
void (__stdcall* MainFunc)();
void (__stdcall* RegisterVid)();
bool Key1IsPressed = false;
bool pullmobs = true;
DWORD *vids = new DWORD[1000];
DWORD *nVID = new DWORD[1000];
int nVIDcount = 0;
int VIDcount = 0;
DWORD nhVID = 0;


bool ScanForOffsets();
DWORD dwFindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask);
bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask);
void* GetCallDest(void* addr);
void CatchKeystrokes();
void Hook_MainFunc();
void Hook_RegisterVid();
void SendPullPackets();
int GetInstanceType(long vid);
double GetCharacterDistance(long vid);
void AppendChat(const char *msg);
bool appIsPressed(long Key);
void RefreshVids();
void AddVID();

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    switch (
ul_reason_for_call)
    {
        case 
DLL_PROCESS_ATTACH:
            
ScanForOffsets();
            
MainFunc = (void (__stdcall*)())DetourFunction((PBYTE)Offset4, (PBYTE)Hook_MainFunc); //0x00471F50
            
RegisterVid = (void (__stdcall*)())DetourFunction((PBYTE)Offset5, (PBYTE)Hook_RegisterVid); //0x004A0154
            
break;
        case 
DLL_THREAD_ATTACH:
            break;
        case 
DLL_THREAD_DETACH:
            break;
        case 
DLL_PROCESS_DETACH:
            break;
    }
    return 
TRUE;
}

bool ScanForOffsets()
{
    
DWORD Base = 0x00400000;
    
DWORD SizeOfCode;

    
DWORD i = Base;
    while ((
memcmp((void *)i, "PE\0\0", 4)) && (i <= Base + 0x1000))
        
i++;

    if (
i <= Base + 0x1000)
        
SizeOfCode = *(DWORD *)(i + 0x1C);


    
BYTE Signature1[] = { 0x8B, 0x0D, 0xF4, 0x1C, 0x5F, 0x00, 0x52, 0x50, 0xE8, 0x67,
                          
0x60, 0x00, 0x00, 0xE8, 0x12, 0x7B, 0x12, 0x00, 0x5E};


    
BYTE Signature2[] = { 0x8B, 0xC1, 0x8B, 0x50, 0x38, 0x8B, 0x48, 0x34, 0x53, 0x8B,
                          
0x5C, 0x24, 0x08, 0x2B, 0xCA, 0x3B, 0xD9};

    
BYTE Signature3[] = { 0xC2, 0x04, 0x00, 0x8B, 0xCE, 0xE8, 0xB2, 0xCE, 0x0D, 0x00,
                          
0x5E};

    
BYTE Signature4[] = { 0x83, 0xEC, 0x08, 0x56, 0x8B, 0xF1, 0x8D, 0x44, 0x24, 0x04,
                          
0x50, 0x8D, 0x4C, 0x24, 0x0C, 0x51};

    
BYTE Signature5[] = { 0x8B, 0x44, 0x24, 0x04, 0x89, 0x81, 0x9C, 0x04, 0x00, 0x00,
                          
0xC2, 0x04, 0x00};


    
Offset1 = *(DWORD *)(dwFindPattern(Base + 0x1000, SizeOfCode, Signature1, "xx????xxx????x????x") + 2);
    
Offset2 = dwFindPattern(Base + 0x1000, SizeOfCode, Signature2, "xxxxxxxxxxxxxxxxx");
    
DWORD Offset3_Address = (dwFindPattern(Base + 0x1000, SizeOfCode, Signature3, "xxxxxx????x") + 6);
    
Offset3 = reinterpret_cast<DWORD>(GetCallDest((DWORD *)(Offset3_Address - 1)));
    
Offset4 = dwFindPattern(Base + 0x1000, SizeOfCode, Signature4, "xxxxxxxxxxxxxxxx");
    
Offset5 = dwFindPattern(Base + 0x1000, SizeOfCode, Signature5, "xxxxxxxxxxxxx") + 4;


    if ((
Offset1))
        return 
true;
    else
        return 
false;
}

void* GetCallDest(void* addr)
{
    
unsigned char* callDestAddr = reinterpret_cast<unsigned char*>(addr) + 1;

    
uintptr_t relativeDest = *reinterpret_cast<uintptr_t *>(callDestAddr);
    return 
reinterpret_cast<void*>(uintptr_t(addr) + relativeDest + 5);
}

bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
    for(;*
szMask;++szMask,++pData,++bMask)
        if(*
szMask=='x' && *pData!=*bMask ) 
            return 
false;
    return (*
szMask) == NULL;
}

DWORD dwFindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
{
    for(
DWORD i=0; i < dwLen; i++)
        if( 
bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
            return (
DWORD)(dwAddress+i);   
    return 
0;
} 

der sagt auch nicht woher man die bekommen soll....
ok ich google mal SDKs und downloade das mir