Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 14:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



DLL Injection with AutoIt ...

Discussion on DLL Injection with AutoIt ... within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Exetra's Avatar
 
elite*gold: 260
Join Date: Jun 2011
Posts: 355
Received Thanks: 8,167
DLL Injection with AutoIt ...

#old
Exetra is offline  
Old 06/21/2011, 12:22   #2
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
is this line correct?

PHP Code:
MsgBox(16"Error""Failed to inject" & @CRLF "Error code : " &@error
Should that means:
PHP Code:
MsgBox(16"Error""Failed to inject" & @CRLF "Error code : " &$err
????
Ludder231 is offline  
Old 06/27/2011, 19:41   #3
 
elite*gold: 0
Join Date: Aug 2009
Posts: 962
Received Thanks: 96
geht nicht-.-
lautlosertot is offline  
Old 06/28/2011, 14:21   #4
 
Reeek's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 1,304
Received Thanks: 485
sag' mal, laut, gehst du in die Schule? Kannst du lesen? Das ist kein Release, der TE hat eine Frage gestellt, weil sein Script eben nicht geht >.<

#vote4IQ-Test beim Registrieren
Reeek is offline  
Thanks
2 Users
Old 06/28/2011, 14:32   #5

 
ClOuDy.'s Avatar
 
elite*gold: 0
The Black Market: 184/0/0
Join Date: Jul 2008
Posts: 2,784
Received Thanks: 500
da war ein kurzer anflug von hackorskillz abgreifen
ClOuDy. is offline  
Old 06/28/2011, 18:57   #6
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Das Problem mit dem Fehlercode wird wohl an der fehlenden Berechtigung fehlen. Das dürfte eigentlich kein Problem sein, wenn man die Datei als Admin ausführt.

Ich habe aber mal meine UDF genommen und ein Beispiel dafür erstellt:
PHP Code:
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n

#RequireAdmin
#include <GUIConstants.au3>

GUICreate("Beispiel"275100)
GUISetBkColor(0xFFFFFF)
GUICtrlCreateLabel("Prozess:"10105017)
$I_ProcessName GUICtrlCreateInput(""651020021)
GUICtrlCreateLabel("DLL:"10405017)
$I_DllPath GUICtrlCreateInput(""654015021)
$B_SearchDll GUICtrlCreateButton("..."225404025)
$R_Auto GUICtrlCreateRadio("Automatisch"10757517)
GUICtrlSetState(-1$GUI_CHECKED)
$R_Man GUICtrlCreateRadio("Manuell"130755517)
$B_Inject GUICtrlCreateButton("Injizieren"190707525)
GUICtrlSetState(-1$GUI_DISABLE)
GUISetState()

$Injected False

Do
    
$Msg GUIGetMsg()
    Switch 
$Msg
        
Case $B_SearchDll
            GUICtrlSetData
($I_DllPathFileOpenDialog("Dll", @HomeDrive"Dynamic Link Library (*.dll)"3))
        Case 
$R_Auto
            GUICtrlSetState
($B_Inject$GUI_DISABLE)
        Case 
$R_Man
            GUICtrlSetState
($B_Inject$GUI_ENABLE)
        Case 
$B_Inject
            _InjectDll
(ProcessExists(GUICtrlRead($I_ProcessName)), GUICtrlRead($I_DllPath))
            
_Message(@error)
    EndSwitch

    If 
BitAND(GUICtrlRead($R_Auto), $GUI_CHECKED) And Not $Injected Then
        $ProcessId 
ProcessExists(GUICtrlRead($I_ProcessName))
        If 
$ProcessId 0 Then
            _InjectDll
($ProcessIdGUICtrlRead($I_DllPath))
            
_Message(@error)
            
$Injected True
            
;Exit
        EndIf
    EndIf

    
Sleep(10)
Until $Msg == $GUI_EVENT_CLOSE



Func _Message
($ErrorCode)
    If 
$ErrorCode <> 0 Then
        MsgBox
(48"Fehler""Es ist ein Fehler aufgetreten!" & @CRLF "Fehlercode: " & @error)
    Else
        
MsgBox(64"Info""Injektion erfolgreich!")
    EndIf
EndFunc


;=================================================================================================
; Function:            
_InjectDll($ProcessId$DllPath)
Description:        Injects a .dll into a running program.
; Return 
Value(s):    On Success Returns true
;                    On Failure Returns false
;                    @Error No error.
;                             
Invalid ProcessId.
;                             
File does not exist.
;                             
File is not a .dll (invalid file).
;                             
Failed to open 'Advapi32.dll'.
;                             
Failed to get the full path.
;                             
Failed to open the process.
;                             
Failed to call 'GetModuleHandle'.
;                             
Failed to call 'GetProcAddress'.
;                             
Failed to call 'VirtualAllocEx'.
;                             
10 Failed to write the memory.
;                             
11 Failed to create the 'RemoteThread'.
Author(s):        KillerDeluxe
;=================================================================================================

Func _InjectDll($ProcessId$DllPath)
    If 
$ProcessId == 0 Then Return SetError(1""False)
    If 
Not(FileExists($DllPath)) Then Return SetError(2""False)
    If 
Not(StringRight($DllPath4) == ".dll"Then Return SetError(3""False)

    
$Kernel32 DllOpen("kernel32.dll")
    If @
error Then Return SetError(4""False)

    
$DLL_Path DllStructCreate("char[255]")
    
DllCall($Kernel32"DWORD""GetFullPathNameA""str"$DllPath"DWORD"255"ptr"DllStructGetPtr($DLL_Path), "int"0)
    If @
error Then Return SetError(5""False)

    
$hProcess DllCall($Kernel32"DWORD""OpenProcess""DWORD"0x1F0FFF"int"0"DWORD"$ProcessId)
    If @
error Then Return SetError(6""False)

    
$hModule DllCall($Kernel32"DWORD""GetModuleHandleA""str""kernel32.dll")
    If @
error Then Return SetError(7""False)

    
$lpStartAddress DllCall($Kernel32"DWORD""GetProcAddress""DWORD"$hModule[0], "str""LoadLibraryA")
    If @
error Then Return SetError(8""False)

    
$lpParameter DllCall($Kernel32"DWORD""VirtualAllocEx""int"$hProcess[0], "int"0"ULONG_PTR"DllStructGetSize($DLL_Path), "DWORD"0x3000"int"4)
    If @
error Then Return SetError(9""False)

    
DllCall("kernel32.dll""BOOL""WriteProcessMemory""int"$hProcess[0], "DWORD"$lpParameter[0], "str"DllStructGetData($DLL_Path1), "ULONG_PTR"DllStructGetSize($DLL_Path), "int"0)
    If @
error Then Return SetError(10""False)

    
$hThread DllCall($Kernel32"int""CreateRemoteThread""DWORD"$hProcess[0], "int"0"int"0"DWORD"$lpStartAddress[0], "DWORD"$lpParameter[0], "int"0"int"0)
    If @
error Then Return SetError(11""False)

    
DllCall($Kernel32"BOOL""CloseHandle""DWORD"$hProcess[0])
    
DllClose($Kernel32)

    Return 
SetError(0""True)
EndFunc 
Vielleicht hilft es ja.
KDeluxe is offline  
Thanks
13 Users
Old 08/26/2011, 01:52   #7
 
elite*gold: 0
Join Date: Apr 2011
Posts: 1
Received Thanks: 0
Very Good KillerDeluxe !!
Rolandfrance is offline  
Reply


Similar Threads Similar Threads
Direct Injection Codes - Delphi/C++/AutoIt
11/08/2011 - PW Hacks, Bots, Cheats, Exploits - 49 Replies
Since all pro people here is a bit selfish... i decided to made my own guide and share with the forum!! OK... This is the best way to make your bot or whatever you making work well for you!!! STOP being eMo and just changing addresses!! Lets play hard!!!:D ALL INFORMATION HERE IS BASED ON PERFECT WORLD INTERNACIONAL (LAST VERSION) Before Start:
DLL injection und AutoIT DLLCall
11/30/2010 - AutoIt - 4 Replies
Hallo, ich hab ein Problem was mit seit ein paar Stunden den Kopf zerbricht, vllt ist es auch einfach der falsche Ansatz. Ich hab mir eine DLL zum injizieren mit C++ geschrieben, durch Winject wird diese auch injiziert und die main Funktion durch die WINAPI DLLMain aufgerufen (einfach nur eine MsgBox). Jetzt besteht meine Frage / Problem darin, kann ich mit AutoIt die restlichen Funktionen auch aufrufen (durch DLLCall) oder soll man dass auch lieber mit C++ realisieren. (andere...



All times are GMT +2. The time now is 14:57.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.