Func Memory()
$PID = ProcessExists("amo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[3] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = Dec("5F8") ; Static Addr Oset.
$Offset[2] = Dec("188")
$StaticOffset = Dec("00229E84") ; Das statische Offset (Prozess.exe+???????)
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1) ; Um die BaseAddresse herauszufinden (Funktion im Anhang
$Addr = "0x" & Hex($baseADDR + $StaticOffset) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
$Value = _MemoryPointerRead($Addr, $MemOpen, $Offset) ; Liest den Wert aus
MsgBox(0,"Test",$Value[0]) ; $Value[0] gibt den Wert zurück.
; $Open = _MemoryOpen(ProcessExists("AMo.exe"))
; $Adresse = 0x00339750
; $Read = _MemoryRead($Open ,$Adresse,'dword')
EndFunc
Func Timer_buff()
If Int(TimerDiff($timer_60s) / 1000) >= 60 Then
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{8}")
Sleep(500)
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{9}")
$timer_60s = TimerInit()
EndIf
If Int(TimerDiff($timer_15m) / 1000) >= 900 Then
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{7}")
$timer_15m = TimerInit()
EndIf
If Int(TimerDiff($timer_5m) / 1000) >= 300 Then
ControlSend ("Karos Online - ver.02.091230.nhn.eng.real","","","{6}")
$timer_5m = TimerInit()
EndIf
EndFunc
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
ToolTip("Thankyou and Goodbye",0,0)
Sleep(2000)
Exit 0
EndFunc
nun zu meiner eigentlichen frage
NomadMemory
ich denke ich habe es hier mit multi lvl pointer zu tuhn
genau das ist aber der punkt wo ich nicht mehr weiter komme diesen multilvlpointer zu verarbeiten
ich habe es versucht mit dem code aber irgentwas geht da nicht
#RequireAdmin ; Wird evtl. bei Vista benötigt
#include <Pointer.au3> ; siehe Anhang (enthält __MemoryGetBaseAddress)
$PID = ProcessExists("Prozess.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[3] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = Dec("5F8") ; Static Addr Oset.
$Offset[2] = Dec("188")
$StaticOffset = Dec("00229E84") ; Das statische Offset (Prozess.exe+???????)
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1) ; Um die BaseAddresse herauszufinden (Funktion im Anhang
$Addr = "0x" & Hex($baseADDR + $StaticOffset) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
$Value = _MemoryPointerRead($Addr, $MemOpen, $Offset) ; Liest den Wert aus
MsgBox(0,"Test",$Value[0]) ; $Value[0] gibt den Wert zurück.
dieser teil ist oben schon eingebaut
warum ich den memory machen will naja ganz einfach pixelsearch is mir zu ... naja ich will mich weiter entwickeln und dazulernen
gibt es den hier ein parr leute die sich auskennen
oder macht euch doch mal ein account wens den hilfreich ist
ich habe noch 2 jpg angehaengt um die ce ausgabe zu zeigen!
danke schon mal fuer jede hilfe die ihr mir geben koennt
wie schon gesagt wurde benutz am besten die NomadMemory.au3
und dann einfach
PHP Code:
$PID = ProcessExists("Prozess.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[3] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = 0x5F8 ; nimm doch Hex
$Offset[2] = 0x188
$Staticadresse = 0x00229E84 ;nimm hier lieber die static adresse
;bishierhin dein code nur nimm lieber hex, das kannst du dann direkt verarbeiten
$PID = ProcessExists("amo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[4] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = 0x6E0 ; nimm doch Hex
$Offset[2] = 0x4
$Offset[3] = 0x690 ;der wert sollte hp sein ... 0x698 dann mp
$Staticadresse = 0x00339750 ;nimm hier lieber die static adresse
#RequireAdmin ; Wird evtl. bei Vista benötigt
#include <NomadMemory.au3> ; siehe Anhang (enthält __MemoryGetBaseAddress)
$PID = ProcessExists("Prozess.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[4] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = 0x6E0 ; nimm doch Hex
$Offset[2] = 0x4
$Offset[3] = 0x690 ;der wert sollte hp sein ... 0x698 dann mp
$Staticadresse = 0x00339750 ;nimm hier lieber die static adresse
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1)
$finalADDR = ($BaseAddr + $Staticadresse) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
;"0x" & Hex
$Value = _MemoryPointerRead($finalADDR, $MemOpen, $Offset) ; Liest den Wert aus
MsgBox(0,"Test",$Value[0]) ; $Value[0] gibt den Wert zurück.
~~~
habe ich im offset direkt decimale werte
$Staticadresse = 0x00339750 auch decimal
$BaseAddr auch decimal
$finalADDR hier wieder rum kommt hex zum vorschein
$Value = _MemoryPointerRead($finalADDR, $MemOpen, $Offset) dort is dann alles lehr ... weder 0 noch nichts oder auch hex btw decimal
~~~
anstatt _memorypointerread hab ich dann nochmal versucht die andere variante
~~~
#include <NomadMemory.au3> ; siehe Anhang (enthält __MemoryGetBaseAddress)
SetPrivilege("SeDebugPrivilege", 1);Aktiviert eine Debug funktion(geht auch ohne, ist aber sinvoller mit)
$PID = ProcessExists("AMo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[4] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = 0x6E0 ; nimm doch Hex
$Offset[2] = 0x4
$Offset[3] = 0x690 ;der wert sollte hp sein ... 0x698 dann mp
$Staticadresse = 0x00339750 ;nimm hier lieber die static adresse
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1)
$finalADDR = ($BaseAddr + $Staticadresse) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
;"0x" & Hex
ja ne da bin ich schon angemeldet XD
da sind allerding so einige leute mit durchaus schlechten maniern bei
sowas kann ich nicht abhaben
aber ich habs geschaft
es geht so!
PHP Code:
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege", 1);Aktiviert eine Debug funktion(geht auch ohne, ist aber sinvoller mit)
$PID = ProcessExists("AMo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[4] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = 0x6E0 ; nimm doch Hex
$Offset[2] = 0x4
$Offset[3] = 0x690 ;der wert sollte hp sein ... 0x698 dann mp
$Staticadresse = 0x00739750 ;nimm hier lieber die static adresse
$value = _MemoryPointerRead ($Staticadresse, $MemOpen, $Offset)
MsgBox(0,"die aktuelle HP ist:",$value[1])
; $value[0],[1]
;[0]gibt die adresse zurueck
;[1]gibt den Wert zurück.
so geht das einwandfrei
aufjeden fall muss ich mich bedanken
killer und timo
ihr hattet ja recht ~ironie off~
€dit :
somit ergibt sich nun folgendes
PHP Code:
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege", 1);Aktiviert eine Debug funktion(geht auch ohne, ist aber sinvoller mit)
$PID = ProcessExists("AMo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $hp_offset[4] ; Array des Offsets vom Pointer_hp
$hp_offset[0] = 0 ; einfach bei 0 lassen.
$hp_offset[1] = 0x6E0
$hp_offset[2] = 0x4
$hp_offset[3] = 0x690 ; hex off der hp
Global $mp_offset[4]; Array des Offsets vom Pointer_mp
$mp_offset[0] = 0 ; einfach bei 0 lassen.
$mp_offset[1] = 0x6E0
$mp_offset[2] = 0x4
$mp_offset[3] = 0x698 ; hex off der mp
$Staticadresse = 0x00739750 ;nimm hier lieber die static adresse
$value_hp = _MemoryPointerRead ($Staticadresse, $MemOpen, $hp_offset)
MsgBox(0,"die aktuelle HP ist:",$value_hp[1]) ;$value[0],[1]~~~[0]gibt die adresse zurueck und [1]gibt den Wert zurück.
$value_mp = _MemoryPointerRead ($Staticadresse, $MemOpen, $mp_offset)
MsgBox(0,"die aktuelle MP ist:",$value_mp[1]) ;$value[0],[1]~~~[0]gibt die adresse zurueck und [1]gibt den Wert zurück.
wie koennte ich das am sinnvollsten verarbeiten das ich nun zu meinem auto potter komme ?
mfg
€dit 2 :
waere das ein moeglichkeit?
PHP Code:
$min_hp = 600
$min_mp = 200
Func hp_check()
if $value_hp[1] <= $min_hp Then
Do Send("{9}")
Until $value_hp[1] = $value_hp[1]
ElseIf Sleep(10)
EndFunc
Func mp_check()
if $value_mp[1] <= $min_mp Then
Do Send("{ß}")
Until $value_mp[1] = $value_mp[1]
ElseIf Sleep(10)
EndFunc
man koennte auch ein controlsend an die $PID machen da ich sie ja schon habe?
ja funktioniert super
hier der jetzige code fuer "karos online auto potter"
allerdings nach den hoffentlich bald kommenden patch muss die adresse
fuer hp und mp neu gesucht werden
PHP Code:
#include <NomadMemory.au3>
SetPrivilege("SeDebugPrivilege", 1);Aktiviert eine Debug funktion(geht auch ohne, ist aber sinvoller mit)
Global $min_hp = 650
Global $min_mp = 290
While 1
Sleep(1000)
Memory()
WEnd
Func Memory()
$PID = ProcessExists("AMo.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $hp_offset[4] ; Array des Offsets vom Pointer_hp
$hp_offset[0] = 0 ; einfach bei 0 lassen.
$hp_offset[1] = 0x6E0
$hp_offset[2] = 0x4
$hp_offset[3] = 0x690 ; hex off der hp
Global $mp_offset[4]; Array des Offsets vom Pointer_mp
$mp_offset[0] = 0 ; einfach bei 0 lassen.
$mp_offset[1] = 0x6E0
$mp_offset[2] = 0x4
$mp_offset[3] = 0x698 ; hex off der mp
Global $Staticadresse = 0x00739750 ;nimm hier lieber die static adresse
$value_hp = _MemoryPointerRead ($Staticadresse, $MemOpen, $hp_offset);MsgBox(0,"die aktuelle HP ist:",$value_hp[1]) ;$value[0],[1]~~~[0]gibt die adresse zurueck und [1]gibt den Wert zurück.
$value_mp = _MemoryPointerRead ($Staticadresse, $MemOpen, $mp_offset);MsgBox(0,"die aktuelle MP ist:",$value_mp[1]) ;$value[0],[1]~~~[0]gibt die adresse zurueck und [1]gibt den Wert zurück.
ToolTip("die aktuelle HP ist: " &$value_hp[1] & @CRLF & "die aktuelle MP ist: " &$value_mp[1],0,0,"Memory Read information!")
If ($value_hp[1] <= $min_hp) Then Send("{0}")
If ($value_mp[1] <= $min_mp) Then Send("{ß}")
EndFunc
[Brauche Hilfe]Visual Basic Memory Write 04/17/2010 - .NET Languages - 15 Replies Also wie im Titel schon erwähnt wurde brauche ich hilfe bei memory write in vb.
Die Tuts die hier bei EPvp sind bringen mir nicht den da kommen immer fehler...
Public Class Form1
Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
Public Declare Function WriteProcessMemory Lib "kernel32"...
Memory Hilfe 01/14/2010 - AutoIt - 8 Replies So ich habe mich mal an den Memorys probiert, und zwar so wie es in den TUT's beschrieben war! Also ergibt das folgenden Code:
Func _hacken()
#include <Memory.au3>
$PID = WinGetProcess("Spider Solitär")
$hprocess = _MemoryOpen($PID)
_MemoryWrite(0x1420B20, $hprcoess, 1)
EndFunc
Quick Memory Editor - Alternative Memory Hacking Software 11/21/2009 - Cabal Hacks, Bots, Cheats, Exploits & Macros - 11 Replies This might be detected or not by GameGuard, I have not tested this on Official servers however it worked perfectly fine on other private servers.
http://imagenic.net/images/x0jxwzwpg2zxmkdtcf36.p ng
This is just an alternative memory editing tool.
Press thanks if this helps.
Remember, scan before using this.
Cause its 5.5MB.
Sample of memory search in PW for memory bot learner 02/25/2008 - Perfect World - 6 Replies im learning how to make a memory bot as of know.. im expirience in pixel botin but the mob seacrh for it is quite slow.. ill be using au3 and the include nomadmemory.au3 from nomad in au3 forum. credits to him...
this is my sample of my memory script: it will be good for who wants to learn memory botin and has no available bot in their respective server
#include <Memory.au3>
Global $Pointer = d pointer in 4bytes in whch its store the modId when clicked just search in hex format in 4bytes...