Seite 1 von 3
Assembler code editieren
Verfasst: 15.12.2011 01:12
von deify
Hi Leute,
Ich habe folgendes Problem, ich würde gerne eine Assemblerzeile aus einem Programm modifizieren.
Ich gebe ganz offen zu um was es mir hierbei geht. Ich habe vor einen NOCD-Patch für ein Spiel zu schreiben, bevor ich jetzt verhöhnt werde ob das denn illegal sei oder nicht, würde ich gerne sagen, dass das Spiel von 2003 ist und der sourcecode bereits zum entwickeln freigegeben ist. Hierbei sollte also keinerlei Problem bestehen.
Desweiteren würde mich diese Methode des editieren einer .exe interessieren um einfach mods per JMP-Fixes etc zu schreiben, was in diesem spiel sehr leicht möglich ist.
Ich freue mich auf eure Hilfe.
Mfg deify
Re: Assembler code editieren
Verfasst: 15.12.2011 01:21
von Bisonte
Da man das ganze auch für andere Programme nutzen kann, wirst du wohl auf öffentlich Hilfe verzichten müssen...
Re: Assembler code editieren
Verfasst: 15.12.2011 01:24
von deify
wenn mir jemand infos dazu geben kann, gerne auch per PM oder via email (
deify73@web.de)
ich dachte eigentlich, dass es generell nicht das problem sein sollte, da es hierbei ja lediglich um eine möglichkeit geht, die sowohl positiv, als leider auch negativ genutzt werden kann wie auch dll injection z.b. ... leider finde ich hierzu nichts verwertbares mit dem freund google
EDIT:
Ok generell ist es mir eigentlich klar geworden, nachdem ich mich etwas in olly umgesehen habe.... nun eine frage, die doch eher hier behandelt werden könnte.
Wie berechne ich das fileOffset anhand einer gegebenen Adresse im Speicher? Muss ich GetModulehandle() von dieser adresse subtrahieren? erhalte ich somit das byte an der gewünschten stelle?
Freue mich über info (:
mfg deify
Re: Assembler code editieren
Verfasst: 15.12.2011 03:39
von Bisonte
Also um Speicherstellen auszulesen, benutze ich ReadProcessMemory_()
Also erstmal die ProcessID ermitteln,
dann per OpenProcess_() die StartAdresse des Arbeitsspeichers des Programmes holen.
Dann kann man mit ReadProcessMemory auf die Daten zugreifen, wobei die Rechte die bei
OpenProcess_() mit angegeben werden, wichtig sind. Allerdings gibt es auch "Protected
Memory", will sagen, dass man da nicht so ohne weiteres rankommt.
Nun hast du einen "OffSet" und mittels Peek holst du dann die Werte raus ...
Meistens sind die OffSets Pointer auf die wahre Speicherstelle, sodass man erst den Pointer
holt und dann den Wert ausliest.
Schreiben dürfte mit Poke (wiederum Rechte beachten) funktionieren.
Auf diese Weise hab ich damals das Silkroad Applet gebaut. Wobei ich mich da nur auf lesen
beschränkt habe.
Re: Assembler code editieren
Verfasst: 15.12.2011 06:50
von ts-soft
deify hat geschrieben:bevor ich jetzt verhöhnt werde ob das denn illegal sei oder nicht, würde ich gerne sagen, dass das Spiel von 2003 ist und der sourcecode bereits zum entwickeln freigegeben ist. Hierbei sollte also keinerlei Problem bestehen.
Auch der freigegebene Sourcecode macht das patchen der Orginal-Exe nicht legaler, in keinster Weise!
Wie kommt Ihr immer auf solche Ideen? Genau genommen ist bereits das Debuggen illegal.
Den freigegebenen Source kannst Du verwenden, nach den Lizenzbedingungen des Sources, das wirkt sich aber
nicht auf die Orginal-Kompilate aus.
Naja, einen Kläger wird es wahrscheinlich nicht geben, aber legaler wird es dadurch trotzdem nicht!
Gruß
Thomas
Re: Assembler code editieren
Verfasst: 15.12.2011 07:39
von Danilo
Da Du das Spiel gekauft hast und es wegen dem dummen Kopierschutz (enthält einen Treiber)
nun auf neueren Windows-Versionen nicht mehr nutzen kannst, solltest Du mal auf
gamecopyworld.com schauen. Da gibt es Hilfe für solche Fälle. Du hast ja das Original gekauft,
da wirst Du wohl keine 25 Jahre Knast bekommen, da Du nur Dein Recht auf Nutzung des
bezahlten Produktes durchsetzt.
Re: Assembler code editieren
Verfasst: 15.12.2011 08:38
von ts-soft
Danilo hat geschrieben:da Du nur Dein Recht auf Nutzung des bezahlten Produktes durchsetzt.
Das "Recht" schließt sicherlich keine neueren Windows-Versionen ein, sondern nur die, für die das
Produkt verkauft wurde.
Wo kein Kläger, kein Angeklagter, aber die Worte "Legal" (ursprungsposting) und "Recht" sind hier eindeutig fehl am Platz

Re: Assembler code editieren
Verfasst: 15.12.2011 09:30
von NicTheQuick
ts-soft hat geschrieben:Danilo hat geschrieben:da Du nur Dein Recht auf Nutzung des bezahlten Produktes durchsetzt.
Das "Recht" schließt sicherlich keine neueren Windows-Versionen ein, sondern nur die, für die das
Produkt verkauft wurde.
Das ist doch Blödsinn. Nur weil mein Lieblingsdrucker für Windows 7 keine Treiber mehr zur Verfügung stellt, werde ich mir keinen neuen Drucker kaufen, wenn ich in der Lage bin mir die Treiber selbst zurecht zu biegen. Privat kann man so einiges machen. Man darf es eben nur nicht veröffentlichen. Ich umgehe auch gerne mal den Kopierschutz einer Audio-CD, wenn mein CD-Player im Auto sie so nicht lesen mag. (Kam wirklich schon vor).
Also man kann auch übertreiben...

Re: Assembler code editieren
Verfasst: 15.12.2011 09:40
von ts-soft
>> Also man kann auch übertreiben...
Mir geht es um die Begriffe: Legal und Recht. Weil es ist weder Legal noch hat man ein Recht darauf!
Der Rest ist mir wurscht

Re: Assembler code editieren
Verfasst: 15.12.2011 09:58
von Danilo
Ich denke auch das ein Gericht jemanden in der Praxis nicht schuldig sprechen wird,
wenn er ein legal erworbenes und somit bezahltes Spiel nach ein paar Jahren wieder
zum laufen bringt indem er einen NoCD Patch verwendet.
Dabei geht es nicht um Diebstahl, sondern eben wirklich darum Deine Nutzungsrechte
in Anspruch zu nehmen. Ich als Kunde habe nicht nur Verbote einzuhalten, sondern habe
auch Rechte. Das wollen die Softwarehersteller nicht hören, aber ein ordentliches Gericht
würde das sicherlich bestätigen, wenn es zu einer Anklage käme. Ich habe allerdings auch
noch nie gehört das Jemand angeklagt wurde, weil er eine gekaufte Software auf einem
neueren OS für sich privat wieder zum laufen gebracht hat.
Ich hatte vor kurzem den ganz konkreten Fall das ein Spiel nicht mehr lief. Ein DirectX 9.0c
Spiel, das eigentlich noch laufen müßte. Nach der Installation mit anschliessendem Reboot
weigerte sich Windows zu starten, weil der alte Kopierschutztreiber nicht zertifiziert sei.
Das ist schon eine Frechheit, ein Spiel so zu verkrüppeln, das man es wegschmeissen kann,
wenn man auf ein neueres OS upgraded, obwohl das Spiel selbst noch laufen sollte.
Da ist man als zahlender Kunde wieder der Arsch.