OldSchoolHack

Register / Login English

[CS:S] externer Triggerbot


icon #101

Join Date: Jan 2012

Posts: 26

Hi, bräucht mal eure Hilfe, bin schon seit gestern dran zu versuchen, wie ich nen text in directx zeichne!

TEXT Code:
  1. void initD3D(HWND hWnd);
  2. {
  3. d3d = Direct3DCreate9(D3D_SDK_VERSION);
  4.  
  5. D3DPRESENT_PARAMETERS d3dpp;0,
  6.  
  7. ZeroMemory(&d3dpp, sizeof(d3dpp));
  8. d3dpp.Windowed = FALSE;
  9. d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  10. d3dpp.hDeviceWindow = hWnd;
  11. d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
  12. d3dpp.BackBufferWidth = wi.rcWindow.right - wi.rcWindow.left;
  13. d3dpp.BackBufferHeight = wi.rcWindow.bottom - wi.rcWindow.top;
  14.  
  15.  
  16. d3d->CreateDevice(D3DADAPTER_DEFAULT,
  17. D3DDEVTYPE_HAL,
  18. hWnd,
  19. D3DCREATE_SOFTWARE_VERTEXPROCESSING,
  20. &d3dpp,
  21. &d3ddev);
  22.  
  23. D3DXCreateFont(d3ddev, // the D3D Device
  24. 30, // font height of 30
  25. 0, // default font width
  26. FW_NORMAL, // font weight
  27. 1, // not using MipLevels
  28. true, // italic font
  29. DEFAULT_CHARSET, // default character set
  30. OUT_DEFAULT_PRECIS, // default OutputPrecision,
  31. DEFAULT_QUALITY, // default Quality
  32. DEFAULT_PITCH | FF_DONTCARE, // default pitch and family
  33. "Arial", // use Facename Arial
  34. &dxfont); // the font object
  35.  
  36.  
  37. }
  38.  
  39.  
  40. void render_frame(void);
  41. {
  42. d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
  43.  
  44. d3ddev->BeginScene(); // begins the 3D scene
  45.  
  46. static RECT textbox; SetRect(&textbox, 0, 0, 640, 480);
  47.  
  48. dxfont->DrawTextA(NULL,
  49. "Hello World...FINALLY!",
  50. 22,
  51. &textbox,
  52. DT_CENTER | DT_VCENTER,
  53. D3DCOLOR_ARGB(255, 255, 255, 255));
  54.  
  55. d3ddev->EndScene(); // ends the 3D scene
  56.  
  57. d3ddev->Present(NULL, NULL, NULL, NULL);
  58.  
  59.  
  60. }
  61.  

Allerdings crashed mir so das progamm, mit der Meldung

Eine Ausnahme (erste Chance) bei 0x74bdb727 in name.exe: Microsoft C++-Ausnahme: long an Speicherposition 0x001bf5ac..
Eine Ausnahme (erste Chance) bei 0x74bdb727 in name.exe: Microsoft C++-Ausnahme: long an Speicherposition 0x001bf5ac..
Eine Ausnahme (erste Chance) bei 0x74bdb727 in name.exe: Microsoft C++-Ausnahme: long an Speicherposition 0x001bf5ac..
Eine Ausnahme (erste Chance) bei 0x74bdb727 in name.exe: Microsoft C++-Ausnahme: long an Speicherposition 0x001bf5ac..
Eine Ausnahme (erste Chance) bei 0x74bdb727 in name.exe: Microsoft C++-Ausnahme: long an Speicherposition 0x001bf5ac..
Eine Ausnahme (erste Chance) bei 0x74bdb727 in name.exe: Microsoft C++-Ausnahme: long an Speicherposition 0x001bf5ac..
Eine Ausnahme (erste Chance) bei 0x00a3319c in name.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.
Unbehandelte Ausnahme bei 0x770315ee in name.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.
Eine Ausnahme (erste Chance) bei 0x7702017e in name.exe: 0x00000000: Der Vorgang wurde erfolgreich beendet.
Unbehandelte Ausnahme bei 0x770315ee in name.exe: 0x00000000: Der Vorgang wurde erfolgreich beendet.
Das Programm "[4864] name.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.

wenn ich den code rausnehme funktioniert das programm 1A und zeichnet mir nen würfel ins fenster!

icon #102

Join Date: Jan 2012

Posts: 5

wollte das jetzt auch mal probieren, mein Problem:
ich hab die Spieler und die TeamID bereits, weiß aber nicht genau wie ich das mit dem radarstruct machen soll.
Ich kann mir noch nicht wirklich was drunter vorstellen
Mich verwirrt das alles mit den ganzen Offsets und wo ich was drauf bzw. abziehen muss :/

kann mir das vielleicht nochmal jemand erklären, was ich wo addieren/abziehen/multiplizieren muss?
icon #103

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Die radar struktur ist ein Speicherbereich, in dem in gewissen Abständen zueinander Daten jedes Spielers gespeichert sind.
Zuerst brauchst du die basis adresse, von welcher die Radar Struktur beginnt:
Beispiel zum finden der radarbase: du machst nen Localen Server auf damit du Index 1 bist. Dann suchste die Adresse deiner hp. Dann : hpadresse - hpoffset - structsize(0x140) = radarbase. Auf diese radarbase dann nen Pointer suchen und fertig ist es.
Danach kannst du mit radarbase + index*0x140 + jeweiliges offset auf alle Daten der Spieler zugreifen.
Ausführliches Beispiel:
Für das Beispiel nehmen wir mal an, dass der Pointer zur Radar Basis Adresse so aussieht: client.dll + 0x7016A8.
So, jetzt willst du die HP des 3. Spielers auslesen. Das geht wie folgt:
client.dll+0x7016A8 + 3*0x140 + 0x38.
// client.dll+0x7016A8 ist der Anfang der Radar Struktur.
// Die radar struktur für einen Spieler hat die größe 0x140, da du den 3. Spieler willst, brauchste 3*0x140.
// Jetz bist du also am Anfang der Struktur für den 3. Spieler und da du die HP haben willst, rechnest du noch 0x38 drauf , also das offset für die HP.
Und *zack* schon haste die HP des 3. Spielers. So funktioniert das für alle Daten im Struct und für jeden Spieler.
Greetz Manta

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #104

Join Date: Jan 2012

Posts: 26

//edit

Habs jetzt entlich hinbekommen nen text zu zeichnen Das problem lag an der Begin/Endscene
icon #105

Join Date: Jan 2012

Posts: 5

Mhh, nachdem mit MantaRochen geholfen und mein Verständniss für die Sache jetzt auf jeden Fall deutlich besser ist, krieg ichs trotzdem noch immer nicht hin:

Ich will es erst mal in VB zum laufen bekommen und erst später, wenn mein Grundwissen in C++ aufgebessert ist, dort machen.

Also, Ich hätte das so gemacht:

VB Code:
  1.  
  2. Dim PointerTrigger As Int32 = Read_Long(getBaseAddr("client.dll", process(0)) + &H6F9B74)
  3. Dim IndexvomSpieler As Int32 = Read_Long(PointerTrigger + &H1468)
  4. ' Damit lese ich aus welchen Index der Spieler hat, der sich auf meinem xHair befindet
  5.  
  6. Dim Radarbase As Int32 = Read_Long(getBaseAddr("client.dll", process(0)) + &H738098)
  7. ' So damit lese ich die Radarbasis aus
  8.  
  9. Dim AnfangRadarbase As Int32 = Read_Long(Radarbase - &H140)
  10. 'Nun zeihe ich 140 von der Radarbasis ab, um zum Anfang zu gelangen
  11.  
  12. Dim ZumSpieler As Int32 = Read_Long(AnfangRadarbase + &H140 * IndexvomSpieler)
  13. 'so nun addiere ich die die richtige Radarbasis(die Am Anfang beginnt) mit 140 * dem Index des Spielers unter meinem xHair
  14.  
  15. Dim HPvomSpieler As Int32 = Read_Long(ZumSpieler + &H5C)
  16. 'jetzt rechne ich noch das Offset von der Hp darauf und erhalte leider kein Ergebniss(0)
  17.  


Wie gesagt erhalte ich wenn cih versuche die HPvomSpieler auszulesen immer 0 als Wert zurück :/

Weiß wer, wo der Fehler liegt, was ich falsch mache?
icon #106

Join Date: Jan 2012

Posts: 5

push :/

icon #107

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Mach's  direkt iN c++ und ich Helf dir wenn du nicht weiter kommst...

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #108

Join Date: Jan 2011

Posts: 58

kann mall einer den vollendeten bot uploaden >.< bin zu blöd

__________________

We aRe oSh
icon #109

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
So einfach isses nicht setz dich dran und machet selbst so schwer ist das nicht.

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #110

Join Date: Jan 2012

Posts: 13

Tag Leute, ich weiß der Thread ist verdammt alt, aber er wurde ja so oder so schon oft genug gepusht.^^
Ich hab ne Frage zu der "readmem" Sache wie sie auf Seite 1 in vb steht. Ich bekomme bei der Bytegröße "4", die nach dem "pointer" steht immer eine Fehlermeldung. Natürlich habe ich den richtigen pointer+offset eingetragen.

Die Fehlermeldung lautet: Der Wert vom Typ "Integer" kann nicht in "System.Diagnostics.Process" konvertiert werden.

Hier zu sehen, die 4 nach dem Wort pointer gibt die Fehlermeldung von sich:

TEXT Code:
  1. If readmem((getBaseAddr("client.dll", hl2) + &H508170) + (&H140 * (readmem(readmem(getBaseAddr("client.dll", hl2) + pointer, 4) + offset, 4) - 1)) + &H2C, 1) = 2 Then
  2. msgbox("Du ziehlst auf einen Terrorist!")
  3. End If
icon #111

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Also ich habe wenig Ahnung von vb , aber die if schleife sieht schon sehr komisch aus, also zumindest die readmem sachen.
(&H140 * (readmem(readmem(getBaseAddr("client.dll", hl2) + pointer, 4) + offset, 4) - 1)) + &H2C, 1)
Was zum Teufel soll das werden?

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #112

Join Date: Jan 2012

Posts: 13

Es geht ja darum den Wert der Adresse auszulesen. Die Funktion / sub hab ich aus dem ersten Post genommen, da ich dachte ist schon so richtig. Normal beherrsche ich vb.net, aber diesen Fehler bzw wie ich den readmem Teil umstellen könnte weiß ich nicht. Durch Google habe ich mehrfach gelesen, dass bei vb die redmem Sache unter Win7 Probleme bereitet, bin halt ziemlich unsicher gerade und deswegen Frage ich hab mal nach. Habe schon einige Umformatierungen des Codes getestet.
icon #113

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Ich denke nicht, dass es an win 7 liegt, ich kann dir jetzt auch nciht sagen, wie es richtig aussieht, aber das sieht definitiv ziemlich falsch aus. Google doch mla nach der ReadProcessMemory oder readmem oder wie auch immer syntax und mach es ordentlich.

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #114

Join Date: Jun 2010

Posts: 561

Die Funktion Readmem scheint an der Stelle keinen Integer zu erwarten, wahrscheinlich hast irgendwo ne Klammer vergessen oder so.
icon #115

Join Date: Jan 2012

Posts: 13

Klammer fehlt nicht und eine herkömmliche ReadProcessMemory Funktion kann ich nicht verwenden, da diese in vb.net keine Pointer verkraftet. Da sMp anscheinend hier noch aktiv ist hoffe ich er kann mir helfen wenn er on ist.
icon #116

Join Date: Jun 2010

Posts: 561

Schau dir doch einfach mal die Funktion an und überleg, was fehlt. Es erwartet den prozess an der Stelle wo du den Integer setzt.

icon #117

Join Date: Jan 2012

Posts: 13

Wahh bin so dumm... -.- Ja geht jetzt. Danke echt nett das du mir geholfen hast.
icon #118

Join Date: Jul 2012

Posts: 3

Ist es möglich, dass ich auslese, ob man den Kopf eines Spielers anvisiert hat?
icon #119

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Nein, zumindest nicht direkt. Aber mit sMp's tutorial kannste zumindest nen billigen trigger aufn ganzen Körper machen.

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #120

Join Date: Jul 2012

Posts: 3

Eigentlich müsste man ja nur mit Pitch und Yaw schauen, ob der Gegner am Kopf anvisiert ist:
http://puu.sh/ZTZshttp://puu.sh/ZTZA
Aber beim Codingteil komm ich nicht weiter