Nabend,
Ich versuch mich momentan den Tinytoon Hook hiermit zum implementieren, da mich Forceshock langsam....
Wär nett wenn jemand noch sinnvolle Beispiele dazu hätte, ua. selbst Erfahrung damit hat.
Code:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF
Code:
Private Sub Command1_Click()
Dim hwnd As Long
Dim pid As Long
Dim pHandle As Long
Dim x As Integer
hwnd = FindWindow(vbNullString, "World Of Warcraft")
If (hwnd = 0) Then
* *Label1.Caption = "Game not running!"
* *Exit Sub
End If
GetWindowThreadProcessId hwnd, pid
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (pHandle = 0) Then
* *Label1.Caption = "Couldn't get a process handle."
* *Exit Sub
End If
WriteProcessMemory pHandle, PLACE YOUR CODE HERE TO WRITE TO THE GAME
CloseHandle pHandle
End Sub
VB6 wär nich wirklich die ideale sprache für solche dinge :P solltest lieber c++ oder so dafür nehmen,
gibt aber viele schöne bücher zu vb hooking ... eins davon heisst glaub ich "Subclassing and hooking in VB6" such ma dannach vielleicht findest n ebook oda nen billiges bei amazon.de
... hol dir "Hooking and Subclassing in Visual Basic 6" kauf dir das Buch oder hol dir das ebook, ka wo es das gibt, da wird alllllles schön erklärt, wird auch erklärt was Hooks sind
Ich glaube wir missverstehen uns hier. Ich sagte nicht, dass es nicht möglich ist mit VB hooks zu schreiben, sondern nur, dass es nicht möglich ist die eigentlich Hook DLL selbst in VB zu schreiben, da man mit VB nur ActiveX-DLLs schreiben kann und so auf Fremdherstellerkomponenten angewiesen ist.
nein man kann in vb6 nicht NUR ActiveX-DLLs schreiben :P
man kann auch richtige system dlls schreiben die global von jeder anderen sprache verwendet werden können, soweit ich das weiss
Den programmiertechnischen Mechanismus, diese Funktionalität zu erreichen, nennt man "Tastatur-Hook". Um ihn systemweit nutzen zu können wird eine Standard-DLL benötigt, die eine Empfängerfunktion für Nachrichten bei Betätigung einer Taste zur Verfügung stellt. Hier ist bereits eine Grenze gesetzt: Da Visual Basic zwar "ActiveX"-DLLs, nicht aber Standard-DLLs erstellen kann, bleibt dieser Weg zur direkten Nutzung unter Visual Basic 6.0 versperrt (natürlich lässt sich unter Zuhilfenahme von Fremdherstellerkomponenten auch dieses Ansinnen realisieren).
Quelle : msdn von Microsoft...die werden ja wohl wissen, was mit vb geht und was nicht
oh mann neji.... du bist auchn held msdn zu benutzen...
msdn, microsoft lol ja klar....
1. denkst du da steht auch wie du multithreading in vb6 hinkriegst ? nein das kriegst nur mit api hin, da multithreading so von vb6 aus nicht möglich ist
2. denkst du da steht drin wie man mit vb6 konsolenproggs macht ? nein das kriegst du nur mit api hin, da konsolenproggs von vb6 aus normal nit möglich sind x.x
und was lernen wir daraus ? auf msdn und microsoft seiten findest du zu vb6 nur solche infos die von haus aus funzen, die vb6 also 100%ig unterstützt ohne irgendwelche spezielle api kagge
[C++]Hooks 03/25/2010 - Coding Tutorials - 12 Replies so... ich denke mal, dass ich euch eine der wichtigsten teile in sachen gamehacking hier erklären kann, oder zumindest versuchen zu erklären:p
fangen wir mal damit an, was ich benutze:
-Visual Studio 2008 Professional + Visual Assist X
-IDA Pro Free
-ein game
los gehts:
erstellt euch eine struktur, wodrin ihr informationen über einen hook speichert.
bei mir sieht das so aus:
[c++]hooks 11/02/2009 - C/C++ - 2 Replies brauche hilfe bei meinen hooks!
ms detours will ich nich benutzen (vorallem weil die nich für meine zwecke laufen :D), ausserdem um weiterzu lernen eigenes system schreiben!
mein problem is wenn ich in einer funktion die ersten 5 bytes mit jmp dword überschreibe, und z.b. das 2 byte auch nen jmp dword ist, bleibt am ende 1 byte über!
in meiner subfunc speicher ich die register mit pushad, call , popad, den überschriebenen code hier einfügen, und dann jmp ....