|
You last visited: Today at 11:56
Advertisement
[Frage] C++ ASM Coding Change Values
Discussion on [Frage] C++ ASM Coding Change Values within the C/C++ forum part of the Coders Den category.
04/05/2013, 17:16
|
#1
|
elite*gold: 0
Join Date: Apr 2013
Posts: 12
Received Thanks: 4
|
[Frage] C++ ASM Coding Change Values
Hey epvp,
Ich habe mich gerade hier Registriert da ich mir hier viel hoffnug mache
Hilfe zu bekommen.
Fakten:
Es ist eine .DLL die ich in ein beliebigen Process Injecten werde um eine Value zu ändern. Mit OllyDBG komm ich an den ASM Befehlen dran.
Ich habe eine Function mit OllyDBG gefunden die mir Interessant vor kommt und nun sehe ich in dieser Function eine Value wo ich denke das die das bewirkt was ich im resultat haben möchte, nehmen wir mal an es ist 12F (hexadezimal), vor der Value ist noch die Befehlsreferenz ADD, das ganze würde dann so aus sehen:
Jetzt kommt noch der Akkumulator EAX vor der Value.
Und hier dann noch der MOV:
PHP Code:
MOV ECX, DWORD PTR DS:[0x123FFF] ADD EAX, 12F
Also jetzt zur eigentlichen Frage:
Ich möchte die 12F (hexadezimal) beispielsweise auf 50 (dezimal) setzen,
wie gehe ich da vor?
Dies ist den Code den ich benutze:
PHP Code:
#include <windows.h>
void Funktion1() { __asm{
Wie gehe ich hier vor?!
}
}
int __stdcall DllMain(_In_ void * _HDllHandle, _In_ unsigned _Reason, _In_opt_ void * _reserved) { if(DLL_PROCESS_ATTACH == _Reason) { Funktion1(); } return 1; }
Dies hatte ich ohne Erfolg getestet:
PHP Code:
#include <windows.h>
void Funktion1() { __asm{ MOV ECX, DWORD PTR DS:[0x123FFF] SUB EAX, 0x32 }
}
int __stdcall DllMain(_In_ void * _HDllHandle, _In_ unsigned _Reason, _In_opt_ void * _reserved) { if(DLL_PROCESS_ATTACH == _Reason) { Funktion1(); } return 1; }
Hoffentlich bin ich hier richtig.
MfG
ElotrineX
|
|
|
04/05/2013, 20:55
|
#2
|
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
|
Du musst den Machinencode an der Stelle (entweder in der Datei selber oder im Arbeitsspeicher) umändern.
"ADD EAX, 12F" dürfte das hier sein:
05 2F 01 00 00
"ADD EAX, 32" (also 50 in hexadezimal) ist folgendes:
05 32 00 00 00
Siehe:
|
|
|
04/05/2013, 21:01
|
#3
|
elite*gold: 1
Join Date: Apr 2010
Posts: 13,772
Received Thanks: 15,036
|
Du musst schon die Addresse angeben, anders funktioniert das ganze nicht (Außnahme : Hooks)
Beispiel :
Code:
FF98ED13 - 8B 0C 25 FF3F1200 - mov ecx,[00123FFF]
FF98ED1A - 05 2F010000 - add eax,0000012F
Da müsstest du wie folgt vorgehen um die 0x12F zu verändern.
Code:
void Funktion1()
{
DWORD dwAddress = 0xFF98ED1A;
DWORD dwNewValue = 50;
//1.Methode - memcpy
memcpy(((void*)(dwAddress + 1)), &dwNewValue, sizeof(DWORD));
//2.Methode - dereferenzieren
*(DWORD*)(dwAddress + 1) = dwNewValue;
}
|
|
|
04/05/2013, 21:04
|
#4
|
elite*gold: 0
Join Date: Apr 2013
Posts: 12
Received Thanks: 4
|
Also brauch ich die Adresse doch o.O
Dein code ist für mich etwas undurchblickbar, das ist doch kein asm mehr  .
Kannst du bitte noch erklären warum zb dwAdress + 1 ist?
Hat das was mit Offsets zu tun?
|
|
|
04/05/2013, 21:36
|
#5
|
elite*gold: 1
Join Date: Apr 2010
Posts: 13,772
Received Thanks: 15,036
|
Quote:
Originally Posted by ElotrineX™
Also brauch ich die Adresse doch o.O
Dein code ist für mich etwas undurchblickbar, das ist doch kein asm mehr  .
Kannst du bitte noch erklären warum zb dwAdress + 1 ist?
Hat das was mit Offsets zu tun?
|
Das ganze kann man natürlich auch in ASM machen :P
Code:
[COLOR=Red]FF98ED1A[/COLOR] - [COLOR=Red]05[/COLOR] [COLOR=DarkSlateBlue]2F010000 [/COLOR] - [COLOR=Red]add eax[/COLOR],[COLOR=DarkSlateBlue]0000012F[/COLOR]
[COLOR=DarkSlateBlue]FF98ED1B[/COLOR]
FF98ED1A hat den Wert 05, kann man oben auch schön sehen.
Da du aber nur die 12F ändern willst und nicht die ganze Instruction musst du die Addresse um 1 erhöhen. FF98ED1A + 1 (FF98ED1B) hat nun den Wert 12F (siehe oben). Nun kannst du der Addresse einfach einen neuen Wert zuweisen.
|
|
|
04/05/2013, 21:49
|
#6
|
elite*gold: 0
Join Date: Apr 2013
Posts: 12
Received Thanks: 4
|
Vielen Danke.
Aber wie wird das in ASM geschrieben  ?
Ahhh jetzt hab ichs! Glaub ich
So?:
Code:
Das vorher irgendwo definieren...
DWORD adresse1 = 0xFF98ED1B
Code:
[COLOR=Red][COLOR=Black]mov ecx,[0x123FFF]
add eax, 32
call [/COLOR][/COLOR]adresse1
richtig oder?
|
|
|
04/05/2013, 21:57
|
#7
|
elite*gold: 1
Join Date: Apr 2010
Posts: 13,772
Received Thanks: 15,036
|
Nein, so müsste das aussehen :
Code:
mov eax, [addresse1]
mov edi, 0x32 //50
mov [eax], edi
|
|
|
04/14/2013, 10:54
|
#8
|
elite*gold: 0
Join Date: Sep 2012
Posts: 24
Received Thanks: 5
|
darkorbit cheat me, would you?
|
|
|
04/15/2013, 10:23
|
#9
|
elite*gold: 104
Join Date: Oct 2012
Posts: 2,720
Received Thanks: 593
|
das ganze kannst gut mit BYTE Patching machen mein lieber^^
Dazu einfach die Bytecodes für die Asm befehle nehmen, dir die Adresse an der sie stehen suchen und mit Memory Write überschreiben (patching). So kannst das gut machen, hab so Damals auch mein Metin hack gemacht (noclip)^^
Zur verdeutlichung wie ich das meine ->  <-
p.s: Offsets vom Hack sind sau alt, gut 1-2 Jahre alt.. schreibt mir also bitte keine Pm´s mit "Dein Hack funktioniert nicht!!?!!!".. das dient nur zur verdeutlichung des prinzip des Patchen für den TE..ja?Gut
|
|
|
 |
Similar Threads
|
help when i change values
10/03/2011 - S4 League - 5 Replies
i change bat to katana, cs to vital shock and plasma to lucifer.
when i enter in a match, the players frezze and the match dont continue, but i can move .-.
sry for my bad english xD
|
[Help] I Can't Change Values
10/02/2011 - S4 League - 10 Replies
First, Starts S4 Client and Starts Procces Hacker 2, Then Suspend HGWC And Xtarp and Termined Aegis. Start CE6 Open S4 Client and write 2000000 but not change :(:rtfm::(
Note : I'm Italian. Bad English. Help Me ! Pls
|
[HOWTO]Change ID's&Values
06/01/2011 - S4 League Hacks, Bots, Cheats & Exploits - 55 Replies
Video is UP!
Volume needs to be on
I made like one mistake in the video by searching 40001 instead of 20101... Do NOT do search for the FP code!
http://www.youtube.com/watch?v=D_j_wh5GFS4
*Getting an error message while searching values? :
|
Is it possible to change values that are server sided?
06/17/2009 - Shaiya - 1 Replies
I was able to hack the GG fairly easy but the changes are only visual/client sided. is there anyway to make these register on the server, infinite gold would be great :mofo:
|
Change Armor & Weapon Values
05/05/2008 - RF Online - 1 Replies
okay im fairly new here.
after looking some topics i managed to change some armor values, for example changed the def. value of armor from 986 into 1500.but when i wear the amor i still get the same def. value (986)So, i think these values arent cilent side.
i managed to change potion cast delays its working nice.than i try to change the cast delays of the force spells , lvls and durations of force buffs etc.. but im totally lost it wasnt easy like changing the value of pots :/ im using...
|
All times are GMT +1. The time now is 11:57.
|
|