Entwickler-Ecke
Sonstiges (.NET) - c# Memory Reading
Flop - Di 16.06.09 15:00
Titel: c# Memory Reading
Hallo,
ich wollte fragen ob einer von euch ein kleinen code posten könnte der zeigt, wie man offsets in einem label zeigt. Z.B. mann hat den offset wert von der "hp" zahl einer "Spielfigur". Wie kann ich jetzt die HP im label darstellen ?
mfg
Moderiert von
Kha: Topic aus IO, XML und Registry verschoben am Di 16.06.2009 um 20:04
Greenberet - Di 16.06.09 15:10
Thread Titel und deine Frage sind nicht ganz das gleiche.
Willst du jetzt wissen wie man Offset hacking betreibt, wie man generell Ram Daten ausliest oder wie man eine Zahl in einem Label anzeigt?
Flop - Di 16.06.09 17:46
Also ... ich nehme jetzt mal das böse spiele "counter strike..." . Ich habe den offset wert von meiner hp erfolgreich rausgesucht und möchte sie in einer c# umgebung in einem label wiedergeben. Sowas wie eine Trainshow.
JüTho - Di 16.06.09 19:34
Was ist eine Trainshow? Nicht einmal Wikipedia erläutert das.
Labels gehören je nach Verwendung zu
WinForms oder
WebForms (ASP.NET und Web).
Meinst du mit "hp" oder "HP" deine Homepage?
Wenn du "den offset wert von meiner hp erfolgreich rausgesucht" hast, dann steht er doch wohl in einer
int-Variable. Für die Anzeige "in einem Label" benutzt man die Eigenschaft
Text, der etwas zugewiesen wird; um "irgendetwas" (z.B. auch einen int) in einen String zu verwandeln, gibt es für jedes Objekt die
ToString-Methode.
Vorschlag: Du arbeitest dich erst einmal richtig in C# ein, z.B. mit dem
OpenBook Visual C# [
http://openbook.galileocomputing.de/visual_csharp/] und überlegst dir dann die Frage neu; vielleicht lernst du dabei auch die Benutzung der SDK-Doku/MSDN. Bitte berücksichtige auch das korrekte Unterforum.
Ein
Moderator sollte diese Diskussion hier schließen, weil Fragestellung, Überschrift und Unterforum nicht zusammenpassen und deshalb nicht zu einer vernünftigen Lösung führen können.
Jürgen
Greenberet - Di 16.06.09 20:01
Flop hat folgendes geschrieben : |
| Also ... ich nehme jetzt mal das böse spiele "counter strike..." . Ich habe den offset wert von meiner hp erfolgreich rausgesucht und möchte sie in einer c# umgebung in einem label wiedergeben. Sowas wie eine Trainshow. |
Trainshow kA was das ist...
Aber wenn du das offset schon hast wo liegt dann das genaue Problem?
Base+Offset = dein Wert
Base ist die Einstigsadresse, in deinem Fall Prozessadresse. Ich würd an deiner Stelle da allerdings aufpassen VAC mag solche "hacks" nicht, auch wenn sie nur lesen ;)
Btw. falls du vorhast dir nen "Unsterblichkeitscheat" zu basteln, kannst dus gleich wieder vergessen. Solang du nicht der Server bist hast du nur die Kontrolle welcher Wert im HUD angezeigt wird und nicht was wirklich verwendet wird.
Als Entwickler eines
HL-Mods [
http://www.esforces.com/] hab ich ein "wenig" Ahnung wie das ganze funktioniert ;)
JüTho hat folgendes geschrieben : |
| Meinst du mit "hp" oder "HP" deine Homepage? |
damit meint er HealthPoints
Kha - Di 16.06.09 20:03
JüTho hat folgendes geschrieben : |
| Ein Moderator sollte diese Diskussion hier schließen, weil Fragestellung, Überschrift und Unterforum nicht zusammenpassen und deshalb nicht zu einer vernünftigen Lösung führen können. |
Das Label ist mehr als nebensächlich, im Kern geht es hier um
READPROCESSMEMORY.
@Flop: Ein ausführlicher Artikel über das Thema:
http://www.codeproject.com/KB/trace/minememoryreader.aspx
Flop - Di 16.06.09 20:38
Also ich fang mit der Trainshow an^^ Ich hoffe ihr kennt WoW "World of Warcraft". Wenn ihr dort "Bottet" und grad bei youtube etc. seit und nicht immer zum game wechseln wollt um zu gucken ob euer char(Spielfigur) noch lebt oder sonst was ist, gibt es kleine programme "Trainshows" die , die hp (Health point (leben)) mana, gold etc. anzeigen.
Ich wollte auch mal so eine Trainshow (Programm) schreiben was meine hp (leben) mana anzeigt. Nur weiß ich nicht was ich mit den offsets machen soll.
Mfg
Greenberet - Mi 17.06.09 10:34
Dann würd ich sagen lies dir meinen Post nochmal durch und dazu den von
Kha.
Meiner erklärt die Technik selbst wie dus angehen musst, und
Kha sein post erklärt wie du auf den Speicher zugreifst.
Btw. in C++ wär dein vorhaben um einiges leichter^^
FragSalat - Mo 10.08.09 21:00
für solche games gibt es spezielle klassen wo du einfach nur in ne datei basepointer offset und byte größe des wertes angibst und dann kannst du dir das ausgeben lassen als string
so z.b. sieht das lesen des wertes aus
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Offset curHP = Offset.GetByTag("CurHp");
byte[] arrayCurHP = curHP.Read();
int intCurHP = Offset.ConvertToInt32(arrayCurHP);
string strCurHP = Convert.ToString(intCurHP); |
label2.Text == strCurHP;
natürlich musst du da vorher erst den prozess noch auswählen der gelesen werden soll udn das offset file wo die pointer + offsets drin stehen
aus rechtlichen gründen kann ich dir meine klasse leider nicht geben da mein kumpel damit gewiss nicht einverstanden ist das seine arbeit 4 free rumwandert aber jetzt weißte ja wonach du suchen kannst
MfG Fragsalat
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!