|
You last visited: Today at 05:46
Advertisement
NomadMemory, undefined function, Error
Discussion on NomadMemory, undefined function, Error within the AutoIt forum part of the Coders Den category.
12/18/2013, 23:22
|
#1
|
elite*gold: 0
Join Date: Nov 2010
Posts: 16
Received Thanks: 0
|
NomadMemory, undefined function, Error
Bei [CODE$ModuleBaseAddress = _MemoryModuleGetBaseAddress($iv_Pid, "OrcsMustDie2.exe")[/CODE] sagt AutoIt mir ERROR: _MemoryModuleGetBaseAddress(): undefined function.
kann mir wer helfen? D:
ganzer Code
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=Autoit\Orcs Must Die 2 Trainer.exe
#AutoIt3Wrapper_UseUpx=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <Pointer.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Orcs Must Die 2 Trainer", 210, 74, 192, 114)
GUISetBkColor(0x00FF00)
$Label1 = GUICtrlCreateLabel("Numpad 1 = 10000 Gold", 40, 8, 120, 17)
$Button1 = GUICtrlCreateButton("Exit", 40, 32, 123, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$iv_Pid = ProcessExists("OrcsMustDie2.exe")
$ah_handle = _MemoryOpen($iv_Pid)
$ModuleBaseAddress = _MemoryModuleGetBaseAddress($iv_Pid, "OrcsMustDie2.exe")
$StartAddress = $ModuleBaseAddress + 0x07AD9AC
$Pointer1 = _MemoryRead($StartAddress,$ah_handle) + 124
$Pointer2 = _MemoryRead($Pointer1,$ah_handle) + 0x1ec
$Pointer3 = _MemoryRead($Pointer2,$ah_handle) + 0x254
$Pointer4 = _MemoryRead($Pointer3,$ah_handle) + 0xc
$iv_Address = _MemoryRead($Pointer4,$ah_handle) + 0x7c
HotKeySet("{numpad1}","_Gold")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Exit
EndSwitch
WEnd
Func _Gold()
$G = _MemoryRead($iv_Address,$ah_handle)
_MemoryWrite($iv_Address,$ah_handle,$G + 10000)
EndFunc
|
|
|
12/19/2013, 10:34
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Du hast die Funktion _MemoryModuleGetBaseAddress() nicht in der Pointer.au3 sowie nicht in der Nomadmemory.au3.
Kopier dir das in deinen Source und es sollte klappen.
Code:
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
|
|
|
12/19/2013, 13:50
|
#3
|
elite*gold: 0
Join Date: Nov 2010
Posts: 16
Received Thanks: 0
|
oke schonmal danke dafür. Jetzt öffnet sich endlich das fenster. aber er überschreibt nicht mehr die Adress, glaube ich... Es tut sich einfach garnichts, habe auch schon den Hotkey geändert. (nochmal entschuldigung für das versehen des 2. postes)
|
|
|
12/19/2013, 14:25
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
|
Machen wir es gleich richtig:
Code:
#AutoIt3Wrapper_UseX64=n ; 32 Bit application
#RequireAdmin
#include "KDMemory.au3"
Dim $handles = 0, $address = 0
Const $processName = "OrcsMustDie2.exe", $moduleName = $processName
Const $baseOffset = 0x007AD9AC
Const $offsetsGold[5] = [124, 0x1EC, 0x254, 0xC, 0x7C]
GUICreate("OMD2H", 200, 25)
$lbl_Info = GUICtrlCreateLabel("Numpad 1 = 10000 Gold", 5, 5, 190)
GUISetState()
HotKeySet("{NUMPAD1}", "_GoldHack")
While True
;~ Sleep()
$msg = GUIGetMsg()
Switch $msg
Case -3 ; $GUI_EVENT_CLOSE
Exit
EndSwitch
$processId = ProcessExists($processName)
If $processId == 0 Then
If IsArray($handles) Then
_KDMemory_CloseHandles($handles)
$handles = 0
$address = 0
EndIf
ContinueLoop
EndIf
If $handles == 0 Then
$handles = _KDMemory_OpenProcess($processId)
If @error Then
If MsgBox(52, "Error", "Can't open '" & $processName & "'!" & @CRLF & "@error: " & @error & @CRLF & @CRLF & "Continue?") == 6 Then
$handles = 0
ContinueLoop
Else
Exit
EndIf
EndIf
EndIf
If $address == 0 Then
$address = _KDMemory_GetModuleBaseAddress($handles, $processName) + $baseOffset
If @error Then
If MsgBox(52, "Error", "Can't get ModuleBaseAddress '(" & $moduleName & ")'!" & @CRLF & "@error: " & @error & ", @extended: " & @extended & @CRLF & @CRLF & "Continue?") == 6 Then
$address = 0
ContinueLoop
Else
Exit
EndIf
EndIf
EndIf
WEnd
Func _GoldHack()
If IsArray($handles) And $address <> 0 Then
_KDMemory_WriteProcessMemory($handles, $address, "DWORD", 10000, $offsetsGold)
If @error Then MsgBox(16, "Fehler", "Schreiben des Speichers nicht möglich (@error: " & @error & ")!")
EndIf
EndFunc
Sollte das Script nicht funktionieren wäre ein Screenshot deines Pointers in CE hilfreich. Beachte, dass das erste Offset in CE das unterste Offset ist. Bist du dir außerdem sicher, dass das erste Offset im Script nicht auch eine Hexadezimalzahl ist?
|
|
|
12/19/2013, 15:54
|
#5
|
elite*gold: 0
Join Date: Nov 2010
Posts: 16
Received Thanks: 0
|
Oke also es kommt immer noch ein fehler: "Schreiben des Speichers nicht möglich (@error: 20)!"
Hier der screenshot vom Pointer.
(das sind neue pointer, weil ich die alten gelöscht habe und neue auprobiert habe, vergeblich)
|
|
|
12/19/2013, 17:30
|
#6
|
elite*gold: 64
Join Date: May 2011
Posts: 1,228
Received Thanks: 847
|
Was ist denn das...?
Deine Offsets stimmen nicht mal 1:1 überein.
woher nimmst du bitte das "124" oder "1EC" das steht garnicht dabei.
Code:
#AutoIt3Wrapper_UseX64=n ; 32 Bit application
#RequireAdmin
#include "KDMemory.au3"
Dim $handles = 0, $address = 0
Const $processName = "OrcsMustDie2.exe", $moduleName = $processName
Const $baseOffset = 0x007AD9AC
Const $offsetsGold[5] = [0x114, 0x6A8, 0x2DC, 0xC, 0x7C]
GUICreate("OMD2H", 200, 25)
$lbl_Info = GUICtrlCreateLabel("Numpad 1 = 10000 Gold", 5, 5, 190)
GUISetState()
HotKeySet("{NUMPAD1}", "_GoldHack")
While True
;~ Sleep()
$msg = GUIGetMsg()
Switch $msg
Case -3 ; $GUI_EVENT_CLOSE
Exit
EndSwitch
$processId = ProcessExists($processName)
If $processId == 0 Then
If IsArray($handles) Then
_KDMemory_CloseHandles($handles)
$handles = 0
$address = 0
EndIf
ContinueLoop
EndIf
If $handles == 0 Then
$handles = _KDMemory_OpenProcess($processId)
If @error Then
If MsgBox(52, "Error", "Can't open '" & $processName & "'!" & @CRLF & "@error: " & @error & @CRLF & @CRLF & "Continue?") == 6 Then
$handles = 0
ContinueLoop
Else
Exit
EndIf
EndIf
EndIf
If $address == 0 Then
$address = _KDMemory_GetModuleBaseAddress($handles, $processName) + $baseOffset
If @error Then
If MsgBox(52, "Error", "Can't get ModuleBaseAddress '(" & $moduleName & ")'!" & @CRLF & "@error: " & @error & ", @extended: " & @extended & @CRLF & @CRLF & "Continue?") == 6 Then
$address = 0
ContinueLoop
Else
Exit
EndIf
EndIf
EndIf
WEnd
Func _GoldHack()
If IsArray($handles) And $address <> 0 Then
_KDMemory_WriteProcessMemory($handles, $address, "DWORD", 10000, $offsetsGold)
If @error Then MsgBox(16, "Fehler", "Schreiben des Speichers nicht möglich (@error: " & @error & ")!")
EndIf
EndFunc
Sieht für mich so aus als könntest du nicht richtig raus schreiben.
Und du auch keine Ahnung hast wie so etwas funktioniert.
|
|
|
12/19/2013, 17:44
|
#7
|
elite*gold: 0
Join Date: Nov 2010
Posts: 16
Received Thanks: 0
|
das sind die werte die bei meinem pointer raus kamen...
das ist mein aktueller script:
Code:
#AutoIt3Wrapper_UseX64=n ; 32 Bit application
#RequireAdmin
#include "KDMemory.au3"
Dim $handles = 0, $address = 0
Const $processName = "OrcsMustDie2.exe", $moduleName = $processName
Const $baseOffset = 0x007AD9AC
Const $offsetsGold[5] = [114, 0x6a8, 0x2dc, 0xc, 0x7c]
GUICreate("OMD2H", 200, 25)
$lbl_Info = GUICtrlCreateLabel("Numpad 1 = 10000 Gold", 5, 5, 190)
GUISetState()
HotKeySet("{NUMPAD1}", "_GoldHack")
While True
;~ Sleep()
$msg = GUIGetMsg()
Switch $msg
Case -3 ; $GUI_EVENT_CLOSE
Exit
EndSwitch
$processId = ProcessExists($processName)
If $processId == 0 Then
If IsArray($handles) Then
_KDMemory_CloseHandles($handles)
$handles = 0
$address = 0
EndIf
ContinueLoop
EndIf
If $handles == 0 Then
$handles = _KDMemory_OpenProcess($processId)
If @error Then
If MsgBox(52, "Error", "Can't open '" & $processName & "'!" & @CRLF & "@error: " & @error & @CRLF & @CRLF & "Continue?") == 6 Then
$handles = 0
ContinueLoop
Else
Exit
EndIf
EndIf
EndIf
If $address == 0 Then
$address = _KDMemory_GetModuleBaseAddress($handles, $processName) + $baseOffset
If @error Then
If MsgBox(52, "Error", "Can't get ModuleBaseAddress '(" & $moduleName & ")'!" & @CRLF & "@error: " & @error & ", @extended: " & @extended & @CRLF & @CRLF & "Continue?") == 6 Then
$address = 0
ContinueLoop
Else
Exit
EndIf
EndIf
EndIf
WEnd
Func _GoldHack()
If IsArray($handles) And $address <> 0 Then
_KDMemory_WriteProcessMemory($handles, $address, "DWORD", 10000, $offsetsGold)
If @error Then MsgBox(16, "Fehler", "Schreiben des Speichers nicht möglich (@error: " & @error & ")!")
EndIf
EndFunc
|
|
|
12/19/2013, 21:36
|
#8
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
|
Du hättest einfach das angepasste Script von BladeTiger12 kopieren müssen. Du gibst das erste Offset in Dezimalschreibweise an, müsstest es aber in Hexadezimalschreibweise angeben. Natürlich kannst du die Offsets auch in Dezimalschreibweise angeben, "0x124" entspricht aber nicht "124" sondern "292".
|
|
|
12/19/2013, 21:48
|
#9
|
elite*gold: 0
Join Date: Nov 2010
Posts: 16
Received Thanks: 0
|
Oke danke hab jetzt nochmal den Script von BladeTiger12 kopiert und es hat wieder funktioniert ^-^ viel vielen dank mit der info von hexdeximal und so *-*
Thanks to all <3
|
|
|
|
Similar Threads
|
Fatal Error: Call to undefined function result()
08/14/2013 - Web Development - 2 Replies
Hi everyone... i am going to advance learning in php..its about bmi so in the code area.. i will not put the code in some area because it is a currently activity and i dont want my classmates to search and find this page out..
<?php
if isset($_POST) // if the button is submitted
if ... // if the height field area is empty
...//statement of it saying it is an error
elseif .... //if the weight field area is empty
...//statement of it saying it is an error
else //if the height and weight is...
|
Fatal error: Call to undefined function session_start() in /usr/local/www/apache22/d
04/03/2010 - Metin2 Private Server - 3 Replies
Fehler kann mir jmd. da helfen?
Fatal error: Call to undefined function session_start() in /usr/local/www/apache22/data/regist_yes.php on line 50
|
Fatal error: Call to undefined function mysql_connect()
02/16/2010 - Metin2 Private Server - 3 Replies
hi elitepvpers
da ich bei einem problem einfach nicht weiterkomme, hoffe ich hier hilfe zu finden.
Ich habe auf FreeBsd Apache Mysql und Php installiert
nun möchte ich eine page damit online stellen, die z.b. ein registrierungsformular besitzt und diese daten dann in ne mysql datenbank eingibt. ist zum accounts machen für ein game.
wenn ich nun jedoch auf absenden gehe kommt folgender error:
|
All times are GMT +2. The time now is 05:46.
|
|