Memoryopen error

06/01/2013 18:45 yuser#1
Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#RequireAdmin
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Crypt.au3>
#include <StaticConstants.au3>

#Region ### START Koda GUI section ### Form=
$form1 = GUICreate("Minihack-Project;Minium",)
$checkbox1 = GUICtrlCreateCheckbox("Non-Gravity")
$checkbox2 = GUICtrlCreateCheckbox("1 Hit",)
$checkbox3 = GUICtrlCreateCheckbox("200 HP")
$checkbox4 = GUICtrlCreateCheckbox("Infinite Walls",)
$checkbox5 = GUICtrlCreateCheckbox("Hitrange",)
$checkbox6 = GUICtrlCreateCheckbox("Dodge Speed",)
$checkbox7 = GUICtrlCreateCheckbox("Fast fire", )
$checkbox8 = GUICtrlCreateCheckbox("God Mode",)
$checkbox9 = GUICtrlCreateCheckbox("Inf Ammo",)
$checkbox10 = GUICtrlCreateCheckbox("Inf Sp",)
$checkbox11 = GUICtrlCreateCheckbox("Insta-Respawn", )
$checkbox12 = GUICtrlCreateCheckbox("SP Refill", )
$checkbox13 = GUICtrlCreateCheckbox("Speed Hack", )
$button1 = GUICtrlCreateButton("Start Now.",)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
MsgBox(4096, "Minihack-Project;Minium", "Please Do NOT Leech This. Made by yuser. Minihack-Project;Minium")
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
Case $button1
			_something()
	EndSwitch
	WEnd

Func _something()
	GUISetState(@SW_HIDE)
	ToolTip("Waiting For S4League.", 0, 0)
	$wait = ProcessWait("S4Client.exe")
	$pid = ProcessExists("S4Client.exe")
	Sleep(500)
	[COLOR="Red"]$OPEN = _MemoryOpen ($PID)[/COLOR] <-- Autoit Says That Error Is Here.
	
	If GUICtrlRead($checkbox1) = 1 Then
		_memorywrite(, $open, "", "long")
	 EndIf
    If GUICtrlRead($checkbox2) = 1 Then
		_memorywrite(, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox3) = 1 Then
	    _memorywrite(, $open, "", "long")
	 EndIf
	 If GUICtrlRead($checkbox4) = 1 Then
	    _memorywrite(, $open, "", "long")
     EndIf
	 If GUICrtlRead($checkbox5) = 1 Then
		_memorywrite(, $open, "1", "float")
     EndIf
	If GUICtrlRead($checkbox6) = 1 Then
		_memorywrite(6112602, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox7) = 1 Then
		_memorywrite(5635049, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox8) = 1 Then
		_memorywrite(5343813, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox9) = 1 Then
		_memorywrite(7704898, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox10) = 1 Then
		_memorywrite(4723746, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox11) = 1 Then
		_memorywrite(6174003, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox12) = 1 Then
		_memorywrite(4753893, $open, "", "long")
	EndIf
	If GUICtrlRead($checkbox13) = 1 Then
		_memorywrite(4715581, $open, "", "long")
	 EndIf
	Exit 
EndFunc
I Deleted The Values And The Adresses For Copyrights lol. Help Pls.
06/01/2013 19:15 Ruffу#2
wo ist
PHP Code:
 #include <Nomadmemory.au3> 
??
06/01/2013 19:21 yuser#3
Quote:
Originally Posted by Bɒժ View Post
wo ist
PHP Code:
 #include <Nomadmemory.au3> 
??
Error Opening File
06/01/2013 19:28 FacePalmMan#4
Quote:
Originally Posted by yuser View Post
Error Opening File
du musst die nomadmemory.au3 in den include ordner von autoit tun ansonsten klappts nicht! andere möglichkeit wäre: #include "nomadmemory.au3" statt #include <nomadmemory.au3> benutzen und die nomadmemory.au3 im ordner haben wo das script ausgeführt wird.
06/02/2013 12:13 YatoDev#5
Quote:
Originally Posted by FacePalmMan View Post
du musst die nomadmemory.au3 in den include ordner von autoit tun ansonsten klappts nicht! andere möglichkeit wäre: #include "nomadmemory.au3" statt #include <nomadmemory.au3> benutzen und die nomadmemory.au3 im ordner haben wo das script ausgeführt wird.
das ist sooo egal mwo die datei liegt ob du die jetzt mit "" oder <> bezeichnest

Nomad memory :
PHP Code:


    
#include-once
    #region _Memory
    
;=================================================================================================
    ; 
AutoIt Version:    3.1.127 (beta)
    ; 
Language:            English
    
Platform:            All Windows
    
Author:            Nomad
    
Requirements:        These functions will only work with beta.
    ;=================================================================================================
    ; 
Credits:    wOuter These functions are based on his original _Mem() functions.  But they are
    
;            easier to comprehend and more reliable.  These functions are in no way a direct copy
    
;            of his functions.  His functions only provided a foundation from which these evolved.
    ;=================================================================================================
    ;
    ; 
Functions:
    ;
    ;=================================================================================================
    ; Function:            
_MemoryOpen($iv_Pid(, $iv_DesiredAccess(, $iv_InheritHandle)))
    ; 
Description:        Opens a process and enables all possible access rights to the process.  The
    
;                    Process ID of the process is used to specify which process to open.  You must
    
;                    call this function before calling _MemoryClose(), _MemoryRead(), or _MemoryWrite().
    ; 
Parameter(s):        $iv_Pid The Process ID of the program you want to open.
    ;                    
$iv_DesiredAccess - (optionalSet to 0x1F0FFF by default, which enables all
    
;                                        possible access rights to the process specified by the
    
;                                        Process ID.
    ;                    
$if_InheritHandle - (optional) If this value is TRUEall processes created by
    
;                                        this process will inherit the access handle.  Set to TRUE
    
;                                        (1by default.  Set to 0 if you want it to be FALSE.
    ; 
Requirement(s):    A valid process ID.
    ; Return 
Value(s):     On Success Returns an array containing the Dll handle and an open handle to
    
;                                 the specified process.
    ;                    
On Failure Returns 0
    
;                    @Error No error.
    ;                             
Invalid $iv_Pid.
    ;                             
Failed to open Kernel32.dll.
    ;                             
Failed to open the specified process.
    ; 
Author(s):        Nomad
    
Note(s):
    ;=================================================================================================
    
Func _MemoryOpen($iv_Pid$iv_DesiredAccess 0x1F0FFF$if_InheritHandle 1)

        If 
Not ProcessExists($iv_PidThen
            SetError
(1)
            Return 
0
        
EndIf

        
Local $ah_Handle[2] = [DllOpen('kernel32.dll')]

        If @
Error Then
            SetError
(2)
            Return 
0
        
EndIf

        
Local $av_OpenProcess DllCall($ah_Handle[0], 'int''OpenProcess''int'$iv_DesiredAccess'int'$if_InheritHandle'int'$iv_Pid)

        If @
Error Then
            DllClose
($ah_Handle[0])
            
SetError(3)
            Return 
0
        
EndIf

        
$ah_Handle[1] = $av_OpenProcess[0]

        Return 
$ah_Handle

    EndFunc

    
;=================================================================================================
    ; Function:            
_MemoryRead($iv_Address$ah_Handle(, $sv_Type))
    ; 
Description:        Reads the value located in the memory address specified.
    ; 
Parameter(s):        $iv_Address The memory address you want to read fromIt must be in hex
    
;                                  format (0x00000000).
    ;                    
$ah_Handle An array containing the Dll handle and the handle of the open
    
;                                 process as returned by _MemoryOpen().
    ;                    
$sv_Type - (optionalThe "Type" of value you intend to read.  This is set to
    
;                                'dword'(32bit(4bytesigned integerby default.  See the help file
    
;                                for DllStructCreate for all types.
    ;                                
An example: If you want to read a word that is 15 characters in
    
;                                lengthyou would use 'char[16]'.
    ; 
Requirement(s):    The $ah_Handle returned from _MemoryOpen.
    ; Return 
Value(s):    On Success Returns the value located at the specified address.
    ;                    
On Failure Returns 0
    
;                    @Error No error.
    ;                             
Invalid $ah_Handle.
    ;                             
$sv_Type was not a string.
    ;                             
$sv_Type is an unknown data type.
    ;                             
Failed to allocate the memory needed for the DllStructure.
    ;                             
Error allocating memory for $sv_Type.
    ;                             
Failed to read from the specified process.
    ; 
Author(s):        Nomad
    
Note(s):            Values returned are in Decimal formatunless specified as 'char' typethen
    
;                    they are returned in ASCII format.  Also note that size ('char[size]') for all
    
;                    'char' types should be 1 greater than the actual size.
    ;=================================================================================================
    
Func _MemoryRead($iv_Address$ah_Handle$sv_Type 'dword')

        If 
Not IsArray($ah_HandleThen
            SetError
(1)
            Return 
0
        
EndIf

        
Local $v_Buffer DllStructCreate($sv_Type)

        If @
Error Then
            SetError
(@Error 1)
            Return 
0
        
EndIf

        
DllCall($ah_Handle[0], 'int''ReadProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')

        If 
Not @Error Then
            Local $v_Value 
DllStructGetData($v_Buffer1)
            Return 
$v_Value
        
Else
            
SetError(6)
            Return 
0
        
EndIf

    
EndFunc

    
;=================================================================================================
    ; Function:            
_MemoryWrite($iv_Address$ah_Handle$v_Data(, $sv_Type))
    ; 
Description:        Writes data to the specified memory address.
    ; 
Parameter(s):        $iv_Address The memory address you want to write to.  It must be in hex
    
;                                  format (0x00000000).
    ;                    
$ah_Handle An array containing the Dll handle and the handle of the open
    
;                                 process as returned by _MemoryOpen().
    ;                    
$v_Data The data to be written.
    ;                    
$sv_Type - (optionalThe "Type" of value you intend to write.  This is set to
    
;                                'dword'(32bit(4bytesigned integerby default.  See the help file
    
;                                for DllStructCreate for all types.
    ;                                
An example: If you want to write a word that is 15 characters in
    
;                                lengthyou would use 'char[16]'.
    ; 
Requirement(s):    The $ah_Handle returned from _MemoryOpen.
    ; Return 
Value(s):    On Success Returns 1
    
;                    On Failure Returns 0
    
;                    @Error No error.
    ;                             
Invalid $ah_Handle.
    ;                             
$sv_Type was not a string.
    ;                             
$sv_Type is an unknown data type.
    ;                             
Failed to allocate the memory needed for the DllStructure.
    ;                             
Error allocating memory for $sv_Type.
    ;                             
$v_Data is not in the proper format to be used with the "Type"
    
;                                 selected for $sv_Type, or it is out of range.
    ;                             
Failed to write to the specified process.
    ; 
Author(s):        Nomad
    
Note(s):            Values sent must be in Decimal formatunless specified as 'char' typethen
    
;                    they must be in ASCII format.  Also note that size ('char[size]') for all
    
;                    'char' types should be 1 greater than the actual size.
    ;=================================================================================================
    
Func _MemoryWrite($iv_Address$ah_Handle$v_Data$sv_Type 'dword')

        If 
Not IsArray($ah_HandleThen
            SetError
(1)
            Return 
0
        
EndIf

        
Local $v_Buffer DllStructCreate($sv_Type)

        If @
Error Then
            SetError
(@Error 1)
            Return 
0
        
Else
            
DllStructSetData($v_Buffer1$v_Data)
            If @
Error Then
                SetError
(6)
                Return 
0
            
EndIf
        EndIf

        
DllCall($ah_Handle[0], 'int''WriteProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')

        If 
Not @Error Then
            
Return 1
        
Else
            
SetError(7)
            Return 
0
        
EndIf

    
EndFunc

    
;=================================================================================================
    ; Function:            
_MemoryClose($ah_Handle)
    ; 
Description:        Closes the process handle opened by using _MemoryOpen().
    ; 
Parameter(s):        $ah_Handle An array containing the Dll handle and the handle of the open
    
;                                 process as returned by _MemoryOpen().
    ; 
Requirement(s):    The $ah_Handle returned from _MemoryOpen.
    ; Return 
Value(s):    On Success Returns 1
    
;                    On Failure Returns 0
    
;                    @Error No error.
    ;                             
Invalid $ah_Handle.
    ;                             
Unable to close the process handle.
    ; 
Author(s):        Nomad
    
Note(s):
    ;=================================================================================================
    
Func _MemoryClose($ah_Handle)

        If 
Not IsArray($ah_HandleThen
            SetError
(1)
            Return 
0
        
EndIf

        
DllCall($ah_Handle[0], 'int''CloseHandle''int'$ah_Handle[1])
        If 
Not @Error Then
            DllClose
($ah_Handle[0])
            Return 
1
        
Else
            
DllClose($ah_Handle[0])
            
SetError(2)
            Return 
0
        
EndIf

    
EndFunc

    
;=================================================================================================
    ; Function:            
_MemoryPointerRead ($iv_Address$ah_Handle$av_Offset(, $sv_Type))
    ; 
Description:        Reads a chain of pointers and returns an array containing the destination
    
;                    address and the data at the address.
    ; 
Parameter(s):        $iv_Address The static memory address you want to start atIt must be in
    
;                                  hex format (0x00000000).
    ;                    
$ah_Handle An array containing the Dll handle and the handle of the open
    
;                                 process as returned by _MemoryOpen().
    ;                    
$av_Offset An array of offsets for the pointers.  Each pointer must have an
    
;                                 offset.  If there is no offset for a pointerenter 0 for that
    
;                                 array dimension. (Offsets must be in decimal formatNOT hex!)
    ;                    
$sv_Type - (optionalThe "Type" of data you intend to read at the destination
    
;                                 address.  This is set to 'dword'(32bit(4bytesigned integerby
    
;                                 default.  See the help file for DllStructCreate for all types.
    ; 
Requirement(s):    The $ah_Handle returned from _MemoryOpen.
    ; Return 
Value(s):    On Success Returns an array containing the destination address and the value
    
;                                 located at the address.
    ;                    
On Failure Returns 0
    
;                    @Error No error.
    ;                             
$av_Offset is not an array.
    ;                             
Invalid $ah_Handle.
    ;                             
$sv_Type is not a string.
    ;                             
$sv_Type is an unknown data type.
    ;                             
Failed to allocate the memory needed for the DllStructure.
    ;                             
Error allocating memory for $sv_Type.
    ;                             
Failed to read from the specified process.
    ; 
Author(s):        Nomad
    
Note(s):            Values returned are in Decimal formatunless a 'char' type is selected.
    ;                    
Set $av_Offset like this:
    ;                    
$av_Offset[0] = NULL (not used)
    ;                    
$av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
    ;                    
$av_Offset[2] = Offset for pointer 2
    
;                    etc...
    ;                    (
The number of array dimensions determines the number of pointers)
    ;=================================================================================================
    
Func _MemoryPointerRead ($iv_Address$ah_Handle$av_Offset$sv_Type 'dword')

        If 
IsArray($av_OffsetThen
            
If IsArray($ah_HandleThen
                Local $iv_PointerCount 
UBound($av_Offset) - 1
            
Else
                
SetError(2)
                Return 
0
            
EndIf
        Else
            
SetError(1)
            Return 
0
        
EndIf

        
Local $iv_Data[2], $i
        Local $v_Buffer 
DllStructCreate('dword')

        For 
$i 0 to $iv_PointerCount

            
If $i $iv_PointerCount Then
                $v_Buffer 
DllStructCreate($sv_Type)
                If @
Error Then
                    SetError
(@Error 2)
                    Return 
0
                
EndIf

                
$iv_Address '0x' hex($iv_Data[1] + $av_Offset[$i])
                
DllCall($ah_Handle[0], 'int''ReadProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')
                If @
Error Then
                    SetError
(7)
                    Return 
0
                
EndIf

                
$iv_Data[1] = DllStructGetData($v_Buffer1)

            ElseIf 
$i 0 Then
                DllCall
($ah_Handle[0], 'int''ReadProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')
                If @
Error Then
                    SetError
(7)
                    Return 
0
                
EndIf

                
$iv_Data[1] = DllStructGetData($v_Buffer1)

            Else
                
$iv_Address '0x' hex($iv_Data[1] + $av_Offset[$i])
                
DllCall($ah_Handle[0], 'int''ReadProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')
                If @
Error Then
                    SetError
(7)
                    Return 
0
                
EndIf

                
$iv_Data[1] = DllStructGetData($v_Buffer1)

            EndIf

        
Next

        $iv_Data
[0] = $iv_Address

        
Return $iv_Data

    EndFunc

    
;=================================================================================================
    ; Function:            
_MemoryPointerWrite ($iv_Address$ah_Handle$av_Offset$v_Data(, $sv_Type))
    ; 
Description:        Reads a chain of pointers and writes the data to the destination address.
    ; 
Parameter(s):        $iv_Address The static memory address you want to start atIt must be in
    
;                                  hex format (0x00000000).
    ;                    
$ah_Handle An array containing the Dll handle and the handle of the open
    
;                                 process as returned by _MemoryOpen().
    ;                    
$av_Offset An array of offsets for the pointers.  Each pointer must have an
    
;                                 offset.  If there is no offset for a pointerenter 0 for that
    
;                                 array dimension.
    ;                    
$v_Data The data to be written.
    ;                    
$sv_Type - (optionalThe "Type" of data you intend to write at the destination
    
;                                 address.  This is set to 'dword'(32bit(4bytesigned integerby
    
;                                 default.  See the help file for DllStructCreate for all types.
    ; 
Requirement(s):    The $ah_Handle returned from _MemoryOpen.
    ; Return 
Value(s):    On Success Returns the destination address.
    ;                    
On Failure Returns 0.
    
;                    @Error No error.
    ;                             
$av_Offset is not an array.
    ;                             
Invalid $ah_Handle.
    ;                             
Failed to read from the specified process.
    ;                             
$sv_Type is not a string.
    ;                             
$sv_Type is an unknown data type.
    ;                             
Failed to allocate the memory needed for the DllStructure.
    ;                             
Error allocating memory for $sv_Type.
    ;                             
$v_Data is not in the proper format to be used with the
    
;                                 "Type" selected for $sv_Type, or it is out of range.
    ;                             
Failed to write to the specified process.
    ; 
Author(s):        Nomad
    
Note(s):            Data written is in Decimal formatunless a 'char' type is selected.
    ;                    
Set $av_Offset like this:
    ;                    
$av_Offset[0] = NULL (not useddoesn't matter what's entered)
    ;                    
$av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
    ;                    
$av_Offset[2] = Offset for pointer 2
    
;                    etc...
    ;                    (
The number of array dimensions determines the number of pointers)
    ;=================================================================================================
    
Func _MemoryPointerWrite ($iv_Address$ah_Handle$av_Offset$v_Data$sv_Type 'dword')

        If 
IsArray($av_OffsetThen
            
If IsArray($ah_HandleThen
                Local $iv_PointerCount 
UBound($av_Offset) - 1
            
Else
                
SetError(2)
                Return 
0
            
EndIf
        Else
            
SetError(1)
            Return 
0
        
EndIf

        
Local $iv_StructData$i
        Local $v_Buffer 
DllStructCreate('dword')

        For 
$i 0 to $iv_PointerCount
            
If $i $iv_PointerCount Then
                $v_Buffer 
DllStructCreate($sv_Type)
                If @
Error Then
                    SetError
(@Error 3)
                    Return 
0
                
EndIf

                
DllStructSetData($v_Buffer1$v_Data)
                If @
Error Then
                    SetError
(8)
                    Return 
0
                
EndIf

                
$iv_Address '0x' hex($iv_StructData $av_Offset[$i])
                
DllCall($ah_Handle[0], 'int''WriteProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')
                If @
Error Then
                    SetError
(9)
                    Return 
0
                
Else
                    Return 
$iv_Address
                
EndIf
            ElseIf 
$i 0 Then
                DllCall
($ah_Handle[0], 'int''ReadProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')
                If @
Error Then
                    SetError
(3)
                    Return 
0
                
EndIf

                
$iv_StructData DllStructGetData($v_Buffer1)

            Else
                
$iv_Address '0x' hex($iv_StructData $av_Offset[$i])
                
DllCall($ah_Handle[0], 'int''ReadProcessMemory''int'$ah_Handle[1], 'int'$iv_Address'ptr'DllStructGetPtr($v_Buffer), 'int'DllStructGetSize($v_Buffer), 'int''')
                If @
Error Then
                    SetError
(3)
                    Return 
0
                
EndIf

                
$iv_StructData DllStructGetData($v_Buffer1)

            EndIf
        
Next

    EndFunc


    
;==================================================================================
    ; Function:            
SetPrivilege$privilege$bEnable )
    ; 
Description:        Enables (or disablesthe $privilege on the current process
    
;                   (Probablyrequires administrator privileges to run
    
;
    ; 
Author(s):        Larry (from autoitscript.com's Forum)
    ; Notes(s):
    ; http://www.autoitscript.com/forum/index.php?s=&showtopic=31248&view=findpost&p=223999
    ;==================================================================================
    Func SetPrivilege( $privilege, $bEnable )

        Const $TOKEN_ADJUST_PRIVILEGES = 0x0020
        Const $TOKEN_QUERY = 0x0008
        Const $SE_PRIVILEGE_ENABLED = 0x0002
        Local $hToken, $SP_auxret, $SP_ret, $hCurrProcess, $nTokens, $nTokenIndex, $priv
        $nTokens = 1
        $LUID = DLLStructCreate("dword;int")
        If IsArray($privilege) Then    $nTokens = UBound($privilege)
        $TOKEN_PRIVILEGES = DLLStructCreate("dword;dword[" & (3 * $nTokens) & "]")
        $NEWTOKEN_PRIVILEGES = DLLStructCreate("dword;dword[" & (3 * $nTokens) & "]")
        $hCurrProcess = DLLCall("kernel32.dll","hwnd","GetCurrentProcess")
        $SP_auxret = DLLCall("advapi32.dll","int","OpenProcessToken","hwnd",$hCurrProcess[0],   _
                "int",BitOR($TOKEN_ADJUST_PRIVILEGES,$TOKEN_QUERY),"int_ptr",0)
        If $SP_auxret[0] Then
            $hToken = $SP_auxret[3]
            DLLStructSetData($TOKEN_PRIVILEGES,1,1)
            $nTokenIndex = 1
            While $nTokenIndex <= $nTokens
                If IsArray($privilege) Then
                    $priv = $privilege[$nTokenIndex-1]
                Else
                    $priv = $privilege
                EndIf
                $ret = DLLCall("advapi32.dll","int","LookupPrivilegeValue","str","","str",$priv,   _
                        "ptr",DLLStructGetPtr($LUID))
                If $ret[0] Then
                    If $bEnable Then
                        DLLStructSetData($TOKEN_PRIVILEGES,2,$SE_PRIVILEGE_ENABLED,(3 * $nTokenIndex))
                    Else
                        DLLStructSetData($TOKEN_PRIVILEGES,2,0,(3 * $nTokenIndex))
                    EndIf
                    DLLStructSetData($TOKEN_PRIVILEGES,2,DllStructGetData($LUID,1),(3 * ($nTokenIndex-1)) + 1)
                    DLLStructSetData($TOKEN_PRIVILEGES,2,DllStructGetData($LUID,2),(3 * ($nTokenIndex-1)) + 2)
                    DLLStructSetData($LUID,1,0)
                    DLLStructSetData($LUID,2,0)
                EndIf
                $nTokenIndex += 1
            WEnd
            $ret = DLLCall("advapi32.dll","int","AdjustTokenPrivileges","hwnd",$hToken,"int",0,   _
                    "ptr",DllStructGetPtr($TOKEN_PRIVILEGES),"int",DllStructGetSize($NEWTOKEN_PRIVILEGES),   _
                    "ptr",DllStructGetPtr($NEWTOKEN_PRIVILEGES),"int_ptr",0)
            $f = DLLCall("kernel32.dll","int","GetLastError")
        EndIf
        $NEWTOKEN_PRIVILEGES=0
        $TOKEN_PRIVILEGES=0
        $LUID=0
        If $SP_auxret[0] = 0 Then Return 0
        $SP_auxret = DLLCall("kernel32.dll","int","CloseHandle","hwnd",$hToken)
        If Not $ret[0] And Not $SP_auxret[0] Then Return 0
        return $ret[0]
    EndFunc   ;==>SetPrivilege

    ;===================================================================================================

    ; Function........:  _MemoryGetBaseAddress($ah_Handle, $iHD)
    ;
    ; Description.....:  Reads the '
Allocation Base' from the open process.
    ;
    ; Parameter(s)....:  $ah_Handle - An array containing the Dll handle and the handle of the open
    ;                               process as returned by _MemoryOpen().
    ;                    $iHD - Return type:
    ;                       |0 = Hex (Default)
    ;                       |1 = Dec
    ;
    ; Requirement(s)..:  A valid process ID.
    ;
    ; Return Value(s).:  On Success - Returns the '
allocation Base' address and sets @Error to 0.
    ;                    On Failure - Returns 0 and sets @Error to:
    ;                  |1 = Invalid $ah_Handle.
    ;                  |2 = Failed to find correct allocation address.
    ;                  |3 = Failed to read from the specified process.
    ;
    ; Author(s).......:  Nomad. Szhlopp.
    ; URL.............:  http://www.autoitscript.com/forum/index.php?showtopic=78834
    ; Note(s).........:  Go to Www.CheatEngine.org for the latest version of CheatEngine.
    ;===================================================================================================

    Func _MemoryGetBaseAddress($ah_Handle, $iHexDec = 0)

        Local $iv_Address = 0x00100000
        Local $v_Buffer = DllStructCreate('
dword;dword;dword;dword;dword;dword;dword')
        Local $vData
        Local $vType

        If Not IsArray($ah_Handle) Then
            SetError(1)
            Return 0
        EndIf


        DllCall($ah_Handle[0], '
int', 'VirtualQueryEx', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer))

        If Not @Error Then

            $vData = Hex(DllStructGetData($v_Buffer, 2))
            $vType = Hex(DllStructGetData($v_Buffer, 3))

            While $vType <> "00000080"
                DllCall($ah_Handle[0], '
int', 'VirtualQueryEx', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer))
                $vData = Hex(DllStructGetData($v_Buffer, 2))
                $vType = Hex(DllStructGetData($v_Buffer, 3))
                If Hex($iv_Address) = "01000000" Then ExitLoop
                $iv_Address += 65536

            WEnd

            If $vType = "00000080" Then
                SetError(0)
                If $iHexDec = 1 Then
                    Return Dec($vData)
                Else
                    Return $vData
                EndIf

            Else
                SetError(2)
                Return 0
            EndIf

        Else
            SetError(3)
            Return 0
        EndIf

    EndFunc   ;==>_MemoryGetBaseAddress

    Func _MemoryModuleGetBaseAddress($iPID, $sModule)
        If Not ProcessExists($iPID) Then Return SetError(1, 0, 0)

        If Not IsString($sModule) Then Return SetError(2, 0, 0)

        Local   $PSAPI = DllOpen("psapi.dll")

        ;Get Process Handle
        Local   $hProcess
        Local   $PERMISSION = BitOR(0x0002, 0x0400, 0x0008, 0x0010, 0x0020) ; CREATE_THREAD, QUERY_INFORMATION, VM_OPERATION, VM_READ, VM_WRITE

        If $iPID > 0 Then
            Local $hProcess = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "int", 0, "dword", $iPID)
            If $hProcess[0] Then
                $hProcess = $hProcess[0]
            EndIf
        EndIf

        ;EnumProcessModules
        Local   $Modules = DllStructCreate("ptr[1024]")
        Local   $aCall = DllCall($PSAPI, "int", "EnumProcessModules", "ptr", $hProcess, "ptr", DllStructGetPtr($Modules), "dword", DllStructGetSize($Modules), "dword*", 0)
        If $aCall[4] > 0 Then
            Local   $iModnum = $aCall[4] / 4
            Local   $aTemp
            For $i = 1 To $iModnum
                $aTemp =  DllCall($PSAPI, "dword", "GetModuleBaseNameW", "ptr", $hProcess, "ptr", Ptr(DllStructGetData($Modules, 1, $i)), "wstr", "", "dword", 260)
                If $aTemp[3] = $sModule Then
                    DllClose($PSAPI)
                    Return Ptr(DllStructGetData($Modules, 1, $i))
                EndIf
            Next
        EndIf

        DllClose($PSAPI)
        Return SetError(-1, 0, 0)

    EndFunc

    Func _MemoryScanEx($ah_Handle, $pattern, $mask, $after = False, $iv_addrStart = 0x00400000, $iv_addrEnd = 0x00FFFFFF, $step = 51200)
        If Not IsArray($ah_Handle) Then
            SetError(1)
            Return -1
        EndIf
        $pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
        If StringLen($pattern) = 0 Then
            SetError(2)
            Return -2
        EndIf
        If StringLen($pattern) / 2 <> StringLen($mask) Then
            SetError(4)
            Return -4
        EndIf
        Local $formatedpattern = ""
        Local $BufferPattern
        Local $BufferMask
        For $i = 0 To StringLen($mask) - 1
            $BufferPattern = StringLeft($pattern, 2)
            $pattern = StringRight($pattern, StringLen($pattern) - 2)
            $BufferMask = StringLeft($mask, 1)
            $mask = StringRight($mask, StringLen($mask) - 1)
            If $BufferMask = "?" Then $BufferPattern = ".."
            $formatedpattern = $formatedpattern & $BufferPattern
        Next
        $pattern = $formatedpattern
        For $addr = $iv_addrStart To $iv_addrEnd Step $step - (StringLen($pattern) / 2)
            StringRegExp(_MemoryRead($addr, $ah_Handle, "byte[" & $step & "]"), $pattern, 1, 2)
            If Not @error Then
                If $after Then
                    Return StringFormat("0x%.8X", $addr + ((@extended - 2) / 2))
                Else
                    Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2))
                EndIf
            EndIf
        Next
        SetError(3)
        Return -3
    EndFunc   ;==>_MemoryScanEx

    #endregion 
06/02/2013 13:25 lolkop#6
Quote:
Originally Posted by »FlutterShy™ View Post
das ist sooo egal mwo die datei liegt ob du die jetzt mit "" oder <> bezeichnest
das ist schlichtweg falsch...

je nach nutzung wird die reihenfolge, der zu durchsuchenden pfade festgelegt...

"pfad" -> script-pfad, user-definierte pfade, standard-pfad
<pfad> -> standard-pfad, user-definierte pfade, script-pfad

erstelle ich mir eine eigene udf namens array.au3 in meinem script-ordner und verwende #include <array.au3>, so wird die standard array.au3 aus dem include ordner genutzt. verwende ich stattdessen #include "array.au3", so wird meine im script-ordner liegende datei genutzt.

selbst wenn meine include-datei keinen bereits vergebenen namen hat, so komme ich, statt in einem schritt an mein include zu kommen, in drei schritten dazu...

sicherlich kann ich das ergebnis von 3+4 auch über 3-1+4+1 berechnen, allerdings sollte ich dann nicht anderen erklären, das beide wege gleich gut sind...