Seite 1 von 1

ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 20:47
von sKy
Hallo python-forum Community,
ich hab ein paar Frageb bezüglich der Sprache Python(3).
Angefangen hab ich damit vor ca 4 Monaten, und auch schon ein Buch von Galileo Computing durchgemacht.

So nun ist meine Frage:
  • Kann man ReadProcessMemmory und WriteProcessMemmory Funktionen in Python verwenden?
  • Kann man GetASyncKeyState (Tastenabfrage) in Python verwenden?
  • Kann man sein Python Projekt irgendwie als .exe compilen?
  • Kann man das Aktuelle WindowsFenster (in C++ hwnd) abfragen?
Da ich nur die Basics von C++ kann und auch nicht wirklich weiter Lust hab mich im momment in C++ weiter einzulesen wollte ich das Ganze in Python machen.
Falls es jemanden interessiert in C++ sieht mein Programm so aus:

Code: Alles auswählen

#include <Windows.h>
#include <iostream>


#include "CProcess.h"

CProcess gProcess;

struct LocalPlayer_t
{
	DWORD dwBaseEntity;
	
	bool bOverlay;
	bool bMenue;
	
	int iFlags;	
	int iChat;
	int iLifeState;

}LocalPlayer;

void ReadProcessMemory()
{
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(gProcess.dwClient + 0x6F7AF4), &LocalPlayer.dwBaseEntity, 4, 0);
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(LocalPlayer.dwBaseEntity + 0x2E4), &LocalPlayer.iFlags, 4, 0);
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(LocalPlayer.dwBaseEntity + 0x8F), &LocalPlayer.iLifeState, 4, 0);
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(gProcess.dwClient + 0x740494), &LocalPlayer.iChat, 4, 0);
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(LocalPlayer.iChat + 0x17C), &LocalPlayer.iChat, 4, 0);
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(gProcess.dwVGui + 0x11A314), &LocalPlayer.bMenue, 1, 0);
	ReadProcessMemory(gProcess.hProcess, (LPCVOID)(gProcess.dwOverlay + 0x77D8C), &LocalPlayer.bOverlay, 1, 0);
}
void ClearStruct()
{
	LocalPlayer.bMenue = false;
	LocalPlayer.bOverlay = false;
	LocalPlayer.dwBaseEntity = 0x0;
	LocalPlayer.iChat = 0;
	LocalPlayer.iFlags = 0;
	LocalPlayer.iLifeState = 0;
}
void PressKey()
{
    SendMessage(sheepProcess.hwndCss, WM_KEYDOWN, VK_SPACE, 0x390000);
    Sleep(10);
    SendMessage(sheepProcess.hwndCss, WM_KEYUP, VK_SPACE, 0x390000);
}

void BunnyhopCheck()
{
	if(LocalPlayer.bMenue == true)
	{
		return;
	}

	if(LocalPlayer.bOverlay == true)
	{
		return;
	}

	if(LocalPlayer.iChat > 0 )
	{
		return;
	}

	if(LocalPlayer.iLifeState == 257)
	{
		return;
	}

	if(GetForegroundWindow() != gProcess.hwndCss)
	{
		return;
	}

	if(LocalPlayer.iFlags == 257)
	{
		PressKey();
	}
}

int main()
{

	gProcess.Initialize();

	while(1)
	{
		if(GetAsyncKeyState(0x20))
		{
			ReadProcessMemory();
			BunnyhopCheck();
			ClearStruct();
		}
	
	}

}
Ist sowas in Python möglich?
Mit freundlichen Grüßen,
sKy

Re: ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 21:03
von lunar
@sKy Man kann über ctypes und pywin32 alle Funktionen der Windows-API aufrufen. Ob und wie man an das Handle des Fensters kommt, hängt vom der GUI-Bibliothek ab, die Du verwendest.

In eine eigenständige EXE-Datei, so wie Du sie von C++ kennst, lässt sich Python nicht kompilieren, man kann aber mit pyinstaller oder py2exe ein Python-Programm zusammen mit dem Interpreter in eine EXE verpacken.

Re: ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 21:12
von sKy
Erstmal vielen dank. Werde mich weiter über die pywin32 Funktionen informieren..
lunar hat geschrieben:In eine eigenständige EXE-Datei, so wie Du sie von C++ kennst, lässt sich Python nicht kompilieren, man kann aber mit pyinstaller oder py2exe ein Python-Programm zusammen mit dem Interpreter in eine EXE verpacken.
Hört sich aber so an als würde man es ja Compilen..

Re: ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 21:18
von lunar
@sKy Nicht alles, was in einer EXE steckt, ist kompilierter Code.

Re: ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 23:11
von deets
@lunar

Ich glaube der gute sKy moechte Counter-Strike wall hacks oder aehnliches basteln. Und scheitert an C++...

Soll mir persoenlich egal sein, aber auch an anderen Stellen hier im Forum wenn's um zB scraping fuer online-games ging wird ja gerne mal gewarnt.

Re: ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 23:24
von webspider
deets hat geschrieben:Ich glaube der gute sKy moechte Counter-Strike wall hacks oder aehnliches basteln. Und scheitert an C++...
Hätte mir schon klar geworden sein sollen beim BunnyhopCheck(). Aber wenn er an C++ scheitert, wird ctypes nicht gerade besser für ihn sein, oder. Insbesondere wenn er das Buch von Galileo durchgearbeitet haben sollte.

Re: ReadProcessMemmory, WriteProcessMemmory, Compiler

Verfasst: Sonntag 19. August 2012, 23:41
von lunar
@deets Das mag sein, ich habe mir seinen Beitrag nicht genau angesehen :) Allerdings sehe ich jetzt auch kein großes Risiko für die Counterstrike-Community, denn Wallhacks sind doch ein etwas anderes Kaliber als ein bisschen HTML-Scraping, und der OP erweckt nicht entfernt den Eindruck, als wäre er dieser Herausforderung gewachsen ;)