hi
kann man mit autoit eine dll in ein laufendes prog injezieren??
dll in prog injezierren
-
- [ offen ]
-
HansWurrst -
9. August 2009 um 21:23 -
Geschlossen -
Erledigt
-
-
Das ist doch nicht erlaubt.
-
warum ?
-
keine ahnung autoit.de hat was gegen hacks, bots usw......
EDIT: autoitbot.de ist speziell für hacks, bots und sonst so zeugs gemacht worden
-
Hier:
Spoiler anzeigen
[autoit]Func _InjectDll($hWnd, $dllpath)
[/autoit]
;make sure the user passed valid parameters
If $hWnd <= 0 Then
SetError(-1)
Return False
ElseIf StringLen($dllpath) <= 4 Or StringRight($dllpath, 4) <> ".dll" Then
SetError(-2)
Return False
EndIf
Local $pid, $pHandle, $pLibRemote, $modHandle, $LoadLibraryA, $hThread
;open dll that we'll be using
Local $kernel32 = DllOpen("kernel32.dll")
;get the pid from the window provided
$pid = DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $hWnd, "int_ptr", 0)
If IsArray($pid) Then
$pid = $pid[2]
Else
SetError(-3)
Return False
EndIf
;open the process for writing
$pHandle = DllCall($kernel32, "int", "OpenProcess", "int", 0x1F0FFF, "int", 0, "int", $pid)
If IsArray($pHandle) And $pHandle[0] > 0 Then
$pHandle = $pHandle[0]
Else
SetError(-4)
Return False
EndIf
$pLibRemote = DllCall($kernel32, "int", "VirtualAllocEx", "int", $pHandle, "short", 0, "int", 0x1000, "int", 0x1000, "int", 4)
If IsArray($pLibRemote) Then
If $pLibRemote[0] > 0 Then
;debug
ConsoleWrite("0x" & Hex($pLibRemote[0], & @CR)
$pLibRemote = $pLibRemote[0]
Else
SetError(-5)
Return False
EndIf
Else
SetError(-6)
Return False
EndIf
For $i = 0 To StringLen($dllpath)
$ret = DllCall("kernel32.dll", "int", "WriteProcessMemory", "int", $pHandle, "int", $pLibRemote + $i, "int_ptr", Asc(StringMid($dllpath, $i + 1, 1)), "int", 1, "int", 0)
If IsArray($ret) Then
If $ret[0] = 0 Then
SetError(-7)
Return False
EndIf
Else
SetError(-8)
Return False
EndIf
Next
$modHandle = DllCall($kernel32, "long", "GetModuleHandle", "str", "kernel32.dll")
If IsArray($modHandle) Then
If $modHandle[0] > 0 Then
$modHandle = $modHandle[0]
Else
SetError(-9)
Return False
EndIf
Else
SetError(-10)
Return False
EndIf
$LoadLibraryA = DllCall($kernel32, "long", "GetProcAddress", "long", $modHandle, "str", "LoadLibraryA")
If IsArray($LoadLibraryA) Then
If $LoadLibraryA[0] > 0 Then
$LoadLibraryA = $LoadLibraryA[0]
Else
SetError(-11)
Return False
EndIf
Else
SetError (-12)
Return False
EndIf
$hThread = DllCall($kernel32, "int", "CreateRemoteThread", "int", $pHandle, "int", 0, "int", 0, "long", $LoadLibraryA, "long", $pLibRemote, "int", 0, "int", 0)
If IsArray($hThread) Then
ConsoleWrite($hThread[0] & @CR)
If $hThread[0] > 0 Then
$hThread = $hThread[0]
Else
SetError(-13)
Return False
EndIf
Else
SetError(-14)
Return False
EndIf
DllCall($kernel32, "int", "VirtualFreeEx", "int", $pHandle, "int", $pLibRemote, "int", 0x1000, "int", 0x8000)
DllCall($kernel32, "int", "CloseHandle", "int", $hThread)
DllCall($kernel32, "int", "CloseHandle", "int", $pHandle)
DllClose($kernel32)
Return True
EndFunc -
danke
kann geschlossen weden€dit: oder doch noch net was muss bei hwnd rein
-
Hier darf nicht gewerbt werden für 'böse' Foren. Also eigentlich schon aber nicht Foren oder Seiten die gegen die Regeln von AutoIt.de verstoßen. AutoIt***.de ist einer dieser Seiten! Mit Verlaub, ich bin selber auf der Seite registriert wie du bestimmt schon mitbekommen hast. Solltest dich aber ein bisschen zusammenreißen. Die Mitglieder können über die Suchfunktion 'Google' auch nach dieser Seite suchen.
-
was muss ich bei hwnd hinschreiben
die fensterhandel geht i wie net
oder is das die prozess id ? -
Ähm, hallo?
Wir machen kein Support für ein Bot.Vorallem Dingen nicht für Exploits / Hacks & Cheats.
Und guck dir mal die deutsche Hilfe an. -
muss man das den gleich bot nennen wenn man eine dll injectieren will ???
-
Hier mal ein Beispiel aus dem Englischen Forum:
[autoit]$ret = _InjectDll(WinGetHandle("Calculator"), "c:\testdll.dll")
[/autoit]
$err = @error
If $err < 0 Then
MsgBox(16, $ret, $err)
Else
MsgBox(64, $ret, "YUP!")
EndIf -
so hatte ich das au schon gemacht
aber dann kommt immer @error=-1