Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 19:31

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

Advertisement



C asm code overwrite

Discussion on C asm code overwrite within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2009
Posts: 542
Received Thanks: 112
C asm code overwrite

Moin,


angenommen ich habe an der adresse 0x00401340 den beginn einer funktion. also z.b.: CPU Disasm
Address Hex dump Command Comments
00401340 /$ 55 PUSH EBP
00401341 |. 89E5 MOV EBP,ESP
00401343 |. 8B45 08 MOV EAX,DWORD PTR SS:[ARG.1]
00401346 |. 83C0 03 ADD EAX,3
00401349 |. 5D POP EBP
0040134A \. C3 RETN

/*die funktion bekommt ein integer übergeben , addiert 3 hinzu und gibt das ergebnis wieder zurück.*/
jetzt habe ich eine andere funktion geschrieben, die auch einen integer übergeben bekommt und einen zurück gibt und diese mit einer dll in das code segment eingeschleust.
wie kann man jetzt an der stelle 0x00401340 den befehl "push ebp" mit einem jmp befehl überschreiben , also "jmp 0xadressevonneuerfunktion" ,sodass meine neue funktion aufgerufen wird ?
maxi39 is offline  
Old 06/18/2016, 10:55   #2


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,104
Received Thanks: 681
Hallo,
ich gehe Mal von Grundkenntnissen in C aus, sonst rate ich zur Aneignung dieser. Habe zumindest keine Lust auf Spoonfeeding. Prinzipiell helfen tue ich natürlich dennoch.

Der Code liegt vermutlich in einem Speicherbereich, welcher standardmäßig nicht beschreibbar ist. Darum muss man sich zuerst kümmern. Hierfür ist zu verwenden. Danach kannst du den Speicherbereich einfach beschreiben. Ein (long near) jmp belegt 5 Byte:
1) statischer Opcode 0xE9
2) 4 byte Zielbeschreibung. Dies ist allerdings nicht die absolute Zieladresse, sondern ein Delta, was sich wie folgt berechnet: <Zieladresse> - (<Adresse vom jmp> + <Länge der jmp-Instruktion = 5>)
Das einfach reinschreiben. Dann die alten Berechtigungen mit VirtualProtect wiederherstellen und fertig. Wird nun die Originalfunktion aufgerufen, springt die erste Instruktion zu deiner Funktion, die dann stattdessen ausgeführt wird.
Mit freundlichen Grüßen
Jeoni
Jeoni is offline  
Thanks
1 User
Old 06/18/2016, 16:18   #3
 
elite*gold: 0
Join Date: Feb 2009
Posts: 542
Received Thanks: 112
Quote:
Originally Posted by Jeoni View Post
Hallo,
ich gehe Mal von Grundkenntnissen in C aus, sonst rate ich zur Aneignung dieser. Habe zumindest keine Lust auf Spoonfeeding. Prinzipiell helfen tue ich natürlich dennoch.

Der Code liegt vermutlich in einem Speicherbereich, welcher standardmäßig nicht beschreibbar ist. Darum muss man sich zuerst kümmern. Hierfür ist zu verwenden. Danach kannst du den Speicherbereich einfach beschreiben. Ein (long near) jmp belegt 5 Byte:
1) statischer Opcode 0xE9
2) 4 byte Zielbeschreibung. Dies ist allerdings nicht die absolute Zieladresse, sondern ein Delta, was sich wie folgt berechnet: <Zieladresse> - (<Adresse vom jmp> + <Länge der jmp-Instruktion = 5>)
Das einfach reinschreiben. Dann die alten Berechtigungen mit VirtualProtect wiederherstellen und fertig. Wird nun die Originalfunktion aufgerufen, springt die erste Instruktion zu deiner Funktion, die dann stattdessen ausgeführt wird.
Mit freundlichen Grüßen
Jeoni
es funktioniert , danke
hier der code:
maxi39 is offline  
Reply


Similar Threads Similar Threads
[VB.NET] [Help Me] How to write file without overwrite ?
12/28/2015 - .NET Languages - 4 Replies
Dim Path as String = "C.dat" File.WriteAllBytes("Path", File.ReadAllBytes("A.dat")) File.WriteAllBytes("Path", File.ReadAllBytes("B.dat"))
Flyff Dupe Charakter Overwrite
02/03/2015 - Flyff Private Server - 2 Replies
Hallo, ich wollte mal fragen ob noch jemand weiss wie dieser funktioniert. Für meinen PServer hab ich den Fix bereits eingebaut, allerdings weiß ich nicht wie dieser funktioniert um zu testen ob dieser fix funktioniert. MfG TacaFlow'
Dupe Fix Char Overwrite
09/26/2013 - Flyff PServer Guides & Releases - 11 Replies
1337 Haxx0rZ on the run. http://i.epvpimg.com/ZOEFf.png DB > CHARACTER_STR Finden: IF @iGu = 'I1' -- 초기 정보 입력
visual basic download and Overwrite Existing Files
11/01/2009 - Silkroad Online - 0 Replies
anyone can help me out here i need a code i can use to make a program with VB. im a noob at this but i dont need that much code i have see it on youtube how to download a file from the internet, but i dont have the code for the overwrite the existing file. Could not find it there. anyone can help me out with this? this is the part to download the file YouTube - VB.NET - How to Download a File Online - ( EASY TUTORIAL ) simple code



All times are GMT +2. The time now is 19:31.


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.