Viele Fragen....=)

12/26/2010 00:19 .AllForOne.#1
Hey
So ich habe da mal einige Fragen.
Warum eignet sich c# nicht für hackprogrammierung wo man den Stack Auslesen muss und ihn auch verändern muss. Alle sagen c++ aber richtige Gründe kommen nie. Memory Read c# googeln kommt einiges.....
2.Frage
Ich möchte einen Switch-bot für metin2 schreiben. Nur ich weiß nicht wie das grundgerüst funktionieren soll. Das Tutorial von Waffeleisen über useitemfunktion finden hab ich schon verfolgt. Assembler kann ich die Grundlagen. Nur was ich im Stack Auslesen soll und überhaupt herangehendweise hab ich keine Ahnung.

Freue mich auf qualitativ gute antworten


MfG afo
12/26/2010 04:00 Akorn#2
Quote:
Warum eignet sich c# nicht für hackprogrammierung wo man den Stack Auslesen muss und ihn auch verändern muss. Alle sagen c++ aber richtige Gründe kommen nie. Memory Read c# googeln kommt einiges.
C++ ist eine Pogrammiersprache dessen quellcode direkt in Maschienencode umgewandelt wird. C# dagegen ist eine .net sprache und dessen quellcode wird beim kompilieren in bytecode umgewandelt. Der Wesentliche unterschied zwischen Maschienencode und bytecode ist das Maschienencode direkt vom Prozessor verarbeitet werden kann, bytecode dagegen kann der Prozessor nicht verarbeiten desshalb muss dieser noch nachträglich in maschienencode umgewandelt werden.

Und um den stack an einer bestimmten stelle auszulesen z.b. die parameter oder die loaken Variablen eine funktion sollte man die entsprechende funktion hooken. Dazu wird in der funktion( an dessen parameter oder Variablen man will) an gewünscher stelle zu einer eigenen selbstgeschriebenen funktion gesprungen. In der eigenen Funktion kann man dann entsprechend den stack auslesen und verändern.
Da das Opferpogramm(dessen funktion man hooken will) meistens auch in Maschienencode verliegt sollte man eine sprache benutzen die ebenfalls maschiencode erzeugt. Da es nicht funktionieren würde wen man von der funktion die man hookt auf eine eigene funktion die in bytecode vorliegt springt.

Wenn mein text nicht so perfekt ist liegt es nur daran das es so spät ist ;)
12/26/2010 11:47 .AllForOne.#3
Kennt da jemand gute Tutorials? Und wie muss mein programm jetzt grob aussehen?
12/26/2010 12:39 hallamasch#4
Akorn hat schon recht.

Es gibt allerdings auch die Möglichkeit, sich nen Injector in C/C++ zu schreiben der für einen das Netframeworw nachlädt.

Eventuell muss man auch noch kleine Wrapper funktionen in C/C++ schreiben, die dann vom IL Code (C#/VB) verarbeitet werden.

Aber einfacher ist es das dann direkt in C++ zu schreiben, Je nach komplexität macht es aber auch sinn .net zu verwenden.
12/26/2010 16:12 .AllForOne.#5
Ok dann schreibe ich ihn in c++ mit .Net.
Kennt jemand ein tut für Umsteiger von c# in c++?
Und wie muss ich weiter vorgehen? Wie kann ich herausfinden welches Item im Inventar zum Bonus switchen ist und wie kann man es bewegen und den Bonus dann Auslesen. Gibt es da im Client schon Funktionen? Kann ja die exe dissassemblen und dann schauen dann den Assembler Code einbauen. So etwa wie im tut von Waffeleisen