JDaniel1 70 Debiutant III Members Zgłoś post #1 Napisano Marzec 25, 2015 Korzystałem z poradnika znalezionego na YT: Mój kod wygląda tak : #RequireAdmin #include <nomadmemory.au3> $PID = ProcessExists ("Tutorial-i386.exe") $mOPEN = _MemoryOpen ($PID) $Adress = "0x0014C5BO" $mREAD = _memoryread($Adress,$mOPEN,"dword") MsgBox (64,"",$mOPEN) $mWRITE = _memorywrite ($Adress,$mOPEN,"","dword") _MemoryClose ($mOPEN) Ale nie chce to działać. To znaczy, AutoIT nie wyrzuca błędów, ani ostrzeżeń ale tekst w MsgBox jest pusty (jakby $mREAD = "") Nie wiem co zrobiłem źle Próbowałem także z zaznaczonym Hex, ale to również nie dawało skutków Proszę o poradę Pozdrawiam Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
Fireho 806 Ignis purificat exModerator Zgłoś post #2 Napisano Marzec 25, 2015 "0x0014C5BO" Nie pisze się tych liczb w cudzysłowiach. Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #3 Napisano Marzec 25, 2015 A _MemoryModuleGetBaseAddress? Ja mam taki kod: $iPID = ProcessExists("costam.costam") $hOpen = _MemoryOpen($iPID) $iBase = _MemoryModuleGetBaseAddress($iPID, "costam.costam") $p_base_HP = "0x003AF059" $base_HP1 = $iBase + $p_base_HP $base_HP2 = _MemoryRead($base_HP1, $hOpen) Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #4 Napisano Marzec 25, 2015 #RequireAdmin #include <nomadmemory.au3> #include <MemoryGetBaseAddressUDF.au3> $PID = ProcessExists ("Tutorial-i386.exe") $mOPEN = _MemoryOpen ($PID) $Adress = 0x00191888 $mREAD = _memoryread($Adress,$mOPEN,"dword") MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @CRLF & '_memoryread($Adress,$mOPEN,"dword")' & @CRLF & @CRLF & 'Return:' & @CRLF & _memoryread($Adress,$mOPEN,"dword")) ;### Debug MSGBOX _MemoryClose ($mOPEN) Nadal nie działa, Nadal funkcja zwraca 0 Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #5 Napisano Marzec 25, 2015 @JDaniel1 A mojego posta nie przeczytałeś? Zobacz tak; #include <NoMadMemory.au3> $iPID = ProcessExists("Tutorial-i386.exe") $hOpen = _MemoryOpen($iPID) $iBase = _MemoryModuleGetBaseAddress($iPID, "Tutorial-i386.exe") $p_base_adress = "0x00191888" $base_adress1 = $iBase + $p_base_adress $base_adress2 = _MemoryRead($base_adress1, $hOpen) Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #6 Napisano Marzec 25, 2015 @MistrzMaster (patrzyłem, tylko nie mogłem znaleść funkcji _MemoryModuleGetBaseAddress) Nie mam aktualnej biblioteki Nomad albo funkcja _MemoryModuleGetBaseAddress operuje na innej. EDIT:Dodałem tą funkcję do Nomadmemory.au3 Skrypt nadal nie działa nadal zwraca 0 :P Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #7 Napisano Marzec 25, 2015 @JDaniel1 Na pewno masz dobry adres? Jeśli to ćwiczenie z CE to czasami nie trzeba do tego offsetów? Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #8 Napisano Marzec 25, 2015 Nagrać ci to? EDIT: @MistrzMaster https://www.youtube.com/watch?v=s4jYNEHq_B8&feature=youtu.be Mam nadzieję, że coś widać EDIT2: Później będę chciał chciał wykorzystać odczytywanie pamięci w celu odczytu pamięci z NosTale Jeśli macie jakieś rady dot. tej gry to napiszcie, czy trzeba te offsety itp Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #9 Napisano Marzec 26, 2015 @JDaniel1 Ok, mi też to coś szwankuje ale z ciekawości zobaczyłem sobie na offsety i działa. #include <NoMadMemory.au3> $iPID = ProcessExists("Tutorial-i386.exe") $hOpen = _MemoryOpen($iPID) $iBase = _MemoryModuleGetBaseAddress($iPID, "Tutorial-i386.exe") $p_base_adress = "0x00157F00" $offset1 = 0x54 $offset2 = 0x4 $offset3 = 0x0 $offset4 = 0x480 $base_adress1 = $iBase + $p_base_adress $base_adress2 = _MemoryRead($base_adress1, $hOpen) + $offset1 $base_adress3 = _MemoryRead($base_adress2, $hOpen) + $offset2 $base_adress4 = _MemoryRead($base_adress3, $hOpen) + $offset3 $base_adress5 = _MemoryRead($base_adress4, $hOpen) + $offset4 MsgBox(0, "a", _MemoryRead($base_adress5, $hOpen)) Co do NosTale, sam zrobiłem bota, i na hp/mp mam po cztery offsety. Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #10 Napisano Marzec 26, 2015 @MistrzMaster Mój komputer nadal jest opętany, nadal zwraca 0. (Twój skrypt) Teraz się skapnąłem, że źle zrozumiałem odczytywanie offsetów z CE. Będę musiał nad tym jeszcze posiedzieć :P Kurczę, a myślałem że Memory to będzie proste, poszukam wartości w CE, dam adres do _memoryread i już Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #11 Napisano Marzec 27, 2015 @JDaniel1 Możliwe że mamy inne wersje tego tutoriala, i w mojej jest to inaczej zapisane. PS offsety z CE czytaj od dołu do góry (w tych tabelkach) Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #12 Napisano Marzec 27, 2015 @MistrzMaster W tabelkach, czyli tych czy jakich? Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #13 Napisano Marzec 27, 2015 @JDaniel1 W tych: http://scr.hu/2w0k/p79z6Klikasz dwukrtonie na dole w adress (tam gdzie masz value, name itp) Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #14 Napisano Marzec 27, 2015 Jaką masz wersje CE? Mam chyba starszą. EDIT: Mam to w najnowszej Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
Fireho 806 Ignis purificat exModerator Zgłoś post #15 Napisano Marzec 27, 2015 Wyświetli ci się to jak na jakimś adresie na liście klikniesz prawym i Change record > Adress. Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #16 Napisano Marzec 27, 2015 Mam już najnowszą znalazłem to co pisał Master. Tylko muszę od początku wszystko szukać. offsety, base adresy itp. Bo tam miałem wszystko zapisane Chyba że coś źle kumam i wy mi tłumaczycie tak a ja rozumiem inaczej Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #17 Napisano Marzec 27, 2015 @JDaniel1 Wystarczy, że poszukasz normalnie adresu (tego którego chcesz) dodasz go do tej dolnej tabeli, klikniesz prawym i "Pointer scan for this adress" dodasz pierwsze 20 z listy (ja tak robię), później restartujesz proces, odpalasz znowu w CE i patrzysz czy pointery w CE nadal wskazują tą wartość której potrzebujesz. Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #18 Napisano Marzec 27, 2015 @MistrzMaster Wiem wiem Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #19 Napisano Kwiecień 4, 2015 @MistrzMaster Taki oto problem. Offset nie moze być C ponieważ wykrywa błąd (literę C uznaje jako jakąś funkcję) Teraz wziąłem adresy do NosTale nie do tutoriala. Jak coś źle zrobiłem, podać cały kod to napiszcie. PS: Wziąłem 2 adres z skanera pointerów nie ten zaznaczony Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #20 Napisano Kwiecień 4, 2015 Próbowałeś C z małej litery? //edit offsety są podawane w wartościach heksadecymalnych czyli musisz zrobić "0x" przed offsetem. Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
Fireho 806 Ignis purificat exModerator Zgłoś post #21 Napisano Kwiecień 4, 2015 Liczby w systemie szesnastkowym należy zapisywać z przedrostkiem 0x. Przykłady: $zmienna = 0x5B funkcja($zmienna, 0xC) $flaga = $zmienna - 0xFFFFFFFF ;a Próbowałeś C z małej litery? //edit offsety są podawane w wartościach heksadecymalnych czyli musisz zrobić "0x" przed offsetem. AutoIT nie rozróżnia małych i wielkich liter(poza napisami). Sprawia to że np. taki kod jest poprawny: FUNc FuNkCjA(byREF $ArGuMeNt) $ARGumENT *= 10 endfunc $zMieNNa = 5 funkcja($ZMiEnnA) mSGbOX(0,"",$zmiennA) Prowadzi to oczywiście do nieczytelności kodu(bo każdy pisze wedle gustu), ale mówienie "spróbuj napisać z małej litery" jest bez najmniejszego sensu. Zwłaszcza jeśli error mówi o czymś zupełnie innym... Udostępnij ten post Link to postu Udostępnij na innych stronach
JDaniel1 70 Debiutant III Members Zgłoś post #22 Napisano Kwiecień 4, 2015 Wiem, moja pomyłka o przedrostku 0x. Teraz mam skrypt #include <NoMadMemory.au3> #RequireAdmin $ipid = ProcessExists("NostaleX.dat") $hOpen = _MemoryOpen($iPID) $iBase = _MemoryModuleGetBaseAddress($iPID, "NostaleX.dat") $hopen = _memoryopen($ipid) $ibase = _memorymodulegetbaseaddress($ipid, "NostaleX.dat") $p_base_hp = "0x003FC9D8" $offset1 = 0x160 $offset2 = 0x20 $offset3 = 0x4 $offset4 = 0xC $offset5 = 0x4C $base_adress1 = $ibase + $p_base_hp $base_adress2 = _MemoryRead($base_adress1, $hOpen) + $offset1 $base_adress3 = _MemoryRead($base_adress2, $hOpen) + $offset2 $base_adress4 = _MemoryRead($base_adress3, $hOpen) + $offset3 $base_adress5 = _MemoryRead($base_adress4, $hOpen) + $offset4 MsgBox(0, "a", _MemoryRead($base_adress5, $hOpen)) I nadal zero... Tysiące lat wojen, ani jednego dnia pokoju, pytam czy to skończy się. Zegarek BB Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #23 Napisano Kwiecień 4, 2015 @Fireho Ok, o tym nie wiedziałem. Było to pierwsze co wpadło mi do głowy, bo właśnie u siebie miałem to z małej, dopiero później zauważyłem brak "0x" @JDaniel1 Sprawdziłeś w CE drugi raz (po włączeniu i wyłączeniu gry) jaką wartość teraz ma ten adress(pointer)? Często jest tak, że po zresetowaniu gry część pointerów nie działa. Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
Fireho 806 Ignis purificat exModerator Zgłoś post #24 Napisano Kwiecień 4, 2015 @MistrzMaster Pointer scanner służy do tego aby znaleźć te, które zawsze działają... Błąd jest w czym innym. Takich offsetów(0x003FC9D8, 0x160, 0x20, 0x4, 0xC, 0x4C) nie widzę nigdzie na twoim screenie. Wybierz któryś konkretny wskaźnik, bo aktualnej kombinacji nigdzie nie ma. Udostępnij ten post Link to postu Udostępnij na innych stronach
MistrzMaster 740 MPC Popular User II Postmaker Zgłoś post #25 Napisano Kwiecień 4, 2015 @Fireho To dziwne, bo u mnie dopiero po drugim razie udaję się usunąć wszystkie wartości "???" poza tym gdyby tak było, do jakiego celu zostałaby stworzona opcja "rescan memory" w pointer scanerze? Teraz bardziej do tematu i do zdjęcia, te offsety są w drugim wierszu. Racja, adres jest inny. Bot do gry NosTale: [bOT] NosBota 1.3v Udostępnij ten post Link to postu Udostępnij na innych stronach
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.