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

NomadMemory.au3 na jednym komputerze działa na drugim nie


Rekomendowane odpowiedzi

Opublikowano

Witam mam skrypt poniżej działa u mnie na windows 7 64 bit, a nie działa na drugim kompie vista 32bit i na xp 32 bit. Kompilowałem pod x86. Proszę o szybką pomoc.

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("tt", 185, 280, 192, 124)

$label2 = GUICtrlCreateLabel("0", 8, 248,100,25)
GUISetState(@SW_SHOW)
global $pid = ProcessExists("Tibia.exe")
global $memaaa = _MemoryOpen($pid)
MsgBox ( 16, "Error", _MemoryRead("0x005C6840",$memaaa))

dobryrycerz3.png
Opublikowano

Sprecyzuj "nie działa".

 

Odczytuje wartość inną, niż byś się spodziewał?

Prawdopodobnie istnieją różne wersje aplikacji (dla systemów 32- i 64-bitowych), której pamięć czytasz.

Poza tym, AFAIK, istotny w przypadku Tibii jest adres bazowy - może on być inny na innych systemach... W tej sprawie polecam użyć opcji szukaj, temat już się kilka razy przewijał przez forum.

Ta sygnatura jest pusta.

Opublikowano

Adres jest dobry, jak sprawdzę cheat engine to działa. Problem polega na tym, że zawsze wyskakuje 0. W cheat engine wyświetla dobrze na wszystkich komputerach. W tej wersji większość adresów jest stała.

Jest to przerobiony klient. U mnie jak odpalę w programie sandboxie to program też nie działa.

Może to winna bliblioteki?? Jak to możliwe, ze cheat engine czyta a program nie może.

Ogólnie to na tych innych komputerach komenda memory read na innych programach działa prawidło.

dobryrycerz3.png
Opublikowano

Być może Cheat Engine odnosi się już do adresu bazowego...

Ale to raczej "long shot".

 

 

Widzisz, ten dział dotyczy AutoIt'a, a problem przedstawiony przez ciebie nie ma z nim za dużo wspólnego... To kwestia różnych OSów i jakiejś ( Tibii ) aplikacji, którą próbujesz hackować... Z samym au3 nie ma za dużo wspólnego.

 

Poszukaj o adresach bazowych, bardzo bardzo niedawno o tym było. Poza tym swojego czasu zajmował się tym chyba lokuxd

Ta sygnatura jest pusta.

Opublikowano

po ponownym odpaleniu tibii u ciebie też wyskoczy 0 ce wyciąga poprawce adresy tylko na"chwile", już mi się znudziło podanie bota za dużo roboty jest z szukaniem adresów kiedyś były dostępne na tibia api

teraz nie wiem gdzie można je znaleźć te z działy c# nie działają pod au:(

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

zbieram +

  • 2 tygodnie później...
Opublikowano

adresy się w tej wersji pod którą pisze nie zmieniają, ja w cheat engine podaje zawsze ten sam adr i działa na każdym kompie, a program nie.

dobryrycerz3.png
Opublikowano

Cheat engine sobie sam wyszukuje adres bazowy -.-"

 

Przepuść tą funkcję niżej i dodaj do niej 0x005C6840 i dopiero czytaj w pamięci..

 

Func _MemoryGetBaseAddress($ah_Handle, $iHexDec = 0, $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) = "90000000" 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

Opublikowano

global $adr=_MemoryGetBaseAddress($pid)

takie coś zwraca mi 0 na wszystkich komputerach

I u mnie na komputerze działa normalnie ten program problem jest z innymi komputerami.

dobryrycerz3.png
Opublikowano
global $pid = ProcessExists("Tibia.exe")
global $memaaa = _MemoryOpen($pid)
global $adr=_MemoryGetBaseAddress($memaa)
MsgBox (0, "", _MemoryRead($adr + 0x005C6840,$memaaa))

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...