Register for your free account! | Forgot your password?

Go Back   elitepvpers Coders Den General Coding
You last visited: Today at 01:35

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

Advertisement



Code Injection Problem

Discussion on Code Injection Problem within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2005
Posts: 3
Received Thanks: 0
Code Injection Problem

Der Original Code im Assembler ist "mov esi, [ecx+esi*8+4]"(read) und müsste auf die Adresse der Aktuell aktivierten Waffe zeigen. Der Wert esi hat für jede Waffe einen festgelegten Wert während ecx eine Adresse(verändert sich bei waffenwechsel nicht) beinhaltet. Mir geht es darum den Wert während die Schleife durchläuft wieder um 1 zu erhöhen wobei ich ein kleines Problem mit dem Syntax habe. Wie ändere ich den Code so um das er den Wert an der Adresse (esi, [ecx+esi*8+4]) um 1(oder mehr) erhöht?

Der Interpreter in T-Search gibt bei folgendem Code Fehler zurück:

add esi, [ecx+esi*8+4], 0x01 ;too many operands

add esi, [ecx+esi*8+4] [0x01] ;keine Fehlermeldung und auch nicht der gewünschte Effekt

Vermutlich liegt der Fehler im add, nur weis ich nicht wie ich den Code sonst schreiben soll da ich mich mit der Syntax nicht so auskenne. Es muss nicht unbedingt die Lösung sein, ein Tip mit dem ich das Problem selber lösen kann würde genügen.

EDIT: ich hab mal testweise "mov esi, [ecx+esi*8+4]" in "mov [ecx+esi*8+4], esi" umgeändert

Die Munition wurde zwar nichtmehr verbraucht aber dafür sind auch jede menge andere merkwürdigkeiten passiert.

2. EDIT: "http://www.itm.uni-luebeck.de/teaching/ws0607/info3/uebung/Info3-WS0607-Assembler-3.pdf?lang=de" hilft weiter, die Lösung fehlt noch

3. EDIT: "http://www.itm.uni-luebeck.de/teaching/ws0607/info3/uebung/Info3-WS0607-Assembler-1.pdf?lang=de"
"http://www.itm.uni-luebeck.de/teaching/ws0607/info3/uebung/Info3-WS0607-Assembler-2.pdf?lang=de"
"http://www.itm.uni-luebeck.de/teaching/ws0607/info3/uebung/Info3-WS0607-Assembler-3.pdf?lang=de"
"http://www.itm.uni-luebeck.de/teaching/ws0607/info3/uebung/Info3-WS0607-Assembler-4.pdf?lang=de"
Assembler-Syntax sehr gut erklärt.

4. EDIT: Hier die Subroutine fals jmd etwas damit anfangen kann.

.text:004BD7CC mov eax, [esp+1Ch+var_8]
.text:004BD7D0 test eax, eax
.text:004BD7D2 jz loc_4BD8D6
.text:004BD7D8 mov ecx, [ebx+18h]
.text:004BD7DB mov edx, [esp+1Ch+arg_0]
.text:004BD7DF mov esi, [ecx+esi*8+4] ;der Wert vom T-Searchdebugger(read)
.text:004BD7E3 mov ecx, [edx+0Ch]
.text:004BD7E6 lea eax, [edx+0Ch]
.text:004BD7E9 lea edx, [esp+1Ch+var_8]
.text:004BD7ED push esi
.text:004BD7EE push edx
.text:004BD7EF push eax
.text:004BD7F0 mov [esp+28h+var_C], esi
.text:004BD7F4 call dword ptr [ecx+10h]
.text:004BD7F7 mov eax, [esp+1Ch+arg_8]
.text:004BD7FB mov [esp+1Ch+arg_0], 0
.text:004BD803 push eax
.text:004BD804 call sub_52D370
.text:004BD809 mov ebp, [ebx+4]
.text:004BD80C xor edx, edx
.text:004BD80E mov ecx, eax
.text:004BD810 xor esi, esi
.text:004BD812 div ebp
.text:004BD814 cmp ebp, esi
.text:004BD816 mov [esp+1Ch+var_4], ecx
.text:004BD81A mov [esp+1Ch+arg_C], esi
.text:004BD81E mov edi, edx
.text:004BD820 jle short loc_4BD879
Gunnar1986 is offline  
Old   #2
 
elite*gold: 0
Join Date: Dec 2008
Posts: 14
Received Thanks: 2
ich habs selber nich getestet, aber versuch doch mal was in der art:

mov esi, [ecx+esi*8+4] //in esi hast die adresse die auf den wert der waffe zeigt

(so hab ich das zumindest verstanden^^)

push eax
mov eax,1
add [esi],eax
pop eax

musst mal schauen ob das klappt mit dem umweg über ein hilfsregister
Loonatec420 is offline  
Old   #3
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
ESI enthält den Wert aus der Adresse, aber nicht diese.
Also würde "add [esi],eax" wahrscheinlich wegen Zugriffsverletzung das Programm zum Absturz bringen.
Es müsste wohl eher "inc [ecx+esi*8+4]" lauten.
link is offline  
Old   #4
 
elite*gold: 0
Join Date: Dec 2008
Posts: 14
Received Thanks: 2
für mich hat sich das angehört als ob ESI eine adresse enthält nach dem befehl
mov esi, [ecx+esi*8+4]

sollte ESI aber schon den wert enthalten und nich die adresse an welcher der wert im speicher steht dann greift man halt gleich auf "ESI" zu und nich auf "[ESI]".

das mit dem weg über das register und dem add hab ich mir so angewöhnt um sicher zu stellen, dass mit dword grössen gearbeitet wird. wenn man direkt auf dem speicher "inced" wird wohl zwar in diesem fall nix passieren, da der speicher defaultmässig mit dword arbeitet, aber damals mit MASM und 16bit register gabs bei mir schonmal probs mit variablen als DB angelegt und dann mit word pointern arbeiten kam nich so gut ^^
Loonatec420 is offline  
Old   #5
 
elite*gold: 0
Join Date: Nov 2005
Posts: 3
Received Thanks: 0
Leider funktioniert das nicht da ESI auch andere Adressen beinhaltet(genauso wie die anderen Teile im Code die auf die Adresse zugreifen). Kennt jmd zufällig ein gutes Tutorial(am besten verschiedene) zum Thema Basiswert? Am einfachsten währe es ja die errechnete Adresse an einen Offset zu schreiben und von dort auszulesen, nur wird dann ständig eine neue Adresse reinkopiert.
Gunnar1986 is offline  
Reply


Similar Threads Similar Threads
Code/Dll Injection Tutorial
12/13/2014 - Tutorials - 28 Replies
Einleitung Hallo Elite PvPer! http://www.animiertegifs.de/smilies/eckige-Smileys /eckige-smileys-animiert-02.gif Auf folgende Fragen wirst du in diesem Tutorial Antworten finden: Was ist eine "Code/Dll injection" und was bringt mir das - kann man das essen? http://www.greensmilies.com/smile/smiley_emoticons _freddus_msn_fressen.gif Was sind Dll-Dateien (dynamische/statische Bibliotheken) - kann man die ebenfalls essen? http://www.greensmilies.com/smile/smiley_emoticons _essen.gif Wie...
Cheat Engine -> Code Injection
07/29/2009 - General Coding - 8 Replies
Also ich bin auch der suche nach einem guten Tutorial über Code Injection. Ich habe schon einige Trainer per CH erstellt. Aber heute bin ich auf was seltsames gestoßen ich habe Pointer gesucht und gefunden. Dann merkt ich das es nicht der letzte Pointer sein kann den als ich das Spiel neu startete wurde der Wert nicht im Pointer angezeigt. Also fing ich nochmal von vorne an. Als ich wieder den Pointer hatte bin ich weiter gegangen und wollte den Pointer zu dem Pointer finden das das Problem...
Can anyone help me with generic code injection?
06/16/2009 - General Coding - 1 Replies
Sorry for English, I see this part of e*PvP is mainly in German, but my German sucks badly (although I spent 5 years trying to learn it with little success). My question is not related that much to game hacking/coding and such, but code injection in general. Here is the background - we have a core system client, which is basically a big GUI framework over plain telnet screens. Client also has a built-in OLE and DDE servers, which we are using to extract data from system in most simple...
code injection hacks
12/07/2008 - Metin2 - 2 Replies
hey, hatte kein bock sufu zu benutzen, also frag ich ma:D gibt es schon hacks, die über eine original metin2.dll laufen?
Code injection
12/28/2005 - General Coding - 2 Replies
Just to gathering a 'feeling' of bestpractise/standards from the elite .. ... is madcodehook de facto standard if you wanna thread inject ? or what other alternatives exists ? Thanks !



All times are GMT +2. The time now is 01:35.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

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