|
You last visited: Today at 21:08
Advertisement
[C++]Assemblercode ändern
Discussion on [C++]Assemblercode ändern within the C/C++ forum part of the Coders Den category.
10/21/2010, 13:25
|
#1
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
[C++]Assemblercode ändern
Wie kann ich bei einem laufenden Prozess den Assemblercode auf einer bestimmten Adresse ändern?
Ich habe es schon mmit diesem Code hier versucht, aber das hat leider nicht funktioniert.
Code:
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HWND hwnd;
hwnd = FindWindow(0,L"Plants vs. Zombies");
DWORD Id;
HANDLE ProcessHandle;
int value;
unsigned adress = 0x0041D406;
int opcode = 90;
if(!hwnd)
{
cout << "Prozess nicht gefunden!" << endl;
}
else
{
cout << "Prozess gefunden!" << endl;
cout << "Fensterhandle: " << hwnd << endl;
GetWindowThreadProcessId(hwnd,&Id);
cout << Id << endl;
ProcessHandle = OpenProcess(PROCESS_VM_WRITE |PROCESS_VM_OPERATION ,false,Id);
cout << "ProcessHandle: " << ProcessHandle << endl;
WriteProcessMemory(ProcessHandle,(LPVOID)adress,&opcode,1,NULL);
cout << "Wert geschrieben" << endl;
cin.get();
}
}
|
|
|
10/21/2010, 14:34
|
#2
|
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
|
ich mache das per Byte denn eigentlich ist der Assembler codes nix anderes als Bytes.
Code:
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HWND hwnd;
hwnd = FindWindow(0,L"Plants vs. Zombies");
DWORD Id;
HANDLE ProcessHandle;
int value;
unsigned adress = 0x0041D406;
[COLOR="Red"]BYTE opcode = 0x90; // in hex 0x90 = nop
//beim array so BYTE opcode[] ={0x90,0x90,0x90};[/COLOR]
if(!hwnd)
{
cout << "Prozess nicht gefunden!" << endl;
}
else
{
cout << "Prozess gefunden!" << endl;
cout << "Fensterhandle: " << hwnd << endl;
GetWindowThreadProcessId(hwnd,&Id);
cout << Id << endl;
ProcessHandle = OpenProcess(PROCESS_VM_WRITE |PROCESS_VM_OPERATION ,false,Id);
cout << "ProcessHandle: " << ProcessHandle << endl;
[COLOR="Red"]WriteProcessMemory(ProcessHandle,(LPVOID)adress,&opcode,sizeof(opcode),NULL); [/COLOR]
cout << "Wert geschrieben" << endl;
cin.get();
}
}
|
|
|
10/21/2010, 15:05
|
#3
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
Ok, ich habe es mit dem neuen Code versucht, aber es kommt immernoch eine Fehlermeldung:
Quote:
Exception: Access Violation (code 0xc0000005) at address 0041D40A in thread 134C
Module: PflanzenGegenZombies_og.exe
Logical Address: 0001:0001C40A
0018FB70 0041D40A 0001:0001C40A PflanzenGegenZombies_og.exe
Params: 0E824430 00000002 0018FC4C 00000001
EAX:00000032 EBX:00000032 ECX:FFFFFFFF EDX:0E824430 ESI:00000000 EDI:0E824430
EIP:0041D40A ESP:0018FB6C EBP:0E824430
CS:0023 SS:002B DS:002B ES:002B FS:0053 GS:002B
Flags:00010246
|
|
|
|
10/21/2010, 15:35
|
#4
|
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
|
benutzt du Visual Studio ?
|
|
|
10/21/2010, 15:43
|
#5
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
Ja, dieses programm habe ich mit Visual Studio Express 2010 gemacht.
Falls das ein Problem ist, habe ich mir heute gerade die Ultimate version installiert.
|
|
|
10/21/2010, 16:36
|
#6
|
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
|
bei mir funktioniert das wunderbar so du brauchst halt noch DebugPriveleges aber hat ja nix mit dem fehler zu tun
versuch mal das
|
|
|
10/21/2010, 16:49
|
#7
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
Nein, das Programm ist dazu da, bei dem Spiel die Funktion zu noppen, die dafür verantwortlich ist, dass einem Cash abgezogen wird.
Also starte ich das Programm und es schreibt in den Speicher des Spiels. Das Spiel funktioniert dann solange weiter, bis ich etwas kaufe; dann kommt die Fehlermeldung.
|
|
|
10/21/2010, 17:46
|
#8
|
elite*gold: 150
Join Date: Apr 2007
Posts: 2,394
Received Thanks: 6,644
|
Falsch gepatcht.
|
|
|
10/21/2010, 17:53
|
#9
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
Wenn ich bei Olly auf der gleichen Adresse noppe, funktioniert es perfekt.
|
|
|
10/21/2010, 18:46
|
#10
|
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,345
|
Sicher, dass du auch nur 1 Byte nopen willst?
|
|
|
10/21/2010, 19:05
|
#11
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
Nein, ich bin mit überhaupt nicht sicher 
Das könnte wirklich das problem sein...
Hier ist die Zeile, die ich noppen will:
|
|
|
10/21/2010, 19:17
|
#12
|
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
|
Du brauchst anscheinend 6x 0x90, weil die Anweisung 6 Byte lang ist.
|
|
|
10/21/2010, 19:42
|
#13
|
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
|
Also würde das so aussehen:
Code:
BYTE opcode[] ={0x90,0x90,0x90,0x90,0x90};
Edit: Ja, danke man, jetzt hat es Funktioniert! :smile:
|
|
|
10/21/2010, 20:20
|
#14
|
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
|
Quote:
Originally Posted by schrillismus
Also würde das so aussehen:
Code:
BYTE opcode[] ={0x90,0x90,0x90,0x90,0x90};
Edit: Ja, danke man, jetzt hat es Funktioniert! :smile:
|
Wenn dann so ist ja ein Array
BYTE opcode[ 5] ={0x90,0x90,0x90,0x90,0x90};
|
|
|
10/21/2010, 20:47
|
#15
|
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,345
|
Quote:
Originally Posted by P-a-i-n
Wenn dann so ist ja ein Array
BYTE opcode[5] ={0x90,0x90,0x90,0x90,0x90};
|
Ob in den eckigen Klammern 5 steht oder gar nichts macht in diesem Fall keinen Unterschied. Für das Array wird hier automatisch eine Größe von 5 angenommen.
|
|
|
 |
|
Similar Threads
|
[HOW-TO]/go Befehle ändern/hinzufügen + musik auf den maps ändern!
05/16/2010 - Metin2 PServer Guides & Strategies - 13 Replies
Moin Leute,
heut hab ich euch mal ein TuT vorbereitet wie ihr /go befehle hinzufügt/ändert. Am ende noch als kleines extra wie ihr den maps andere hintergrundmusik zuordnet...
So fangen wir an:
Grundwissen:
/go befehle werden von GM´s/GA´s benutzt um siich an einen bestimmten ort zu porten. Sie werden in den chat eingegeben. Bsp: /go a1 ---> Man steht map1 rotes Reich!
Was brauche ich?:
☻FileZilla
|
EG Pin ändern
03/27/2010 - Main - 4 Replies
Ich hab vor langer Zeit nen EG Pin gemacht aber nie EG überwiesen und so. Jetzt hab ich das halt vergessen und wollte nachfragen ob man das i-wie zurücksetzen kann...
mfg. jackdown
|
[HELP]Exp pro lvl ändern
03/12/2010 - Metin2 Private Server - 4 Replies
Hallo,
weis vllt einer von euch wie man die exp pro lvl ändern kann, also das man von lvl 1 auf lvl 2 1000 exp braucht und von lvl 2->lvl 3 2000 exp ..
weil im moment ist bei mir von lvl 1 bis lvl 31 immer nur 24 exp, und da smöchte ich i-wie ändern. vllt weis es einer von euch, dann pls postet mal hier rein,
Mfg
PureMt2
|
cd key ändern
02/21/2010 - Diablo 2 - 1 Replies
kann man eigentlich auch den cd key irgentwie ändern ohne das spiel neu zu installn?
vllt über nen editor oder nen programm?
|
1:db pw ändern 2: wie bekomem ich ne seite 3:pw ändern mit welchem tool bzw websteite
10/26/2009 - Metin2 Private Server - 4 Replies
1:db pw ändern
2: wie bekomem ich ne seite öffenen das andere mitspieler auch drauf könnten kapire das nit so rscht
3: passwort ändern mit welchem tool bzw websteite
mgf
|
All times are GMT +1. The time now is 21:09.
|
|