• Trainer
  • Forums
  • Suche
  • Members
  • Kalender
  • Hilfe
  • Extras
Forum stats
Show team
Neue Beiträge ansehen
Heutige Beiträge ansehen
Home of Gamehacking - Archiv
Login to account Create an account
Login
Benutzername:
Passwort: Passwort vergessen?
 



  Home of Gamehacking - Archiv Coding C, C#, C++, Visual C++
1 2 Weiter »
CE Script in C++

Ansichts-Optionen
CE Script in C++
l0wb1t Offline
Member
***
Beiträge: 64
Themen: 22
Registriert seit: Mar 2011
Bewertung: 0
#1
27.01.2013, 18:38
Hey HomeofGamehacking Crew, nach langer Zeit hab ichs geschafft mich wieder einloggen zu können^^ Und "mir" liegt gleich ne brennende Frage auf der Zunge.

Wurm es geht, steht ja schon im Thread namen.

Und zwar folgendes Problem, ich habe sogut wie nichts mit c++ am hut, habe jedoch einen Kollegen der meinenCE Script gerne in sein c++ project implementieren würde. Ihm fehlt da glaube aber das nötige wissen.

Und zwar gehtz meines erachtes nach um die erstellen von ner CodeCave um den CE Script umwandeln zu können.

Hier erstmal der Script.

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:
cmp byte ptr [eax+06],0
jne originalcode
mov byte ptr [eax+06],1

originalcode:
test byte ptr [eax+06],01
je 123.exe+123456

exit:
jmp returnhere

"123.exe"+123455
jmp newmem
nop
returnhere:


 
 
[DISABLE]
dealloc(newmem)
"123.exe"+123455
test byte ptr [eax+06],01
je 123.exe+123456


Könnt mir da vlt jemand ein Beispiel zu erklären wie das ungefähr auszusehen hat, damit ich ihm das sagen kann? Wäre echt Klasse.
Beste Grüße, l0wb1t

▬|████|▬ This is Nudelholz. Copy Nudelholz in your Signatur to make better Kuchens and other Teigproducts!

Homepage Suchen
Antworten
Acubra Offline
Trainermaker
****
Beiträge: 904
Themen: 127
Registriert seit: Oct 2010
Bewertung: 6
#2
27.01.2013, 19:38 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2013, 18:11 von Acubra.)
Hey,
das ist eigentlich ganz einfach.
Anstatt newmem (was ja einfach alloziierter Speicher ist) kann sich dein Kumpel eine CodeCave suchen. Also einen Bereich im Speicher, in welchem er Lese- und Schreibrechte besitzt. Dort kann er nun die benötigten Befehle schreiben (per WriteProcessMemory), also:

Code:
cmp byte ptr [eax+06],0
jne originalcode
mov byte ptr [eax+06],1
jmp originalcode

Als nächstes schreibt er per WriteProcessMemory an die Originalcode Adresse ("123.exe"+123455) den Jump zur CodeCave Adresse (NOP's nicht vergessen!).

Er muss eben wissen wie die WriteProcessMemory API funktioniert, also das man Bytes schreibt und nicht die Befehle selbst.

Noch ein bisschen Pseudo C++ Code

Code:
//CodeCave schreiben
WriteProcessMemory(hProcess, (LPVOID)CodeCaveAddress, (LPCVOID)CodeCaveBytes, sizeof(CodeCaveBytes), 0)
//Originalen Code überschreiben
WriteProcessMemory(hProcess, (LPVOID)OriginalCodeAddress, (LPCVOID)JumpToCodeCave, 5, 0)


Man kann auch einfach anstatt je 123.exe+123456 jmp 123.exe+123456 schreiben. Hätte den selben Effekt wie immer byte ptr [eax+06] auf 1 zu setzen. (In sofern dein Beispiel der Realität entspricht).

"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
[Bild: hoglogo_smalpxga.jpg]
Homepage Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#3
28.01.2013, 01:28
(27.01.2013, 19:38)Acubra schrieb: Man kann auch einfach anstatt je 123.exe+123456 jmp 123.exe+123456 schreiben. Hätte den selben Effekt wie immer byte ptr [eax+06] auf 1 zu setzen. (In sofern dein Beispiel der Realität entspricht).

Nicht immer... Grade beim **** von Programmen gibts häufig die Möglichkeit das dass Programm intern mit dem Wert an jener Speicherzelle weiterrechnet bzw. mehrfach abfragt. AnyDVD war damals so ein Kandidat da kann ich mich noch sehr gut dran erinnern. Es war dann eben doch nicht möglich eine DVD zu entschlüsseln. Man was hab ich da lange dran gesessen... Smiling

Kann natürlich bei obiger Situation funktionieren. Würde ich aber dennoch erstmal ausgiebig testen. Ansonsten, so ein Byte ist schnell in den Speicher geschrieben.
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
l0wb1t Offline
Member
***
Beiträge: 64
Themen: 22
Registriert seit: Mar 2011
Bewertung: 0
#4
09.02.2013, 10:13
Joar also ich glaub er hats entweder aufgegeben, oder wills nicht verstehen.. naja ist ja nicht mein Problem Smiling

Ich arbeite zum Glück nicht damit. Aber Vielen Dank für Eure Hilfe, und die schnellen Antworten. Haben uns Mittlerweile darauf geeinigt, dass antatt es ins C++ Projeklt mit einzubauen, wir den seperaten Trainer von mir mitusen Smiling

Greetz, l0wb1t.
▬|████|▬ This is Nudelholz. Copy Nudelholz in your Signatur to make better Kuchens and other Teigproducts!

Homepage Suchen
Antworten
Share Thread:            


  • Druckversion anzeigen
  • Thema abonnieren


Benutzer, die gerade dieses Thema anschauen:
2 Gast/Gäste

  • Kontakt
  • Forum team
  • Forum stats
  • Nach oben
 
  • RSS-Synchronisation
  • Lite mode
  • Home of Gamehacking - Archiv
  • Help
 
Forum software by © MyBB - Theme © iAndrew 2014



Linearer Modus
Baumstrukturmodus