Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 21:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++]Assemblercode ändern

Discussion on [C++]Assemblercode ändern within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
schrillismus's Avatar
 
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();

    }
}
schrillismus is offline  
Old 10/21/2010, 14:34   #2
 
Lazeboy's Avatar
 
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();

    }
}
Lazeboy is offline  
Thanks
1 User
Old 10/21/2010, 15:05   #3
 
schrillismus's Avatar
 
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
schrillismus is offline  
Old 10/21/2010, 15:35   #4
 
Lazeboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
benutzt du Visual Studio ?
Lazeboy is offline  
Old 10/21/2010, 15:43   #5
 
schrillismus's Avatar
 
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.
schrillismus is offline  
Old 10/21/2010, 16:36   #6
 
Lazeboy's Avatar
 
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
Lazeboy is offline  
Old 10/21/2010, 16:49   #7
 
schrillismus's Avatar
 
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.
schrillismus is offline  
Old 10/21/2010, 17:46   #8

 
elite*gold: 150
Join Date: Apr 2007
Posts: 2,394
Received Thanks: 6,644
Falsch gepatcht.
wurstbrot123 is offline  
Old 10/21/2010, 17:53   #9
 
schrillismus's Avatar
 
elite*gold: 0
Join Date: Feb 2009
Posts: 47
Received Thanks: 11
Wenn ich bei Olly auf der gleichen Adresse noppe, funktioniert es perfekt.
schrillismus is offline  
Old 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?
ms​ is offline  
Thanks
1 User
Old 10/21/2010, 19:05   #11
 
schrillismus's Avatar
 
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:
schrillismus is offline  
Old 10/21/2010, 19:17   #12
 
mydoom's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
Du brauchst anscheinend 6x 0x90, weil die Anweisung 6 Byte lang ist.
mydoom is offline  
Thanks
1 User
Old 10/21/2010, 19:42   #13
 
schrillismus's Avatar
 
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:
schrillismus is offline  
Old 10/21/2010, 20:20   #14
 
P-a-i-n's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
Quote:
Originally Posted by schrillismus View Post
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};
P-a-i-n is offline  
Old 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 View Post
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.
ms​ is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.