Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 17:42

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

Advertisement



[ASM] Eine Frage bezüglich Konstanten?

Discussion on [ASM] Eine Frage bezüglich Konstanten? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
[ASM] Eine Frage bezüglich Konstanten?

Also ich hätte da mal eine grundsätzliche Frage dazu wassich allein mit Olly noch machen könnte.

Quote:
Ist es Möglich einen Variierenden String in ein Programm zu schläusen und eine Funktion dann immer diesen String beziehen zu lassen.

Als kleines Beispiel stellt euch eine Chat-Funktion vor.
Diese holt sich denn immer die Nachricht aus einem Bestimmten Register.
Nehmen wir mal an EDX verweißt auf die String Variable.

Ist es nun möglich eine String Variable im Clienten zu hinterlegen so das ich diese dann statt der anderen Variable in EDX Moven kann ??

Das alles ohne Externes Modul sprich eine DLL weil damit ist mir klar dasses möglich ist aber mein C++ mag mich nochnicht soganz weshalb ich mich noch auf das Patchen mit Olly begrenze.
Edit:

Quote:
Oder mussich dazu wirklich in C++ ne DLL schreiben die dann eine Detourfunction setzt und mir dort eine Variable anlegen die ich ausgeben kann und das Register dann in die Lokale Variable Moven ??

P.S:
Quote:
Ne Frage am Rande könnt ihr mir eine gute Umgebung empfehlen um eine GUI für ein C++ Tool zu Basteln denn das bereitet mir in C++ momentan am meisten Kopfzerbrechen. Mit Visg geht es zwar ganz gut aber wenn ich etwas umfangreichere GUIs erstellen will spackt es rum.

Und wennich die GUI direkt in VC++ erstelle dann tauchen ohne ende Definitions Fehler auf.

Und ich weiß nichtmal wonach ich da genau Googlen soll deswegen schmeiß ich diese Frage nochmal mit in den Raum :P

Bin im moment noch so sehr an das einfache VB.Net gewöhnt
Die Zitat-Tags sollen es nur übersichtlicher machen :P
Atzenkeeper is offline  
Old 12/21/2011, 13:37   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Du kannst auch mit olly detouren, das ganze nennt sich dann codecave.

schrei da halt nen jump zu einer codecave hin, da führst du die überschriebenen instructions aus, movst den gewünscht wert in EDX und jumpst zurück
MrSm!th is offline  
Old 12/21/2011, 16:17   #3
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Ja das das geht weiß ich schon das habe ich auch schon öfters gebraucht.
Nur ich hab immer das Problem wenn mein Gewünschter Wert nicht zu finden ist ihn selbst zu Deklahieren.

Aber da gibt es sicher auch irgend eine Möglichkeit.
Bei der Methode die du beschrieben hast muss ich meist aber auch den Code den ich mit dem Jump überschreibe an der neuen Stelle mit eintragen und dann meinen Code dazu und dann halt am ende wieder ein Jump zu dem was als nächstes käme.

Hat bis jetzt immer ganz gut geklappt.
Aber mein problem ist es ja ich will einen bestimmten String z.b. in einem Register hinterlegen den ich aber so im Clienten noch nicht beziehen kann.

Also dassich selber einen Konstanten String im Clienten hinterlegen kann ô.o#

Mein Zweites Problem war halt eine Zahl die an bestimmten Punkten in den Registern steht die leider so nicht über Memorys auszulesen ist. Auslesbar zu machen.
Atzenkeeper is offline  
Old 12/21/2011, 16:50   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
hab ich doch gesagt o.ô

ja, dann packst du den string halt da rein. gibt ja tools, die können einem codecaves einfügen, da gibts auch sicher tools, die fügen einem neue daten in die data section.

ansonsten müsstest du dich selbst ein bisschen mit dem PE format und sections auseinandersetzen und einen string hinzufügen.

ich hab es bisher immer so gemacht, dass ich den string selbst irgendwo per olly eingefügt habe. du kannst ja code patches vornehmen und gleichzeitig auch binary.

ich hab mir also eine codecave gesucht, die groß genug war und erst den string / die daten dort eingefügt (einfach die stelle nicht im asm fenster, sondern im dump fenster editiert) und danach den code und da dann auf den string verwiesen.

würde ich aber von abraten, denn normalerweise ist die protection der code section nur auf execute gesetzt, es könnte also eine access violation auslösen, wenn die zielfunktion dann versucht, die daten an der stelle einzulesen.
MrSm!th is offline  
Old 12/21/2011, 17:40   #5
 
elite*gold: 0
Join Date: Nov 2009
Posts: 343
Received Thanks: 45
Natürlich ist das möglich. Wie MrSm!th schon gesagt hat, brauchst du dazu eine CodeCave oder wenns past, kann du ja direkt den Befehl verändern.

MfG
yihaaa is offline  
Old 12/21/2011, 18:08   #6
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
der weg den mrsmith beschrieben hat würde immer erfordern, das du einen freien bereich im speicher findest, auf welchen auchnoch die benötigten rechte vergeben sind. gerade bei programmen welche mit code droppern oder pe-optimizern bearbeitet wurden, wirst du solche bereiche aber wohl selten vorfinden.

solange du dich auf windows beschränkst, kannst du doch auch auf die winapis zugreifen, und per VirtualAllocEx function einfach einen breich für deinen string und für deine codecave einrichten.

ich denke es gibt kaum sprachen, welche nicht auf die winapis zugreifen können =P

wenn du lieber mit asm als mit c++ arbeitest, kannst du das ganze zur not auch in asm selbst schreiben. hierfür gibts ja auch genügend open-source compiler. eine in asm generierte dll sollte keinerlei nachteile (abgesehen von der fehlenden hochsprache) gegenüber einer in c++ generierten haben.
lolkop is offline  
Old 12/21/2011, 18:47   #7


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
der weg den mrsmith beschrieben hat würde immer erfordern, das du einen freien bereich im speicher findest, auf welchen auchnoch die benötigten rechte vergeben sind. gerade bei programmen welche mit code droppern oder pe-optimizern bearbeitet wurden, wirst du solche bereiche aber wohl selten vorfinden.
man kann ccs auch selbst erstellen...
MrSm!th is offline  
Old 12/21/2011, 20:16   #8
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Ja das mit den Code Caves war schon vorher verstanden hab mir auch schon ein Tut angeguckt wo ich gesehen hab das man die mit CE suchen kann. Hab früher bei dem Game bei dem ich paar Patches geschrieben hatte einfach immer meinen Code am Ende angehängt weil da einfach alles Frei war aber das lies sich nicht in die Exe übertragen musste ich also Runtime immer wieder wiederholen.

Ich finde so Code Injections eigendlich nicht schwer mir macht das sogar spaß in ASM da was rum zu schrauben und immer mehr dazu zu lernen aber mein eigendliches Problem war ja das ich einen String in meinem Programm hinterlegen will den ich dann via MOV EDX,Adresse in das EDX Register z.b. laden könnte ich hab mir die im Clienten bereits hinterlegten Strings mal angeguckt und versucht das in an eine Leere stelle zu übertragen aber statt das der selbe String raus kam kam einfach irgend ein Unnötiger Befehl raus.

Also mussich ja irgendwas übersehen haben was dem Programm sagt jetzt kommt ein String. Worauf mussich da achten ô.o
Atzenkeeper is offline  
Old 12/21/2011, 21:28   #9
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
olly wird dir im cpu fenster immer versuchen sämtliche bytes in asm befehle zu übersetzen.
das ist aber auch nicht weiter schlimm, zumindest solange der code nicht irgendwann in deinen string reinrennt :P. willst du nach strings suchen, so musst du ins dump fenster schauen.

schreibst du zb "hallo" in adresse 0x12345678, so zeigt olly dir im cpu fenster das an:
Code:
12345678   48               DEC EAX
12345679   61               POPAD
1234567A   6C               INS BYTE PTR ES:[EDI],DX
1234567B   6C               INS BYTE PTR ES:[EDI],DX
1234567C   6F               OUTS DX,DWORD PTR ES:[EDI]
im dump fenster hingegen siehst du dann deinen string:
Code:
12345678  48 61 6C 6C 6F 00 00 00  Hallo...
lolkop is offline  
Old 12/21/2011, 23:21   #10
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
achso das ist gut zu wissen das hatte mich nämlich leicht verwirrt weil er alle strings immer in komische befehle umgeschrieben hatte hab aber auch schon in grau strings im cpu fenster gesehen ô.o
Atzenkeeper is offline  
Old 12/21/2011, 23:32   #11


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Nur darfst du den Teil halt nicht ausführen, sondern nur die Adresse in EDX moven (willst es ja als String interpretieren und die Referenz übergeben) und du bisst sichergehen, dass an die Stelle vom Programm nichts anderes bzw. gar Code geladen wird!
MrSm!th is offline  
Reply


Similar Threads Similar Threads
Mal eine frage bezüglich des acc tausches
10/19/2011 - Dragonica - 2 Replies
BITTE CLOSEN!
Mal eine frage bezüglich des acc tausches
09/11/2011 - Elsword - 2 Replies
Wie wir alle wissen is des ja normalerweise verboten. Und wenn man jetzt z.B einen account an jemanden verkauft,könnten die typen von gameforge dann ned sehen,das die person die den acc gekauft hat mit dem auf ner anderen ip spielt? Die könnten dann rein theoretisch einen direkt bannen. So,können die typen jetzt einen bannen wenn man jetz nen account gekauft hat und mit dem daheim spielt?Weil man hat ja ne andere ip als der,dem den account mal gehörte. MfG
Mal eine frage bezüglich des acc tausches
09/11/2011 - Elsword - 0 Replies
LÖSCHEN! Thema wurde dank i-net lag 2. mal erstellt.
Eine Frage bezüglich XTrap.
04/04/2010 - S4 League - 8 Replies
Ich hätte da mal eine Frage. S4League Startet ja XTrap und Hgw oder? XTrap kontrolliert laufende Prozesse und S4League oder? Doch wird XTrap auch Von Etwas Kontrolliert? Also ob daran veränderungen vorgenommen wurden? Wenn nicht kann man doch XTrap Debuggen oder wie läuft das ab?
Habe mal eine Frage bezüglich Metin35
11/04/2009 - Metin2 Private Server - 4 Replies
Ich bin seit ein paar Wochen einmal wieder auf Metin35..es fällt mir auch das ganz schön viele leute auf den Server sind. Aber meine frage ist es ich bekomm dauernd kick und Map1 dorf mitte komm ich garnicht rein und es laggt total..ist dies nur bei mir oder auch bei andren



All times are GMT +1. The time now is 17:44.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.