Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Nomad.au3 Czyli Piszemy Trainera ;]


Rekomendowane odpowiedzi

Opublikowano

da , ale w kazdej grze inne sposoby szukania offsetów jak i inne funkcje

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

  • 3 tygodnie później...
  • Odpowiedzi 67
  • Dodano
  • Ostatniej odpowiedzi
  • 11 miesięcy temu...
Opublikowano

Siemano.

Piszę takiego małego bota do War of the Immortals. Właśnie też mam problem z potkami. Cheat Engine'm zdobyłem adres hp. Jeśli wartość adresu będzie poniżej 10000 to controlsend ma wysyłać F3 - czyli potka. Robiłem to jakoś ale niestety nie działa ;(

 

 

#include <NomadMemory.au3>
_WinWaitActivate("War of the Immortals Online (Gaia(EU): Realm 5 )","") ; wprowadź nazwę okna

HotKeySet("{HOME}", "start") ; klawiszem HOME włączysz klikanie
HotKeySet("{END}", "koniec") ; klawiszem END kończysz klikanie

Global $PID = ProcessExists("Game.exe") ;pid procesu
Global $hp1
Global $hp2

Const $offset[2] = [0,Dec(314)] ;zapisuje offset


$memarray = _MemoryOpen($PID) ;otwieram pamiec



func start()
While 1
$mem = _MemoryPointerRead(0x01045D88,$memarray, $offset) ;odczytujemy zawartosć adresu
ToolTip($mem[1], 2, 2) ;wyswietlamy w tooltipie wartosć $mem[0] pokazuje adres a $mem[1] pokazuje wartosc adresu
  ControlSend("War of the Immortals Online (Gaia(EU): Realm 5 )","","","{TAB}") ; wprowadź nazwę okna
  ControlSend("War of the Immortals Online (Gaia(EU): Realm 5 )","","","{F1}") ; wprowadź nazwę okna
  sleep(10000) ; czas odstępu wciskania - 1000milisekund = 1 sekunda
  if $mem > 10000 Then
 ControlSend("War of the Immortals Online (Gaia(EU): Realm 5 )","","","F3")
  EndIf
_memoryclose($PID) ; zamykamy pamięć
WEnd
EndFunc


func koniec()
  TrayTip("Koniec bocenia" , "Do zobaczenia", 0, 0)
  sleep(1000)
  Exit
EndFunc

while 1
  sleep(100)
  WEnd


Func _WinWaitActivate($title,$text,$timeout=0)
  WinWait($title,$text,$timeout)
  If Not WinActive($title,$text) Then WinActivate($title,$text)
  WinWaitActive($title,$text,$timeout)
EndFunc

 

To jak pomoże ktoś?

2lw7hol.png


Νεχ ποσσυμ τεχυμ ωιωερε, νεχ σινε τε. 

  • 5 miesięcy temu...
Opublikowano

Zrobiłem już [bota] xD ale nie wiem jaką komedą jest Fooda ;/ bo wpisuje mi ciagle na deafult hotkey... prosze o pomoc!

Opublikowano

MemoryPointerRead do tego służy. I raczej działą, zważając na to, że ludzie z tego korzystają ;]

 

@gervi

Nic nie rozumiem.

Ta sygnatura jest pusta.

  • 4 tygodnie później...
Opublikowano

zrobic bota a nie umiec napisac zeby jadl fooda dziwne:)

 

moze jakis kod zapodaj bo w ciemno ciezko troche

Do
$wiek+=1
Until ŻycieGetMsg() = -3

zbieram +

Opublikowano

mając pointer jak sprawdzić jego offset aby dało się odczytać wartość adresu na który wskazuje?:P

Wyszukałem chyba z 15 pointerów i nie wiem jak teraz się dobrać od tyłu do jego offsetu nie będę znowu powtarzał mozolnego szukania :P

Pomoże ktoś?:)

Opublikowano

@sgt.Hobbit

To nie wątek na zadawanie takich pytań.

 

 

@UP

Obaj macie reporta.

 

 

@DOWN

Jestem całkiem pewny, że jestem.

You are entitled to your own opinion.

Ta sygnatura jest pusta.

Opublikowano

@up

Ty nie jesteś tu od upomiania.

 

 

Masz report.

 

 

-------

anty off-top

 

Bardzo fajna biblioteka, ostatnio napisałem w niej dużo fajnych rzeczy polecam ogólnie.

 

Jest tylko troche problemów z ogólną wydajnością engina, ale da sie przeżyć. Mogliby jednak coś zoptymalizować bo te calle inter modułowe są procesożerna, w końću czyśczą cachowanie.

 

W każdym bądź razie, to tylko małe nie dopracowania, więc jest ok. Polecam.

Zamykam temat, bo autor nie trzyma poziomu.

....

Polityka forum zakazuję nam zamykać tematy, tylko dlatego, że są na niskim poziomie.

I lold.
  • 1 miesiąc temu...
Opublikowano

Ktoś mi powie jak pobrać dane tego typu ?

 

0x269a8514

Dziękuje za odpowiedź.

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

@UP

 

_MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]]) - otwiera pamiec do edycji/odczytu

_MemoryRead($iv_Address, $ah_Handle[, $sv_Type]) - odczytuje zawartość adresu z pamięci

 

Czyli zrob tak jak w poradniku a tam gdzie w memory read masz adres do podania to Twoim adresem jest 269a8514 :)

Czyli bez 0x :)

Tak mi sie wydaje ale mala szansa zebym sie tu pomylil :)

  • 11 miesięcy temu...
Opublikowano

Mam tak, ale nie działa:

 

#include <NoMadMemory.au3>

$PID = ProcessExists("left4dead.exe")

Const $Offset[2] = [0, 0xD8]

$MemOpen = _MemoryOpen($PID)

$Health = _MemoryPointerRead("server.dll"+0x005D3444, $MemOpen, $Offset)

MsgBox(0, $Health[0], $Health[1])

 

@Edit Już nie ważne.

4417049059_6234f40fb5.jpg
Storm has passed but the destruction are still visible.

  • 1 miesiąc temu...
Opublikowano

 

 

 

#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.
;                   $if_InheritHandle - (optional) If this value is TRUE, all processes created by
;                                       this process will inherit the access handle.  Set to TRUE
;                                       (1) by 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 - 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, $if_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', $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 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]'.
; 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 - 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[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_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 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]'.
; Requirement(s):   The $ah_Handle returned from _MemoryOpen.
; 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[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_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().
; Requirement(s):   The $ah_Handle returned from _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:         _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 at. 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().
;                   $av_Offset - An array of offsets for the pointers.  Each pointer must have an
;                                offset.  If there is no offset for a pointer, enter 0 for that
;                                array dimension.
;                   $sv_Type - (optional) The "Type" of data you intend to read at the destination
;                                address.  This is set to 'dword'(32bit(4byte) signed integer) by
;                                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 - 0 = No error.
;                            1 = $av_Offset is not an array.
;                            2 = Invalid $ah_Handle.
;                            3 = $sv_Type is not a string.
;                            4 = $sv_Type is an unknown data type.
;                            5 = Failed to allocate the memory needed for the DllStructure.
;                            6 = Error allocating memory for $sv_Type.
;                            7 = Failed to read from the specified process.
; Author(s):        Nomad
; Note(s):          Values returned are in Decimal format, unless 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_Offset) Then
        If IsArray($ah_Handle) Then
            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_Buffer, 1)
            
        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_Buffer, 1)
            
        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_Buffer, 1)
            
        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 at. 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().
;                   $av_Offset - An array of offsets for the pointers.  Each pointer must have an
;                                offset.  If there is no offset for a pointer, enter 0 for that
;                                array dimension.
;                   $v_Data - The data to be written.
;                   $sv_Type - (optional) The "Type" of data you intend to write at the destination
;                                address.  This is set to 'dword'(32bit(4byte) signed integer) by
;                                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 - 0 = No error.
;                            1 = $av_Offset is not an array.
;                            2 = Invalid $ah_Handle.
;                            3 = Failed to read from the specified process.
;                            4 = $sv_Type is not a string.
;                            5 = $sv_Type is an unknown data type.
;                            6 = Failed to allocate the memory needed for the DllStructure.
;                            7 = Error allocating memory for $sv_Type.
;                            8 = $v_Data is not in the proper format to be used with the
;                                "Type" selected for $sv_Type, or it is out of range.
;                            9 = Failed to write to the specified process.
; Author(s):        Nomad
; Note(s):          Data written is in Decimal format, unless a 'char' type is selected.
;                   Set $av_Offset like this:
;                   $av_Offset[0] = NULL (not used, doesn'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_Offset) Then
        If IsArray($ah_Handle) Then
            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_Buffer, 1, $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_Buffer, 1)
            
        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_Buffer, 1)
            
        EndIf
    Next

EndFunc
#endregion

 

 

Zapisujemy najpierw zawartość powyższego spoilera.

Do pliku NomadMemory.au3 i zapisujemy go w folderze include który znajduje się w głównym foderze autoit.

 

Funkcje nomad'a

_MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]]) - otwiera pamiec do edycji/odczytu

_MemoryRead($iv_Address, $ah_Handle[, $sv_Type]) - odczytuje zawartość adresu z pamięci

_MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type]) -wpisuje do pamięci

_MemoryClose($ah_Handle) - zamyka pamięć

_MemoryPointerRead($iv_Address, $ah_Handle, $av_Offset[, $sv_Type]) - odczytuje zawartość z adresu z pamięci z wykorzystaniem pointera

_MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data[, $sv_Type]) - jak wyżej z tym ze wpisuje do pamięci

 

Użytkowanie. ^^

Przykład odczytu z pamięci przykład oparty na Tutorial.exe czyli tutorialu z CheatEngine (krok 2)

 

#include <NomadMemory.au3>
Global $PID = ProcessExists("Tutorial.exe") ;odczytujemy PID procesu tutorial.exe

Const $offset[2] = [0, Dec(314)] ;zapisujemy offsety *1

$memarray = _MemoryOpen($PID) ; otwieramy pamięć
While 1
$mem =_MemoryPointerRead(0x00460c54,$memarray, $offset) ;odczytujemy zawartosć adresu
ToolTip($mem[1], 2, 2) ;wyswietlamy w tooltipie wartosć $mem[0] pokazuje adres a $mem[1] pokazuje wartosc adresu
WEnd
_memoryclose($CID) ; zamykamy pamięć
#include <NomadMemory.au3>
Global $PID = ProcessExists("Tutorial.exe") ;odczytujemy PID procesu tutorial.exe

Const $offset[2] = [0, Dec(314)] ;zapisujemy offsety *1

$memarray = _MemoryOpen($PID) ; otwieramy pamięć
$mem =_MemoryPointerWrite(0x00460c54, $memarray, $offset, 12345) ;wpisujemy cos do pamięci 1 parametr adres bazowy 2 parametr uchwyt MemoryOpen() 3 to offset a 4 to wartosc którą chcemy wprowadzić.
_memoryclose($CID) ; zamykamy pamięć

*1 w ten sposób zapisujemy offsety rozmiar tablicy musi wynosi minimum 2Bajty pierwsza komurka musi wynosić 0 a każda następna kolejny offset z tym ze przy kazdym nastepnym offsecie trzeba zwiększać rozmiar tablicy wink.gif posiadałem offset w decimal dla tego użyłem funkcji Dec() ale jeżeli ktoś ma w hex to tylko dopisuje 0x i offset

 

 

 

Później dam inne przykłady. tongue.gif po za tym więcej informacji na temat funkcji jest w samym include.

 

 

Zakaz kopiowania na inne fora dry.gif

 

@edit

jackraymund - Tutorial.exe znajduje się w folderze z cheatengine

dobrze by było gdybyś powiedział gdzie słownik? i skąd to kopiowałeś

Najlepszy ślepy mnich na EUNE, były challenger w s3 Strzeżcie się "krula" lasu

leesinacolythe.png

Ex-Challenger Player (TOP 23 EUW)

  • 4 tygodnie później...
Opublikowano

a ja mam pytanie bo niewiem jak napisać początek... :( i wgl mialem jesnego bota ale niewiem dlaczego jak odpalałem to pojawiało sie okienko (jak w .bat) i okno znikało i to wszystko :( pomoże ktoś ?

 

@Edit

I jeszcze wyskakuje takie okienko :(

 

64db.jpg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...