OldSchoolHack

Registrieren / Anmelden Deutsch

C++ Find Pattern Frage!


icon C++ Find Pattern Frage! #1

Anmeldungsdatum: Jan 2010

Beiträge: 4

Hey,

also ich würde gerne einen FindPattern schreiben, der die .exe Datei in mein Programm lädt und anschließend auf den bestimmten Adressen verweißt. Weiß ich nicht, wie ich die FindPattern Funktion auf ein Programm anwende, welches ich in mein Programm lade, aber mit einer .dll Injektion funktioniert es. Jetzt würde ich gerne fragen, wie ich das schaffe.
Ich würde gerne eine Konsole benutzen und keine .dll.
Wenn ich jetzt mithilfe des fstream Header die .exe im Binary Mode lade, wie kann ich dann dadrin die Adressen suchen? Hier sind die beiden Pattern Funktionen, die ich benutze.
CPP Code:
  1. bool bDataCompare(const unsigned char* pData, const unsigned char* bMask, const char* szMask)
  2.  
  3. {
  4.  
  5. for(;*szMask;++szMask,++pData,++bMask)
  6.  
  7. if(*szMask=='x' && *pData!=*bMask )
  8.  
  9. return false;
  10.  
  11. return (*szMask) == 0;
  12.  
  13. }
  14.  
  15. unsigned long dwFindPattern( unsigned char *bMask,char * szMask, unsigned long dw_Address, unsigned long dw_Len)
  16.  
  17. {
  18.  
  19. for(unsigned long i=0; i < dw_Len; i++)
  20.  
  21. if( bDataCompare( (unsigned char*)( dw_Address+i ),bMask,szMask) )
  22.  
  23. return (unsigned long)(dw_Address+i);
  24.  
  25. return 0;
  26.  
  27. }

Bis jetzt sieht mein Code so aus:
CPP Code:
  1. ifstream::pos_type size;
  2. char* memblock;
  3. char test[20];
  4. int warte;
  5. DWORD Offset;
  6.  
  7. int main()
  8. {
  9. ifstream file("Spiel.exe", ios::out | ios::app | ios::binary);
  10. if(file.is_open())
  11. {
  12. size = file.tellg();
  13. memblock = new char [size];
  14. file.seekg(0, ios::beg);
  15. file.read(memblock, size);
  16. //Offset = dwFindPattern((PBYTE)"\x55\x8B\xEC\x6A\xFF\x68\x00\x00\x00\x00\x64\xA1\x00\x00\x00\x00\x50\x64\x89\x25\x00\x00\x00\x00\x51\x8B\x4D\x08\x53\x56\x8B\x35\x00\x00\x00\x00", "xxxxxx????xx????xxxx????xxxxxxxx????", 0x401000, 0x29e000);
  17.  
  18. }
  19. else
  20. {
  21. cout << "Datei konnte nicht geoeffnet werden!";
  22. cin >> warte;
  23. }
  24.  
  25. Offset = *(DWORD*) Offset;
  26. //sprintf(test, "Adresse: %x", Offset);
  27. cout << "Adresseee: %x" << Offset;
  28. cin >> warte;
  29. file.close();
  30. return 0;
  31. }

Ich hoffe einer kann mir helfen.
Gruß

icon #2

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
i smell c&p...

anyway:
http://www.gamedeception.net/showthread.php?t=19248

wirste wahrscheinlich (hoffentlich?) sowieso nicht hinkriegen...

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #3

Anmeldungsdatum: Jan 2010

Beiträge: 4

Über den Prozess wäre ich auch dran gekommen, aber ich möchte ja ohne das mein Programm sich in das andere Programm injektet. In AutoIT ist z.B. hier ein Code zu, der ohne jeglicher Art von Injektion funktioniert.
TEXT Code:
  1. #NoTrayIcon
  2. ;// open and read the client in binary mode
  3. $file = FileOpen('Spiel.exe', 16)
  4. $content = FileRead($file, FileGetSize('Spiel.exe'))
  5. ;// filter the wanted stuff from the code
  6. $filter = StringRegExp($content, "558BEC6AFF68.{8}64A1000000005064892500000000518B4D.{2}53568B35(.{8})0FB786.{8}89018B8E(.{8})8B11578965.{2}C745.{2}00000000FF92.{8}8B45.{2}D955.{2}D9188B8E.{8}8B11FF92.{8}D955.{2}8B45.{2}D918B0.{2}8B4D.{2}64890D000000005F5E5B8BE55DC3", 1)
  7. FileClose($file)
  8.  
  9. ;// if the regex filter worked, display the results in a simple gui
  10. If IsArray($filter) Then
  11. GUICreate('Offset Finder', 175, 55, Default, Default, 0x10C80000)
  12. GUICtrlCreateLabel('MainBaseAdress:', 10, 7, 85, 20)
  13. GUICtrlCreateInput('0x'&reverseHex($filter[0]), 95, 5, 70, 20, 0x801)
  14. GUICtrlCreateLabel('CharStructOffset:', 10, 32, 85, 20)
  15. GUICtrlCreateInput('0x'&reverseHex($filter[1]), 95, 30, 70, 20, 0x801)
  16. While GUIGetMsg()<>-3
  17. WEnd
  18. Else
  19. MsgBox(16, 'Error', 'oooops looks like something went wrong :s')
  20. EndIf
  21.  
  22. Func reverseHex($string)
  23. Local $return
  24. ;// if the string got a odd length, add a zero in front of it
  25. If Mod(StringLen($string),2)<>0 Then $string = '0'&$string
  26. ;// reverse the hex patterns
  27. For $i=1 To StringLen($string) Step 2
  28. $return = StringMid($string, $i, 2)&$return
  29. Next
  30. ;// remove the left-hand zeros
  31. While StringLeft($return, 1)='0'
  32. $return = StringTrimLeft($return, 1)
  33. WEnd
  34. Return $return
  35. EndFunc
Credits lolkop
icon #4

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
ich sehe, du hast keine ahnung, wahrscheinlich (sicher?) alles copy pasted also vergiss es.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #5

Anmeldungsdatum: Jan 2010

Beiträge: 4

Hätte ich Ahnung, dann müsste ich doch nicht fragen oder?
Aber auf Hilfe kann man hier ja nicht hoffen...
icon #6

Anmeldungsdatum: Mär 2011

Beiträge: 127

Benutzer-Bewertung:

1 positiv
0 negativ
CPP Code:
  1. CopyExeToModule(HANDLE hProc,HMODULE hMod)
tolle funktion die kannst du verwenden! oder du benutzt halt readprocessmemory um den speicher auszulesen - dwfindpattern macht auch nix anderes, als den speicher auslesen! (und vergleichen)
du hast mein vollstes vertrauen, ich glaube an dich, irgendwann findest du den fertigen code, den du dann nehmen kannst

icon #7

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
hilfe gerne, c+p code nein.

mmh glaube habe dich auch ein wenig missverstanden, möchtest du einen laufenden prozess durchsuchen, oder eine binäre datei?

wenn letzteres (vermute ich jetzt mal aufgrund des au3 codes...), also praktisch die datei wie mit nem hexeditor öffnen willst, dann:

http://lmgtfy.com/?q=c%2B%2B+datei+bin%C3%A4r+durchsuchen

erste link sieht brauchbar aus.

glaube aber trotzdem nicht, dass du es ohne c+p code hinkriegst, falls doch congratulation, you did your first step to a c++ coder...

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #8

Anmeldungsdatum: Jan 2010

Beiträge: 4

Ich hab ja auch keine ganze .cpp Datei verlangt, sondern nur Tipps, wie ich die FindPattern Funktion auf einer .exe Datei anwenden kann, ohne dass ich ihren Prozess anrühre. Genau so möchte ich es machen, dass macht mein Code ja auch
CPP Code:
  1. ifstream file("Spiel.exe", ios::out | ios::app | ios::binary);
durch dieses ios::binary wird ja meine Datei als Binäre Datei gelesen, nun muss ich irgendwie die Adresse für meine Funktion suchen, aber ich weiß halt nicht wie.
Vielleich erkläre ich es nochmal mithilfe des ASM Codes. Also ich habe für folgende Adresse eine Signatur erstellt.
TEXT Code:
  1. 004E7E7E |. 8B35 68D97000 MOV ESI,DWORD PTR DS:[70D968]
Nun möchte ich gerne die "70D968" auslesen. Ich habe mir eine Signatur erstellt und würde gerne diese Adresse auslesen. Dazu versuche ich halt das Programm ("Spiel.exe") in dem Binär Modus zu laden, damit ich über die FindPattern Funktion diese Adresse kriegen kann. Hoffentlich hast du es besser verstanden und kannst mir helfen. :/

Gruß
icon #9

Anmeldungsdatum: Mär 2011

Beiträge: 978

Benutzer-Bewertung:

89 positiv
6 negativ
satz mit x, das wird wohl nix.
das wars von mir dazu^^

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Zitat von xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Zitat von f4gsh0t_h4x
VAC ist an,immer,überall
Zitat von gibson.w
Ich mag braune Würstchen
Zitat von irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Zitat von irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Zitat von irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Zitat von irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Zitat von Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif