Crenait Posted November 29, 2007 Share Posted November 29, 2007 (edited) im trying to run a script...I have compiled the script into an exe, I also have NomadMemory.au3 and also compiled that into an exe...but when I run the original exe I get this error: Line -1: Error: Can not redeclare a constant. can anyone tell me how I can fix this? the code I am using is: CODE ;x-x-x-x-x-x-x-x-x-x-x-x- ; includez ;x-x-x-x-x-x-x-x-x-x-x-x- #include <NomadMemory.au3> #include <GUIConstants.au3> #include <String.au3> #include <Date.au3> #include <array.au3> #Include <Misc.au3> #include <GuiEdit.au3> ;x-x-x-x-x-x-x-x-x-x-x-x- ;x-x-x-x-x-x-x-x-x-x-x-x- ;Variables 'n shit yo ;x-x-x-x-x-x-x-x-x-x-x-x- ;x-x-x-x-x-x-x-x-x-x-x-x- Dim $datafoundX, $datafoundX2, $datafoundY, $found = 0 Dim $Finalrot, $Finallocx, $Finallocy, $Finalrandom Dim $value = 100 Dim $knownX = 0x00D0E54C Dim $startsearchX = 0x00000B88 Dim $startsearchX5 = 0x00000BBC Dim $knownY = 0x00D0E554 Dim $startsearchY = 0x00000B8C Dim $knownZ = 0x00D0E550 Dim $startsearchZ = 0x09000BF0 Dim $memoryX = 0 Dim $memoryX2 = 0 Dim $memoryY = 0 Dim $memoryZ = 0 ; Dim $addZ = 10.5 Dim $addX = 0.03 Dim $processfound = 0 Dim $appname = "DSM" Global $defaultstatus = "Ready" Dim $scanprocess = 0 Dim $startX, $startY, $startZ Dim $transyn = 0 Dim $height $fuck = "1" $dll = DllOpen("user32.dll") ;x-x-x-x-x-x-x-x-x-x-x-x- ; Da gui ;x-x-x-x-x-x-x-x-x-x-x-x- GUICreate("Mozilla Firefox", 200, 115, "", "", 1) $pwn = GUICtrlCreateButton("Start the scan", 60, 50) $status = GUICtrlCreateLabel("", 15, 10, 220, 40) $on = 0 GUISetState(@SW_SHOW) If WinExists("WORLD OF WARCRAFT") Then WinSetTitle("WORLD OF WARCRAFT", "", "World of Warcraft") EndIf Opt("WinTitleMatchMode", 4) SetPrivilege("SeDebugPrivilege", 1) processopen() Func processopen() Global $ProcessID = WinGetProcess("World of Warcraft", "") Global $offset = 0x1000 While $processfound = 0 If $ProcessID = -1 Then If $ProcessID = -1 Then Exit Else $Processnewname = InputBox($appname, "Please enter the name of the process. (Case sensitive)") Global $ProcessID = WinGetProcess($Processnewname, "") EndIf Else $processfound = 1 EndIf WEnd EndFunc ;==>processopen Local $DllInformation = _MemoryOpen($ProcessID) If @error Then MsgBox(4096, "ERROR", "Failed to open memory for process;" & $ProcessID) Exit EndIf If @error Then Exit EndIf While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $pwn GUICtrlSetState($pwn, $GUI_DISABLE) $startsearchZ = 0x09000BF0 $found = 0 scan() EndSelect WEnd Func hotkeyz() While $fuck = "1" If _IsPressed("68", $dll) Then teleport("north") ElseIf _IsPressed("64", $dll) Then teleport("west") ElseIf _IsPressed("65", $dll) Then teleport("south") ElseIf _IsPressed("66", $dll) Then teleport("east") ElseIf _IsPressed("67", $dll) Then teleport(5) ElseIf _IsPressed("69", $dll) Then teleport(6) ElseIf _IsPressed("61", $dll) Then teleport(7) ElseIf _IsPressed("63", $dll) Then teleport(8) EndIf $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $pwn GUICtrlSetState($pwn, $GUI_DISABLE) $startsearchZ = 0x09000BF0 $found = 0 scan() EndSelect WEnd EndFunc ;==>hotkeyz Func scan() GUICtrlSetData($status, " Scanning.... don't move !") $z = _MemoryRead(0x0DBC5B0, $DllInformation, 'dword') While $found = 0 ;x-x-x-x-x-x-x-x-x-x-x-x- ; I'm making a note here ;x-x-x-x-x-x-x-x-x-x-x-x- $current = _MemoryRead($startsearchZ, $DllInformation, 'dword') If $current = $z Then $memoryZ = "0x" & Hex($startsearchZ, 8) $memoryY = StringTrimRight($memoryZ, 3) & "BE8" $memoryX = StringTrimRight($memoryZ, 3) & "BEC" GUICtrlSetData($status, " Done!" & @CRLF & " You are now ready to start haxing ") GUICtrlSetState($pwn, $GUI_ENABLE) GUICtrlSetData($pwn, "Rescan") $found = 1 SoundPlay("C:\WINDOWS\Media\notify.wav") ;x-x-x-x-x-x-x-x-x-x-x-x- ;Huge success ;x-x-x-x-x-x-x-x-x-x-x-x-z hotkeyz() Else ;x-x-x-x-x-x-x-x-x-x-x-x- ; But there's no sense crying over every mistake ; You just keep on trying 'til you run out of cake ;x-x-x-x-x-x-x-x-x-x-x-x- $startsearchZ = $startsearchZ + $offset EndIf WEnd EndFunc ;==>scan Func teleport($dire) Select Case $dire = "north" $yeah = _MemoryRead($memoryY, $DllInformation, 'float') $real = $yeah + 0.13 _MemoryWrite($memoryY, $DllInformation, $real, 'float') Send("{left}{left}{right}{right}") Sleep(30) Case $dire = "west" $yeah = _MemoryRead($memoryX, $DllInformation, 'float') $real = $yeah + 0.13 _MemoryWrite($memoryX, $DllInformation, $real, 'float') Send("{left}{left}{right}{right}") Sleep(30) Case $dire = "south" $yeah = _MemoryRead($memoryY, $DllInformation, 'float') $real = $yeah - 0.13 _MemoryWrite($memoryY, $DllInformation, $real, 'float') Send("{left}{left}{right}{right}") Sleep(30) Case $dire = "east" $yeah = _MemoryRead($memoryX, $DllInformation, 'float') $real = $yeah - 0.13 _MemoryWrite($memoryX, $DllInformation, $real, 'float') Send("{left}{left}{right}{right}") Sleep(30) Case $dire = 5 $yeah = _MemoryRead($memoryZ, $DllInformation, 'float') $real = $yeah + 1 _MemoryWrite($memoryZ, $DllInformation, $real, 'float') Case $dire = 6 $yeah = _MemoryRead($memoryZ, $DllInformation, 'float') $real = $yeah - 1 _MemoryWrite($memoryZ, $DllInformation, $real, 'float') Case $dire = 7 $yeah = _MemoryRead($memoryZ, $DllInformation, 'float') $real = $yeah + 1 Sleep(30) _MemoryWrite($memoryZ, $DllInformation, $real, 'float') Case $dire = 8 $yeah = _MemoryRead($memoryZ, $DllInformation, 'float') $real = $yeah - 1 _MemoryWrite($memoryZ, $DllInformation, $real, 'float') Sleep(30) EndSelect EndFunc ;==>teleport ;x-x-x-x-x-x-x-x-x-x-x-x- ;THE CAKE IS A LIE ;THE CAKE IS A LIE ;THE CAKE IS A LIE ;x-x-x-x-x-x-x-x-x-x-x-x- Func terminate() _MemoryClose($DllInformation) Exit 0 EndFunc ;==>terminate and the code for my NomadMemory (incase the problem is here) is this: 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 - (optional) Set to 0x1F0FFF by default, which ; enables all possible access rights to the ; process specified by the Process ID. ; $iv_InheritHandle - (optional) If this value is TRUE, all processes ; created by this process will inherit the access ; handle. Set to 1 (TRUE) by default. Set to 0 ; if you want it FALSE. ; Requirement(s): None. ; 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 - 0 = No error. ; 1 = Invalid $iv_Pid. ; 2 = Failed to open Kernel32.dll. ; 3 = Failed to open the specified process. ; Author(s): Nomad ; Note(s): ;================================================================================== Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $iv_InheritHandle = 1) If Not ProcessExists($iv_Pid) Then 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', $iv_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 from. 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(). ; $sv_Type - (optional) The "Type" of value you intend to read. ; This is set to 'dword'(32bit(4byte) signed integer) ; by default. See the help file for DllStructCreate ; for all types. An example: If you want to read a ; word that is 15 characters in length, you would use ; 'char[16]' since a 'char' is 8 bits (1 byte) in size. ; Return Value(s): On Success - Returns the value located at the specified address. ; On Failure - Returns 0 ; @Error - 0 = No error. ; 1 = Invalid $ah_Handle. ; 2 = $sv_Type was not a string. ; 3 = $sv_Type is an unknown data type. ; 4 = Failed to allocate the memory needed for the DllStructure. ; 5 = Error allocating memory for $sv_Type. ; 6 = Failed to read from the specified process. ; Author(s): Nomad ; Note(s): Values returned are in Decimal format, unless specified as a ; 'char' type, then they are returned in ASCII format. Also note ; that size ('char') 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_Handle) Then 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_Buffer, 1) 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 which 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 - (optional) The "Type" of value you intend to write. ; This is set to 'dword'(32bit(4byte) signed integer) ; by default. See the help file for DllStructCreate ; for all types. An example: If you want to write a ; word that is 15 characters in length, you would use ; 'char[16]' since a 'char' is 8 bits (1 byte) in size. ; Return Value(s): On Success - Returns 1 ; On Failure - Returns 0 ; @Error - 0 = No error. ; 1 = Invalid $ah_Handle. ; 2 = $sv_Type was not a string. ; 3 = $sv_Type is an unknown data type. ; 4 = Failed to allocate the memory needed for the DllStructure. ; 5 = Error allocating memory for $sv_Type. ; 6 = $v_Data is not in the proper format to be used with the ; "Type" selected for $sv_Type, or it is out of range. ; 7 = Failed to write to the specified process. ; Author(s): Nomad ; Note(s): Values sent must be in Decimal format, unless specified as a ; 'char' type, then they must be in ASCII format. Also note ; that size ('char') 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_Handle) Then SetError(1) Return 0 EndIf Local $v_Buffer = DllStructCreate($sv_Type) If @Error Then SetError(@Error + 1) Return 0 Else DllStructSetData($v_Buffer, 1, $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(). ; Return Value(s): On Success - Returns 1 ; On Failure - Returns 0 ; @Error - 0 = No error. ; 1 = Invalid $ah_Handle. ; 2 = Unable to close the process handle. ; Author(s): Nomad ; Note(s): ;================================================================================== Func _MemoryClose($ah_Handle) If Not IsArray($ah_Handle) Then 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: SetPrivilege( $privilege, $bEnable ) ; Description: Enables (or disables) the $privilege on the current process ; (Probably) requires administrator privileges to run ; ; Author(s): Larry (from autoitscript.com's Forum) ; Notes(s): ; http://www.autoitscript.com/forum/index.ph...st&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 #endregion all help will be greatly appreciated edit: I have the latest version of AutoIT, so that shouldnt be the problem Edited November 29, 2007 by Crenait Link to comment Share on other sites More sharing options...
Crenait Posted November 29, 2007 Author Share Posted November 29, 2007 nobody? Link to comment Share on other sites More sharing options...
PsaltyDS Posted November 29, 2007 Share Posted November 29, 2007 Did you compile it from SciTE so the syntax checker would tell you which Const was being redeclared? Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Crenait Posted November 29, 2007 Author Share Posted November 29, 2007 Did you compile it from SciTE so the syntax checker would tell you which Const was being redeclared? yes, I got a few of them....I would just delete the line contaning the redeclared const, right? Link to comment Share on other sites More sharing options...
GaryFrost Posted November 29, 2007 Share Posted November 29, 2007 I would suggest putting #include <NomadMemory.au3> as the last include, then comment out $TOKEN constants to start with in that include. SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now