Seite 2 von 2

Verfasst: 20.08.2009 19:34
von Joel
RSBasic hat geschrieben:@Raphi
Du kannst eine Executable nur disassemblieren.

Aha, deswegen wird Windows 7 ständig geknackt.


Ne aber mal im ernst, wenn man das Auslesen kann, dann können die doch Windows grad OpenSource machen oder?

Verfasst: 20.08.2009 19:39
von DarkDragon
Joel hat geschrieben:
RSBasic hat geschrieben:@Raphi
Du kannst eine Executable nur disassemblieren.

Aha, deswegen wird Windows 7 ständig geknackt.


Ne aber mal im ernst, wenn man das Auslesen kann, dann können die doch Windows grad OpenSource machen oder?
Äh ja genau... weil man ja auch so gut da durchblickt ne? Der komplette Windows Quelltext hat soweit ich weiß einige Mio. Zeilen und das ganze ist ja kompilliert und assembliert.

Verfasst: 20.08.2009 19:45
von Thorium
Joel hat geschrieben:
RSBasic hat geschrieben:@Raphi
Du kannst eine Executable nur disassemblieren.

Aha, deswegen wird Windows 7 ständig geknackt.


Ne aber mal im ernst, wenn man das Auslesen kann, dann können die doch Windows grad OpenSource machen oder?
Source und Assemblercode sind nicht das gleiche. Selbst wenn das Programm ursprünglich in Assembler geschrieben wurde. Logischerweise können keine Variablennamen, Procedurenamen, ect. rückübersetzt werden. Nun Versuch mal nen Sourcecode nachzuvollziehen mit mehreren Millionen Zeilen und Variablennamen die einfach nur durchnummeriert sind.

Allerdings hast du nicht ganz unrecht. Um ein Programm zu knacken, wird es disassembliert und analysiert. Wobei die Kunst nicht ist den Code zu manipulieren. Das ist simpel. Die Kunst besteht darin die Codeteile zu finden, die einen interessieren.

Abseits von Cracks gibt es auch andere Einsatzmöglichkeiten. z.B. gibt es inoffizielle Patches zu Spielen und Applikationen, die von Usern erstellt werden. Ich selbst habe einen Patch für Sacred Underworld erstellt, der Änderungen am Programmcode vornimmt.

Verfasst: 20.08.2009 19:55
von jojo1541
Als Sacredspieler muss ich jetzt einfach mal fragen, was dein Patch bewirkt.

Verfasst: 20.08.2009 20:14
von Joel
Thorium hat geschrieben:
Allerdings hast du nicht ganz unrecht. Um ein Programm zu knacken, wird es disassembliert und analysiert. Wobei die Kunst nicht ist den Code zu manipulieren. Das ist simpel. Die Kunst besteht darin die Codeteile zu finden, die einen interessieren.
Ja genau das meine ich. Wenn ich ein Windows Spiel knacken will, dann wäre das "vorausgesetzt" ich verstehe diese Sprache relativ einfach zu knacken bzw. meine Punkte zu ändern. Und so könnten das ja auch die Windows Hacker machen. die Gucken sich zwar nicht dne ganzen code aber, aber ich denke mal, die haben auch Ideen, wie man das richtige Dll findet...

Verfasst: 20.08.2009 21:52
von Thorium
jojo1541 hat geschrieben:Als Sacredspieler muss ich jetzt einfach mal fragen, was dein Patch bewirkt.
Hier kann man den Patch runterladen: http://www.sacredvault.org/forum/index. ... ;dl=item34
Versionsnummer 2.29.14
Inoffizieller Patch für Sacred Underworld

Nach dem Patchen befindet sich eine Datei Namens Sacred_Old.exe im Sacred Underworld-Verzeichnis. Das ist die originale 2.28 Version.

Es ist möglich, mit der 2.29 Version im Closed A.Net zu spielen.

Änderungsliste

* Sacred.exe Crash im Multiplayer behoben, nähere Angaben siehe unten
* Multiinstancing, Sacred lässt sich mehrfach starten
* Global.res wird nun von der Festplatte geladen, ermöglicht Textänderungen durch Mods
* Beim Fensterwechsel bleibt das Sacred-Fenster nun voll funktionstüchtig. Das heisst, man kann nun z.b. in der Lobby stehen, den Chat mitlesen und dabei in einem anderen Fenster etwas anderes machen.

Hinweise zum Sacred.exe Crash-Fix
Dieser Fix ist eine Symptombekämpfung. Das eigentliche Problem besteht jedoch weiterhin und verhindert lediglich den Crash. Es kann nun passieren, dass Texte oder Teile von Texten im Multiplayer-Modus manchmal nicht dargestellt werden. Und zwar dann, wenn Sacred eigentlich crashen würde. Das heißt, es kann vorkommen, dass Chatnachrichten nun nicht oder unvollständig ankommen. Man kann aber normal weiterspielen. Sacred kann in seltenen Fällen immer noch abstürzen. Dabei handelt es sich allerdings um ein anderes Problem.

Ist das Erzeugen der Logdatei in Sacred aktiviert, so wird folgende Zeile jedes Mal in die Debug.log geschrieben wenn ein Crash verhindert wurde: Sacred.exe Crash fixed!
Es sind noch weitere interne Änderungen vorgenommen worden, die nicht in der Changelog erwähnt sind wie das die Cheatcodes entfernt wurden und ein Freez im zusammenhang mit Debuggern behoben wurde.

Dann hab ich noch einen Patch für den Gameserver von Sacred Underworld gemacht. Der behebt ein Problem, welches bei Multicore CPU's auftreten kann. Hast du einen Multicore und der Gameserver bleibt beim Starten hängen oder kein Client kann sich zu deinem Gameserver verbinden sollte dieser Patch abhilfe schaffen: http://www.sacredvault.org/forum/index. ... ;dl=item31

Und wenn du hier nach Sacred suchst, findest du auch ein paar Codes von mir. :wink:

Verfasst: 20.08.2009 21:55
von Raphi
Um die Punkte zu ändern, brauchst du nicht gleich den code zu Knacken.
Daszu brauchst du einfach ein kleines cheat-Programm

Verfasst: 20.08.2009 22:03
von Thorium
Raphi hat geschrieben:Um die Punkte zu ändern, brauchst du nicht gleich den code zu Knacken.
Daszu brauchst du einfach ein kleines cheat-Programm
Und was meinst du was die Cheat-Programme machen? :wink:
Meist kann man einfach die Variablen im Speicher ändern. Aber nicht immer. Vorallem nicht, wenn die Variablen dank "Dynamic Memory Allocation" bei jedem Spielstart an einer anderen Adresse sind.

Es ist üblich den Programmcode zu ändern, wenn man einen Trainer macht.
In dem Fall kommt man auch in den meisten Fällen sehr leicht zu den Codeadressen, wo man rumpfuschen muss.
Einfach mit einem Memory Scanner die Adressen suchen, z.B. von der Lebensenergie. Dann mit einem Debugger einen Memory-Breakpoint drauflegen und nurnoch warten bis der Debugger das Programm anhält und zeigt welche Instruktion auf den Speicher zugegriffen hat.

Verfasst: 20.08.2009 22:21
von X360 Andy
Thorium hat geschrieben: Vorallem nicht, wenn die Variablen dank "Dynamic Memory Allocation" bei jedem Spielstart an einer anderen Adresse sind.
Und wie macht man das dann bei den die das nutzen ?
Nicht jedes modern Spiel ( Dat neuste C&C / Far Cry kann man teils wunderbar auslesen und patchen) nutz diese Technik.

Vorher den Programcode der die Dynamic Memory Allocation Variablen erzeugt raus Patchen oder wie ?

Verfasst: 20.08.2009 22:32
von Thorium
X360 Andy hat geschrieben: Vorher den Programcode der die Dynamic Memory Allocation Variablen erzeugt raus Patchen oder wie ?
Nicht unbedingt. Man brauch ja nur den Code Patchen der die Variable ändert. Wie der auf diese zugreift spielt ja keine Rolle.

Für weitere Fragen zum Gamehacking kann man auch hier mal vorbeischauen: http://www.gghz.de.vu/
Die haben da einige Tutorials.