ReadProcessMemmory, WriteProcessMemmory, Compiler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
sKy
User
Beiträge: 2
Registriert: Sonntag 19. August 2012, 20:33

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
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.
sKy
User
Beiträge: 2
Registriert: Sonntag 19. August 2012, 20:33

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..
lunar

@sKy Nicht alles, was in einer EXE steckt, ist kompilierter Code.
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.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

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.
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 ;)
Antworten