[AutoIT]Injector?

08/07/2010 22:58 "DarkDöner"#1
Hallo habe mal eine kleine frage
kann man in autoit einen injector und eine .dll erstellen? weil ich wollte
einen 32 bit 4story hack machen und dafür muss ich deinen injector
haben^^ fals ja sagt mir wie wen nicht habe ich pech und muss c++
lernen :D
08/07/2010 23:55 Shadow992#2
Injektor geht, aber Dll gehen nicht.
08/08/2010 01:16 "DarkDöner"#3
Hmm aber man braucht doch eine .dll also der injector injectet doch zur .dll oder nicht?
08/08/2010 09:41 Shadow992#4
Quote:
Originally Posted by EmoStyler009 View Post
Hmm aber man braucht doch eine .dll also der injector injectet doch zur .dll oder nicht?
Jop...
08/08/2010 11:02 "DarkDöner"#5
Hmm misst :D
08/08/2010 14:55 v0lle#6
Würde das nicht gehen ,
Dlls mit C++ erstellen und einen Injector mit AutoIt machen und die Dlls die man mit C++ gemacht hat mit AutoIt injecten ? xD
08/08/2010 15:02 Shadow992#7
Quote:
Originally Posted by volle14 View Post
Würde das nicht gehen ,
Dlls mit C++ erstellen und einen Injector mit AutoIt machen und die Dlls die man mit C++ gemacht hat mit AutoIt injecten ? xD
Klar würde das gehen, aber das macht fast keiner. ;)
08/08/2010 15:27 "DarkDöner"#8
Hmm hört sich aber sehr schwer an xD aber wäre geil das zu machen dan
kann man in 4story endlich wieder 32 bit hacken^^
08/08/2010 17:57 v0lle#9
DllStructCreate ( "Struct" [,Pointer] )

Erzeugt eine Struktur im C/C++-Stil die mit DllCall genutzt werden kann.

Hab ich in der Hilfe gefunden ...
08/08/2010 18:22 Shadow992#10
Quote:
Originally Posted by volle14 View Post
DllStructCreate ( "Struct" [,Pointer] )

Erzeugt eine Struktur im C/C++-Stil die mit DllCall genutzt werden kann.

Hab ich in der Hilfe gefunden ...
Schaust du:
PHP Code:
Func _InjectDll($hWnd$dllpath)
    ;
make sure the user passed valid parameters
    
If IsHWnd($hWnd) = 0 then 
        SetError
(-1)
        Return 
False
    
ElseIf StringLen($dllpath) <= Or StringRight($dllpath4) <> ".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*", 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], 8) & @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 
Quelle:
[Only registered and activated users can see links. Click Here To Register...]

Oder alternativ:
[Only registered and activated users can see links. Click Here To Register...]
08/08/2010 19:02 v0lle#11
Die UDF funkzt bei mir nit ._.
Der will die UDF nicht includen -.-
08/08/2010 19:21 "DarkDöner"#12
Ok thx an euch beiden^^