Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Guides & Templates
You last visited: Today at 16:58

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[HowTo/Release] Memory durchsuchen und Referenzen finden

Discussion on [HowTo/Release] Memory durchsuchen und Referenzen finden within the Metin2 Guides & Templates forum part of the Metin2 category.

Reply
 
Old   #1
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
[HowTo/Release] Memory durchsuchen und Referenzen finden

Hey Leute, ich bins mal wieder

Dieses Mal jedoch mit einem kleinen "Progrämmchen" für die Programmierer unter euch..

Ich hab für die Analyse einer P-Server-Exe ein kleines Programm geschrieben, das nach den Referenzen auf eine bestimmte Adresse sucht
Z.B. von wo aus eine Adresse 0xXXXXXXXX gecallt/gepusht/gejumpt wird

Dazu hab ich 2 Funktionen geschrieben, einmal
Code:
void* SearchByteArray(unsigned char* searchstr, DWORD startaddr, DWORD endaddr, DWORD len);
sowie
Code:
void GetReferenceArray(unsigned char* refbyte, DWORD refaddress, unsigned char typebyte);
Die erste Funktion sucht ein Array von unsigned chars im Memory von Start- zu Endadresse, die 2. Funktion wandelt die gefundene Adresse in ein unsigned char-Array um, welches dann gesucht werden kann

So gesehen wird also die 2. Funktion vor der ersten benutzt

Die vollständige Headerdatei mitsamt Dokumentation gibts hier:

Nur kurze Erklärung:
Wenn man GetReferenceArray eine Adresse 0x11223344 übergibt und das ganze als PUSH haben möchte, sieht das übergebene Byte-Array so aus:
0x68, 0x44, 0x33, 0x22, 0x11

Da mich diese Funktionen etliches an Arbeit (und Hilfe/Nerven von tim66613) gekostet haben, gibts den Code davon nicht, ich hab euch aber eine minikleine (730 Byte) große statische Bibliothek gebaut, die ihr verwenden könnt

Im Anhang ist das Code::Blocks-Projekt, die fertige (bereits kompilierte) DLL für alle die nur kurz testen wollen sowie ein kleiner Beispiel-Code
Das Projekt sollte mit der neuesten Code::Blocks-Version (10.05) problemlos zu öffnen sein

Ich hoffe ich erreiche hier den ein oder anderen der es brauchen kann

Scheut euch nicht zu fragen (keine WAS ISD DAS WAS KAN DAS - Fragen, vernünftige!)

Update 13.11.2011:
Habe soeben eine neue Funktion eingebaut, namens "SearchByteArrayWC"
Diese Funktion nimmt als 5. Parameter ein unsigned char-Array.
Mit diesem Array kann man eine Wildcard-Funktion realisieren... ein Beispiel zur Veranschaulichung:
Code:
unsigned char searchbytes[5] = {0x90, 0x90, 0x90, 0x90, 0x90};                                
unsigned char mask[5] = {1, 1, 0, 0, 0};                                                      
void* address = SearchByteArrayWC(searchbytes, 0x400000, 0x700000, sizeof(searchbytes), mask);
searchbytes ist klar, das ist das Array nach dem gesucht werden soll
mask erkläre ich jetzt: eine 1 steht für überspringen, eine 0 steht für vergleichen.
Wenn also in mask eine 1 an einer Stelle steht, wird das zugehörige Byte in searchbytes einfach übersprungen, ohne es zu vergleichen
Ist beschissen zu erklären, aber ich hoffe es ist einigermaßen verständlich...
Das macht die Funktion viel flexibler, da dynamische Adressen jetzt einfach übersprungen werden können, statische Teile jedoch gewertet werden. Damit muss man nicht mehrmals hintereinander suchen (mein bisheriger Workaround) sondern kann es in einem erledigen


Ps: Das Passwort für beide Archive ist Padmak, Virustest gibts hier:




Padmak
Attached Files
File Type: zip memsearch_epvp.zip (181.6 KB, 68 views)
File Type: zip memsrch_epvp_wc.zip (187.3 KB, 44 views)
Padmak is offline  
Thanks
14 Users
Old 11/05/2011, 19:31   #2
 
Kugelsicher's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 590
Received Thanks: 201
Kann ich gebrauchen, danke
Kugelsicher is offline  
Old 11/05/2011, 22:52   #3
 
F.R.E.E's Avatar
 
elite*gold: 306
Join Date: Feb 2011
Posts: 1,251
Received Thanks: 597
Danke, sowas hab ich echt mal gebrauchen
F.R.E.E is offline  
Old 11/06/2011, 08:22   #4
 
Daaaft's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 890
Received Thanks: 222
Padmak leistet einfach immer gute arbeit
Daaaft is offline  
Old 11/06/2011, 10:05   #5
 
elite*gold: 0
Join Date: Jan 2009
Posts: 72
Received Thanks: 24
sowas hab ich gesucht, danke
mastex is offline  
Old 11/06/2011, 15:35   #6
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Ihr könnt auch gerne Anfragen stellen, was ich noch schreiben könnte
Also könnt ihr bei mir gern solchen Code bestellen, ich machs gerne
Voraussetzung ist allerdings, dass das ganze public werden muss (hier im Thread am besten)

Padmak
Padmak is offline  
Old 11/13/2011, 19:26   #7

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Danke für die Funktion.
Hab inzwischen verstanden wofür es zu gebrauchen ist und es ist wirklich sehr nützlich
Super Arbeit wie immer. Go on! ;D
Computerfreek is offline  
Old 11/13/2011, 19:42   #8
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Hab das ganze jetzt mal ein bisschen erweitert, jetzt auch mit Wildcardunterstützung
Näheres im Startbeitrag bzw. in der im Archiv enthaltenen Headerdatei
Die DLL im Archiv hab ich nicht erneuert, war zu faul

Padmak
Padmak is offline  
Old 11/13/2011, 21:04   #9
 
elite*gold: 0
Join Date: Aug 2009
Posts: 262
Received Thanks: 45
ich weiß die frage ist jetzt echt dumm aber wie benützt man das? :S
derwahrehuy is offline  
Old 11/13/2011, 22:19   #10
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Dafür musst du Programmieren können... das kannst du aber denke ich eher nicht soo ganz

Padmak
Padmak is offline  
Reply


Similar Threads Similar Threads
[Hilfe] Werte von Spielen in Memory finden
03/12/2011 - General Coding - 0 Replies
So und zwar ich hab schon öfters mit cheat engine, ollydbg und IDA pro rumgespielt, mit eher mäßigen Erfolg^^ Mit Cheat Engine In einem Spiel die Adresse zu finden, in der die aktuellen healthpoints gespeichert sind bekomme ich noch hin.:D ABER sobald es etwas schwieriger wird z.B. die Adressen suchen wo die monster positionen in der näheren Umgebung gespeichert sind scheint dies unmöglich für mich. Ich weiß dabei einfach nicht nach was ich suchen soll:confused:
[Q] Memory Adressen finden ohne UCE
03/31/2010 - Kal Online - 15 Replies
Hallo! Mein eigentlicher Plan: Ich will einen Bot schreiben (mit Auto-It, kein Packet Bot) der HP, Mana, Monsterposition etc. aus dem Speicher ausliest und nutzt. Soweit ich weiß, kann Auto-It aus dem Speicher lesen, solange die Adresse bekannt ist. Mein Problem: Wie finde ich die Adressen? Mit der UCE suchen fällt für mich weg, da ich 1.) Keine UCE habe, 2.) der Rootkit Trick gefixt ist, 3.) Ich nicht ohne weiteres ne eigene UCE basteln kann. Meine Idee: Einen PServer aufsetzen, die...
hp memory adresse finden
10/27/2007 - Kal Online - 11 Replies
.



All times are GMT +2. The time now is 16:58.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.