Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 21:59

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

Advertisement



ECX auslesen |inj dll? or extern?

Discussion on ECX auslesen |inj dll? or extern? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2007
Posts: 1,753
Received Thanks: 443
ECX auslesen |inj dll? or extern?

hi
also ich versuche jetzt schon ein wenig länger eine möglichkeit zu finden ECX an einer bestimmten stelle im code von Guild Wars auszulesen

bis jetzt hab ich eine DLL, die injected wird

die enthält ne func zum code patchen , um meine eigendliche funktion aufzurufen

soweit so gut, das klappt alles

da GW TLS (Thread Local Storage) nutzt hab ich meine func als "naked" definiert

um die register nicht zu ändern

jetzt möchte ich aber das in meiner funktion ECX ausgelesen wird und dann der wert in eine datei geschrieben werden kann (oder einfach ne datei erstellen mit filename = value of ECX)

ich habs mit zb dem hier versucht:
Code:
__asm PUSH 0                                                //hTemplateFile = NULL
__asm PUSH 80                                               // |Attributes = NORMAL
__asm PUSH 2                                                // |Mode = CREATE_ALWAYS
__asm PUSH 0                                                // |pSecurity = NULL
__asm PUSH 1                                                // |ShareMode = FILE_SHARE_READ
__asm PUSH 80000000                                         // |Access = GENERIC_READ
__asm PUSH ecx                        //<deine ascii value>     // |FileName = "deine ascii valie"
__asm call [CreateFileA] 					// \CreateFileA
und:
Code:
__asm ("mov  %%ecx , %0" : : "g" (myecx))
wobei myecx eine long var ist

und
Code:
  __asm__ ( "PUSH %0" : : "I" (0)); //hTemplateFile = NULL                                       
    __asm__ ("PUSH %0" : : "g" (80));                                               // |Attributes = NORMAL 
    __asm__ ("PUSH %0" : : "I" (2));                                                // |Mode = CREATE_ALWAYS 
    __asm__ ("PUSH %0" : : "I" (0));                                              // |pSecurity = NULL 
    __asm__ ("PUSH %0" : : "I" (1));                                               // |ShareMode = FILE_SHARE_READ 
    __asm__ ("PUSH %0" : : "g" (80000000));                                         // |Access = GENERIC_READ 
    __asm__ ("PUSH %0" :: "g" ("test.txt"));                        // |FileName = "test.txt" 
    __asm__("CALL %0" : : "c" (&CreateFileA));
btw nutze VC++ Express 08
letztes ist nicht in vc++ format, weiß nicht wie ichs umschreiben muss ^^

wär cool wenn mir jemand helfen könnt
Azunai is offline  
Old 12/22/2008, 13:45   #2
 
verT!c4L's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
Ich frag heut abend mal den Kollegen, der kennt sich besser aus mit Assembler als ich ^^
Vlt weiß der ja Rat!
verT!c4L is offline  
Old 12/23/2008, 13:27   #3
 
elite*gold: 0
Join Date: Jan 2007
Posts: 1,753
Received Thanks: 443
und ? ^^ was hat er so gesagt ?
Azunai is offline  
Old 12/23/2008, 13:29   #4
 
verT!c4L's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 1,245
Received Thanks: 60
Bislang nichts sinnvolles... waren gestern auf ner Party, als er schon 3,8te im Kessel hatte
fiel mir ein das ich ihn ds fragen wollte, aber leider konnte ich seinen gefasel nicht mehr folgen obwohl ich der nüchternere von uns beiden war :/
verT!c4L is offline  
Old 12/23/2008, 16:35   #5
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Quote:
__asm PUSH ecx //<deine ascii value> // |FileName = "deine ascii valie"
Du uebergibst keine gueltige Zeichenkette, sondern einen DWord.
rEdoX is offline  
Old 12/24/2008, 16:35   #6
 
elite*gold: 0
Join Date: Jan 2007
Posts: 1,753
Received Thanks: 443
?!?

wie meinst du das

das da erstellt einfach eine datei, die dann mit namen zb "123" heißt falls ECX an der stelle "123" ist ;P
Azunai is offline  
Old 12/24/2008, 16:57   #7
 
elite*gold: 0
Join Date: May 2005
Posts: 232
Received Thanks: 52
argh augenkrebs...
Code:
 
__asm{
  //please use more of this
  //thanks
}
ich glaube du solltest die finger von diesen thema haben, du erkennst ja nichtmals den unterschied zwischen hex und dec ( du übergibst hex values als dec...). ansonsten sollte variante eins funktionieren (variante 2 lässt mir sämtliche nackenhaare aufrecht stehen..). kannst auch auf nummer sicher gehen und dir eine stdcall function anlegen die ecx als parameter übergibt und halt das zeug macht, das du willst ohne dabei den stack zu verändern
emjay is offline  
Old 12/24/2008, 23:27   #8
 
elite*gold: 0
Join Date: Jan 2007
Posts: 1,753
Received Thanks: 443
hab den code fetzen da als fertige solution gefunden gehabt , und ja ich erkenn nicht viel in asm, weils recht neu für mich ist ;P
Azunai is offline  
Old 12/25/2008, 03:02   #9
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 451
rEdoX hat schon alles gesagt.
Naja, obwohl es eigentlich auch nicht richtig ausgedrückt ist, da CreateFileA als diesen Parameter keine Zeichenkette erwartet, macht ja auch keinen Sinn... eine unbestimmte Menge an Bytes auf dem Stack, sondern die Adresse zu einer.

Konvertiere die Zahl in einen String oder benutze wsprintf und übergebe die Adresse des Strings, der nun die Nummer enthält, als Parameter für den Namen an CreateFileA.
Wenn ECX 123 enthält, wird ein String an der Adresse 123 gesucht, was in einen Laufzeitfehler ausartet :-)

Pseudocode:
Code:
pushad
push 0
push 80
push 2
push 0
push 1
push 80000000
;=========
mov ebx, XXXX2 ;Adresse von max. 10 freien Bytes
push ecx
push XXXX1 ;Adresse, wo 25h, 64h, 0 zu finden ist
push ebx
call wsprintfA
add esp, 0ch
;=========
push ebx
call CreateFileA
popad
link is offline  
Reply


Similar Threads Similar Threads
Gm id extern ändern
07/16/2010 - Metin2 Private Server - 6 Replies
Hallo E*PvP, gibt es eine möglichkeit die gm-id extren, d.h auf einer webseite, ändern zu lassen? dankeschön lg org. ps:lösung=thanks
Metin2 DB extern legen [1Klick-Files]
06/29/2010 - Metin2 Private Server - 20 Replies
Huhu, ich habe zu Hause einen NAS, welcher MySQL unterstützt. Ich würde die Datenbank der 1Klick files gerne auf diesen NAS legen. Die Datenbank habe ich auch schon übertragen, aber ich würde gerne wissen, wo ich die IP Adresse meines NAS in den configs eingebe. MFG Profizocker
[Released] Dekaron Extern Message Box
03/24/2010 - Dekaron Private Server - 14 Replies
Hello, Tool is Improved. I have coded a Message box , you can use it to write Messages inGame. Why its useful? You can Paste :-)
[C++]Minimizing,Maximizing extern applications
11/28/2008 - Coding Tutorials - 3 Replies
==========Get handle from an application========== We must get the handle from an application before minimizing it. To get a handle and minimize a program , you use HWND,FindWindow and ShowWindow ( API ). HWND :(h) handle (Wnd) Window. HWND mywindow; FindWindow(NULL,"SRO_Client"); We declare mywindow as a HWND.
Extern useful programs.
10/21/2006 - CO2 Exploits, Hacks & Tools - 1 Replies
Hello there. I just want to share this with others. There is a program called No Alt-Tab . You could find it by searchinf in google "no alt tab". It is a tiny program "always on top" that draw a transparent (you have to chose the level of opacity in option) in the full screen game window.A icon of every aplication on task bar is drawed in a tiny rectangle.Switchin' is a pleasure. It is very useful for those who use 2 or more clients and why not other programs. Hope you enjoy this, have...



All times are GMT +2. The time now is 21:59.


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.