Jetzt kostenlos registrieren
   
News    Board    DBase    Kinoarchiv    Gruppen    Chat    Teamspeak    Wiki    Banner    Regeln    Team Jetzt kostenlos registrieren! 

Willkommen :)
Nachrichten
Neu: n/a
Insg.: n/a
Neue PN schreiben
Mein Profil
Du hast schon einen Account? Hier kannst du dich anmelden.


 



Wir speichern nicht!


Wenn du dich aktiv gegen den Überwachungswahn engagieren möchtest,
klicke hier



 
C.der
Benutzerbild von Jeix

Registriert seit:
23.10.2007
Ort: Direkt hinterm Lüfter PIN 12
Beiträge: 310
Für Beiträge bedankt: 55
Erhielt 232 Danke
für 82 Posts
Rang: 36
Jeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes Ansehen
 
Standard #1 (Link) [C++] Stronghold Crusader Trainer-Erstellen Tutorial erstellt am: 10.07.2008 um 12:45
Geändert von Jeix (11.07.2008 um 11:05 Uhr).

Stronghold Crusader 1.1 Trainer


Einführung:
Aufbauend auf dem
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 
von UnlimitedPower, werden wir heute wieder einen Trainer programmieren. Und nein, diesmal nicht für Pinball, sondern für ein etwas komplexeres (und teureres) Spiel. Nämlich Stronghold Crusader in der Version 1.1. Das alles werden wir natürlich wieder in C++ realisieren, aber natürlich wäre dies auch in sämtlichen anderen Sprachen möglich, wie C# oder VB.Net.

Was wir brauchen:
Also, für dieses Tutorial brauchen wir wieder einen sog. Memory Scanner. Soweit ich erinnere hat UnlimitedPower T-Search benutzt, aber ich werde euch hier nur den Umgang mit CheatEngine zeigen, das ein sehr mächtiges Tool, programmiert von Dark_Byte ist. Ihr könnt es auf der offiziellen Page downloaden.
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 

Als zweitens brauchen wir noch natürlich einen C++ Compiler oder halt eine IDE. Aber darauf werde ich nicht weiter eingehen. Ich für meinen Teil benutze MS Visual C++ Express Edition mit dem msvc2008 Compiler.

CheatEngine:
Beim ersten Start von CE (werde CheatEngine ab jetzt immer mit CE abkürzen) kommt eigentlich sowieso ein Einführungstutorial. Ich würde empfehlen es auf jedenfall einmal kurz durchzuarbeiten. Dauert vielleich 10-30 Minuten. Für die, die dazu jetzt keine Lust haben, erkläre ich kurz wie CE aufgebaut ist.
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 
  1. Bei eins sieht man die drei Bitmap Buttons. Mit dem linken (grüner Rand), kann man einen Prozess öffnen, mit dem zweiten und dritten Button, kann man CE Tables speichern und laden. Sodass man, wenn man entsprechende Adressen schon gefunden hat, diese nicht immer neu suchen muss.
  2. Bei zwei sieht man nachher die passenden Adressen, wenn man nach einem Wert gesucht hat.
  3. Unter drei sieht man die Buttons First Scan und Next Scan. Beim Adressensuchen, passt ja zB. der Wert 100 auf tausende Adressen, deswegen verändert man im Spiel eben diesem Wert 100. Dann macht man Next Scan, um den Wert einzugrenzen.
    Beispiel: Du willst unendlich Lebenspunkte. Du hast im Spiel gerade 100, minimierst dieses. Suchst nach dem Wert 100, hast aber tausend Adressen gefunden. In welcher werden nun die Lebenspunkte gespeichert? Um das rauszufinden, maximierst du das Spiel wieder und lässt die HP abziehen, durch einen Treffer oder so. Jetzt hast du noch 93 HP. Jetzt minimierst du das Spiel wieder und suchst mit 'Next Scan', dass heißt nur noch die Adressen, vom vorigen Scan werden durchsucht, nach dem neuen Wert. Das machst du solange bis nur noch eine, die richtige Adresse übrigbleibt. Soviel zur Theorie... -_-
  4. Bei 4 kann man den Wert eingeben, nach dem man suchen will.
  5. Manchmal weiß man den Wert nicht genau, weiß nur das er seit dem letzten Scan größer geworden sein muss, o.ä.. Brauchen wir aber in diesem Tutorial nicht.
  6. Value Type. Es gibt verschiedene Variablengrößen im Speicher von 1 Byte (8 bits) bis zu 8 Byte (64 bit). Wir brauchen in diesem Tutorial aber nur die normalen 4 Bytes (32bit) Integer.
  7. Hier kannst du deine gefundenen Adressen speichern, anzeigen lassen und ggf. den Wert ändern o.ä. Man kann auch zB. Funktionen ausführen wie "What writes to this Adress", etc.
  8. Man kann auch Adressen manuell hinzufügen. Wenn ihr irgendwie die Adressen nicht finden solltet, wie ich es euch zeigen werde, könnte ihr diese manuell hinzufügen, da ich am Ende des Tutorials eine Liste mit allen Adressen posten werde.

Die erste Adresse:
Als erstes widmen wir uns der einfachsten Adresse, die relativ leicht zu finden ist. Bei den anderen muss man nämlich etwas anders herangehen als bei dieser. Also starten wir als erstes mal Stronghold. Dann starten wir ein eigenes Spiel. Nachdem wir kurz unsere Burg gegen etwaige Feinde gesichert haben -Ich spiel hier gerade nur gegen Ratte, damit uns auch keine AI beim Crackz0rn nervt- rücken wir zum praktischen Teil des Tutorials vor. Ihr habt euch jetzt bestimmt, was wir nun zu erst versuchen zu verändern. Und ja, es ist das Gold :P.
Also, so sieht STC (ab jetzt kürz ich Stronghold Crusader immer so ab), jetzt bei mir aus:
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 

Wie ihr seht, habe ich zurzeit 7100 Gold, also suchen wir in CE nach dem Wert 7100. Dazu öffnen wir CE und öffnen wiederum in CE den Prozess Stronghold.
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 

Dann geben wir bei Value den Wert 7100 ein und klicken auf First Scan. Jetzt zeigt uns CE links in der Listbox an, dass 10 Adressen gefunden wurden mit dem Wert 7100. (7100 ist ein exotischer Wert, deswegen findet er nur 10 Adressen :P, bei 1 oder 0 oder 100 o.ä. findet er schonmal 5000 Adressen). Aber mit 10 verschiedenen Adressen können wir ja nichts anfangen, also verändern wir in STC den Wert, indem wir einfach noch ein paar Soldaten kaufen.

So jetzt habe mir ein paar Soldaten gekauft, auf Pause gedrückt (Kürzel P in STC) und wieder CE geöffnet. Man sieht schon links in der Listbox welcher Wert es sein muss, da sich nur einer zu 6650 verändert hat, aber trotzdem will ich euch zeigen, wie man es richtig macht. Also gebt ihr jetzt bei Value den Wert 6650 ein und klickt auf Next Scan. Und siehe da, nur noch eine Adresse ist da. Jetzt könnte man STC nochmal maximieren und ein paar Soldaten kaufen, um zu testen, ob das auch wirklich der richtige Wert ist, aber das habe ich schon, und das ist der richtige Wert :P
So jetzt können wir den Wert aus der Listbox noch nach unten speichern, damit wir ihn besser 'bearbeiten' können. Dazu klicken wir eben einmal auf die Adresse und dann auf den Button mit dem roten Pfeil. Jetzt haben wir die Adresse unten drin. Zusätzlich können wir der jetzt noch eine ordentliche Beschreibung verpassen. Indem wir einen Rechtsklick draufmachen und dann auf "Change Record"->Description oder einfach ein Doppelklick auf "No Description". Ich habe es in meinem Beispiel in STC Money unbenannt.
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 

So, jetzt wollen wir uns noch einmal kurz 99999 Gold geben, umzu beweisen, dass euer Gelerntes auch alles funktioniert. . Doppelklickt dazu auf 6650 und gebt als neuen Wert 99999 ein und klickt auf OK. Jetzt öffnet STC und vóila.

Cheate Table sichern:
Ich würde die CT immer absichern, damit ihr beim nächsten Start von CE die Adresse nicht neu suchen müsst. Dazu klickt ihr einfach oben auf die Diskette und speichert die CT ab .

Der Trainer:
Alles was ihr braucht um den Trainer nun zu erstellen, ist die Adresse die wir gefunden habt. Es müsste 0x00D61208 für Gold sein. Anhand von
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 
könnt ihr nun den Trainer programmieren. Ich habe den komplette Sourcecode bei Rapidshare hochgeladen (sieh Ende des Posts), falls ihr Probleme haben solltet. Wenn es immer noch nicht funktionieren sollte, meldet euch einfach per PN oder Post.

Anmerkungen:
Ihr solltet das Spiel immer pausieren, damit der Wert nicht zufällig irgendwie geändert wird. Bei STC Gold ist das nicht das Problem, bei anderen Spielen oder bei STC Stein,Holz,etc. kann es aber zu einem werden. Die meisten Bilder habe ich als Thumbnail gepostet, bitte draufklicken, um sie in richtiger Größe zu sehen und die Links habe ich alle kursiv gemacht.
Dieser Post wurde vorgeschrieben mit dem
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 
. Danke an AGU.

Adress List:
Gold - 00D61208

Source Code:
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 


Der zweite Teil:
Im zweiten Teil, werden wir uns Holz, Stein, Gold, Nahrungsmitteln und allem anderen Kram widmen. Ihr könnt ja schonmal probieren, ob ihr es hinbekommt. Aber ich warne euch. Bei diesen gibt es eine andere Herangehensweise. Danke an alle die sich dies durchgelesen haben.


Visit hxxp://issen.tk

Jeix ist offline Mit Zitat antworten Antwort
 
DDLB-Elly
treue Memberin


Registriert seit:
26.06.2007
Beiträge:
228

Für Beiträge
bedankt:
326
Erhielt 194 Danke
für 79 Posts
Rang:
91

knoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäreknoob sorgt für eine eindrucksvolle Atmosphäre
knoob sorgt für eine eindrucksvolle Atmosphäre
Standard erstellt am: Gestern um 19:02

Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen.
Albert Einstein


3 User haben sich bedankt.

 
Nerd
Benutzerbild von Nerd@Work

Registriert seit:
20.03.2008
Ort: Silicon Valley
Alter: 18
Beiträge: 460
Für Beiträge bedankt: 426
Erhielt 511 Danke
für 107 Posts
Rang: 77
Nerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes AnsehenNerd@Work genießt hohes Ansehen
Nerd@Work eine Nachricht über ICQ schicken
 
Standard #2 (Link) erstellt am: 10.07.2008 um 17:56
kennste schon stronghold crusader extreme?


deviantart.com
Nerd@Work ist offline Mit Zitat antworten Antwort
 

 
C.der
Benutzerbild von Jeix

Registriert seit:
23.10.2007
Ort: Direkt hinterm Lüfter PIN 12
Beiträge: 310
Für Beiträge bedankt: 55
Erhielt 232 Danke
für 82 Posts
Rang: 36
Jeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes Ansehen
 
Standard #3 (Link) erstellt am: 11.07.2008 um 13:52
Joa, aber noch nie gespielt. Ist das gut?


Visit hxxp://issen.tk

Jeix ist offline Mit Zitat antworten Antwort
 

 
treuer Member

Registriert seit:
19.07.2008
Ort: Schömberg
Beiträge: 18
Für Beiträge bedankt: 0
Erhielt 0 Danke
für 0 Posts
Rang: 0
Eagle_6 befindet sich auf einem aufstrebenden Ast
 
Standard #4 (Link) Stronghold Extreme erstellt am: 19.07.2008 um 18:19
Es ist wie der Titel sagt Extreme xD also des is echt neme normal wie viele Soldaten da immer auf einen zu kommen muss man sich schon echt gut mit dem Spiel auskennen und vor allem schnell arbeiten sonst hat man da gleich verloren ... aber es macht echt spaß weil man selber auch so eine große Armee erschaffen kann xDhehe aber man sollte meiner Meinung nach erst den 1 Kreuzzug durchspielen um dann den neuen zu spielen

.... mfg Eagle_6
Eagle_6 ist offline Mit Zitat antworten Antwort
 

 
Member

Registriert seit:
29.08.2008
Beiträge: 6
Für Beiträge bedankt: 0
Erhielt 3 Danke
für 3 Posts
Rang: 0
Fr3eak wird schon bald berühmt werden
 
Standard #5 (Link) erstellt am: 29.08.2008 um 18:42
was mache ich falsch?? bin neu mit c++

// Stronghold Crusader Gold Trainer.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include <stdafx.h>
#include <iostream>
#include <windows.h>


#define PAUSE (system("pause>0")) // macro for later use

int _tmain(int argc, _TCHAR* argv[])
{
HWND hWnd = NULL;
HANDLE hGame = NULL;
DWORD dwProcessId = NULL;
int value = 0;

hWnd = FindWindow(0, "Crusader");
if (!hWnd)
{
std::cout<<"\n\nStronhold Process not found. Code: " << GetLastError();
PAUSE;
return 1;
}
GetWindowThreadProcessId(hWnd, &dwProcessId); // Get Process id
hGame = OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION, false, dwProcessId); // Open Process with id
if (!hGame)
{
std::cout<<"\n\nGame handle creation failed. Code: " << GetLastError();
PAUSE;
return 2;
}

std::cout<<"\n\nTrainer started.";

while(true)
{
// Sleep 50ms and save cpu power
Sleep(50);

if(GetAsyncKeyState(188) & 1)
{/* ',' is pressed */
ReadProcessMemory(hGame, (LPVOID) 0x00D61208, &value, sizeof(value), 0);
value += 1000;
WriteProcessMemory(hGame, (LPVOID) 0x00D61208, &value, sizeof(value), 0);
std::cout<<"\nAdded 1000 golds.";
}
if(GetAsyncKeyState(190) & 1)
{/* '.' is pressed */
std::cout<<"\nClosing trainer.";
break;
}
} //while

CloseHandle(hGame);
return 0;
}


kommt 1 fehler
Fr3eak ist offline Mit Zitat antworten Antwort
 

 
C.der
Benutzerbild von Jeix

Registriert seit:
23.10.2007
Ort: Direkt hinterm Lüfter PIN 12
Beiträge: 310
Für Beiträge bedankt: 55
Erhielt 232 Danke
für 82 Posts
Rang: 36
Jeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes Ansehen
 
Standard #6 (Link) erstellt am: 29.08.2008 um 18:58
Was für ein Fehler kommt denn?


Visit hxxp://issen.tk

Jeix ist offline Mit Zitat antworten Antwort
 

 
Member

Registriert seit:
29.08.2008
Beiträge: 6
Für Beiträge bedankt: 0
Erhielt 3 Danke
für 3 Posts
Rang: 0
Fr3eak wird schon bald berühmt werden
 
Standard #7 (Link) erstellt am: 29.08.2008 um 19:18
Geändert von Fr3eak (30.08.2008 um 00:04 Uhr). Grund: [B]MODEDIT:[/B] Bitte keine Doppelposts. ...

hasst du villeicht msn oder icq ich bin ein totaler c++ noob
MODEDIT: Bitte keine Doppelposts.

...
Bitte mach mal ein noobbiiii tut also von anfang an was fürne anwendung man nehmen muss usw
MODEDIT: Bitte keine Doppelposts.

...
Hat keiner n plan wies funzt o.O
Fr3eak ist offline Mit Zitat antworten Antwort
 

 
C.der
Benutzerbild von Jeix

Registriert seit:
23.10.2007
Ort: Direkt hinterm Lüfter PIN 12
Beiträge: 310
Für Beiträge bedankt: 55
Erhielt 232 Danke
für 82 Posts
Rang: 36
Jeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes AnsehenJeix genießt hohes Ansehen
 
Standard #8 (Link) erstellt am: 30.08.2008 um 12:00
Zitat:
Zitat von Fr3eak Beitrag anzeigen
hasst du villeicht msn oder icq ich bin ein totaler c++ noob
MODEDIT: Bitte keine Doppelposts.

...
Bitte mach mal ein noobbiiii tut also von anfang an was fürne anwendung man nehmen muss usw
MODEDIT: Bitte keine Doppelposts.

...
Hat keiner n plan wies funzt o.O
Wie lautet denn die Fehlermeldung, die du erhälst? Und womit hast du den Source versucht zu kompilieren?
Ich hatte eigentlich nicht vor ein "noobii tut" zu machen. Aber les dir das mal durch:
Links sind  nur für registrierte Mitglieder sichtbar.
INFO: Die Registrierung dauert nur ein paar Sekunden. 

 


Visit hxxp://issen.tk

Jeix ist offline Mit Zitat antworten Antwort
 

 
Member

Registriert seit:
29.08.2008
Beiträge: 6
Für Beiträge bedankt: 0
Erhielt 3 Danke
für 3 Posts
Rang: 0
Fr3eak wird schon bald berühmt werden
 
Standard #9 (Link) erstellt am: 30.08.2008 um 12:12
Also als erstes starte ich Visual c++ dann oben neues Project win 32 consolenanwendung und dann bei den einstellungen da noch auf leeres projekt. Danach gehe ich auf Projekt auf Neues Element zufügen dann auf c++ Datei. So und da füg ich das einfach ein aus deinem souce code. dann kommt aber die fehlermeldung beim debuggen:

1>------ Erstellen gestartet: Projekt: Stronghold, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>c:\users\marco\documents\visual studio 2008\projects\stronghold\stronghold\main.cpp(22) : error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [9]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Users\Marco\Documents\Visual Studio 2008\Projects\Stronghold\Stronghold\Debug\BuildLog .htm" gespeichert.
1>Stronghold - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Fr3eak ist offline Mit Zitat antworten Antwort
 

 
aka XPerience
Benutzerbild von UnlimitedPower

Registriert seit:
13.04.2007
Alter: 19
Beiträge: 291
Für Beiträge bedankt: 116
Erhielt 117 Danke
für 72 Posts
Rang: 19
UnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende ZukunftUnlimitedPower hat eine strahlende Zukunft
 
Standard #10 (Link) erstellt am: 30.08.2008 um 13:04
ersetz:
hWnd = FindWindow(0, "Crusader");
durch
hWnd = FindWindow(0, TEXT("Crusader"));

"Non vitae, sed scholae discimus."
Nicht für das Leben, sondern für die Schule lernen wir.
Seneca, Epistulae morales 106,12
UnlimitedPower ist offline Mit Zitat antworten Antwort
 



News   |   Board    |   Chat    |   Teamspeak    |   Team   |   Stuff    |   Partner   |   Archive

SEO by vBSEO 3.2.0


Umbau läuft (v4)