[DLL] Xtend DLL, Tak, nudziło mi się |
Uwaga!
To forum służy do zamieszczania gotowych przykładów i silników, nie do poszukiwań!
![]() ![]() |
[DLL] Xtend DLL, Tak, nudziło mi się |
5.04.2008 - 16:17
Post
#1
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
No tak, znowu mi się nudziło więc postanowiłem napisać DLL-a w którym znajdują się funkcje - które IMO brakują w GM-ie (GM6 - tylko na tym testowałem)
Wersja 2 here ------------------------------------------------------------------ Info z poprzedniej wersji 1.5 Funkcje: Rejestr:
Download v1.5: http://www.gmclan.org/up541_4_Xtend15.html ( DLL + Example w GM6 ) A tu przykład autorstwa Pietera, pokazujący jak stworzyć bota do gier ( z Xtend.dll ): http://forum.gmclan.org/index.php?showtopic=12366 Można w nim zobaczyć, jak za pomocą Xtenda można odczytać i zapisać dane do innego procesu ;P -------------------- |
|
|
|
5.04.2008 - 16:17
Post
#
|
|
![]() Wiek: |
|
|
|
|
5.04.2008 - 17:48
Post
#2
|
|
![]() Nobody is perfect ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 17 lat Grupa: Użytkownicy Postów: 2,020 Dołączył: 2.07.2007 Skąd: 50°N, 22°E Ostrzeżenia: (0%)
|
Nieźle
-------------------- |
|
|
|
19.05.2008 - 14:29
Post
#3
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Update.
Nowe funkcje: registry_find_key_first & registry_find_key_next - Szuka podkluczy w kluczu ( Dzięki Markowi.S ) registry_find_key_value_first & registry_find_key_value_next - Szuka wartości w kluczu ( Dzięki Markowi.S ) process_find_first & process_find_next - Szuka procesów ( Dzięki Moldisowi ) process_close - Zamyka proces ( po nazwie ) [ po kij to ? xD ] Poprawki: - show_message_box teraz poprawnie wyświetla wiadomości z np. polskimi znakami. ( Dzięki Markowi.S ) - file_read_version_info teraz odczytuje każdy plik z informacjami o wersji. No i zrobiłem przykład na szybko: http://gmclan.org/up541_4_Xtend12.html ( DLL + Example w GM6 ) -------------------- |
|
|
|
19.05.2008 - 14:45
Post
#4
|
|
![]() prostokonciki ! =D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 18 lat Grupa: Redaktorzy Postów: 3,100 Dołączył: 28.11.2006 Skąd: Gdańsk Team: ni mam. Ostrzeżenia: (0%)
|
i to się nazywa kawał dobrej roboty
super! -------------------- Dla kumatego nic trudnego..
Moje prace: |
|
|
|
19.05.2008 - 16:12
Post
#5
|
|
![]() #define INT int ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 16 lat Grupa: Użytkownicy Postów: 1,043 Dołączył: 15.10.2006 Skąd: ...::|Warszawa|::... Team: South Lemon Studio Ostrzeżenia: (0%)
|
Heh... ;x
Kawał dobrej roboty, ja nie skorzystam, ale inni... BTW. Napisałem DLL'a i okazało się, że największy problem mam z użyciem go w GMie... -------------------- www.south-lemon-studio.com - Stronka teamu ----------------------------------------------------------------------------- www.great-layouts.com - Już niedługo... ;) (gotowe w 45%) ----------------------------------------------------------------------------- www.south-lemon-studio.com/solmis - Moja stronka (layout tymczasowy) ----------------------------------------------------------------------------- -> http://www.lastfm.pl/user/Solmis/library/playlists <- |
|
|
|
2.06.2008 - 19:23
Post
#6
|
|
![]() ╭∩╮╭∩╮ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,943 Dołączył: 17.06.2004 Skąd: Czę-owa --> My-ów. Team: http://twitter.com/ihooypl Ostrzeżenia: (100%)
|
Mam propozycje... Dodaj ReadProcessMemory i WriteProcessMemory ^^ Będziemy mogli tworzyć swoje czity do gier w GMie
-------------------- |
|
|
|
2.06.2008 - 19:29
Post
#7
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
WriteProcessMemory jest ( alias process_write_string/byte/short/long/double ) w nowej wersji którą mam na dysku ( i w moim uploaderze, tylko że nie ma opisu funkcji ). Zaraz dodam ReadProcessMemory
-------------------- |
|
|
|
2.06.2008 - 19:33
Post
#8
|
|
![]() prostokonciki ! =D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 18 lat Grupa: Redaktorzy Postów: 3,100 Dołączył: 28.11.2006 Skąd: Gdańsk Team: ni mam. Ostrzeżenia: (0%)
|
ciekawie się zapowiada
a pamiętasz o proces_exists? ;> -------------------- Dla kumatego nic trudnego..
Moje prace: |
|
|
|
2.06.2008 - 19:34
Post
#9
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
O, dobrze że przypomniałeś ;D
-------------------- |
|
|
|
2.06.2008 - 20:36
Post
#10
|
|
![]() ╭∩╮╭∩╮ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,943 Dołączył: 17.06.2004 Skąd: Czę-owa --> My-ów. Team: http://twitter.com/ihooypl Ostrzeżenia: (100%)
|
Jak tylko dasz nową wersje zrobię jakiś przykład czita do na przykład Tibii albo innej gry ;] taki trainerek
-------------------- |
|
|
|
2.06.2008 - 21:18
Post
#11
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
@Pieter: To akurat przetestujesz mi nowe funkcje
"ReadProcessMemory" zrobiłem na szybko bo nie mam czasu, więc jeśli będą jakieś błędy to się nie zdziwię ( nie testowałem w GM-ie ) ;D Nowe funkcje: window_find - Szuka okna poprzez podana nazwe klasy i/lub okna i zwraca jego uchwyt. window_find_ex - Szuka potomnego okna poprzez podana nazwę klasy i/lub nazwę okna w podanym oknie i zwraca jego uchwyt. process_close_by_id - Zamyka proces poprzez podany ID. process_exists - Sprawdza czy dany proces jest uruchomiony process_id_current - Pobiera Process ID procesu, który został właśnie wyszukany przez funkcje process_find_first/next. process_id_from_name - Szuka ID procesu (PID) poprzez nazwę. process_id_from_window_handle - Szuka ID procesu (PID) poprzez uchwyt okna process_read_byte / short / long / double - Odczytuje zmienna typu (...) z pamięci procesu. process_read_string - Odczytuje stringa z pamięci procesu process_write_byte / short / long / double - Zapisuje zmienna typu (...) do pamięci procesu. process_write_string - Zapisuje stringa do pamięci procesu Mam nadzieję że nic nie pominąłem/pomyliłem Download: http://gmclan.org/up541_4_Xtend.html ( przykład nie pokazuje jak można użyć nowych funkcji ) -------------------- |
|
|
|
3.06.2008 - 9:34
Post
#12
|
|
![]() ╭∩╮╭∩╮ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,943 Dołączył: 17.06.2004 Skąd: Czę-owa --> My-ów. Team: http://twitter.com/ihooypl Ostrzeżenia: (100%)
|
ups.. mój błąd [gml]/* ---- Xtend DLL by Snake ---- process_read_string( ID Procesu, Adres, ilosc znakow ) - Odczytuje zmienna typu string z pamieci procesu. argument0: (real) ID procesu. argument1: (real) Adres, z ktorego zostanie odczytana wartosc argument2: (real) ilosc znakow do odczytania Zwraca: (string) odczytany z pamieci. "" ( pusty string ) jesli nie udalo sie odczytac. */ return external_call( global._xtend_processreadstring, argument0, argument1 );[/gml] powinno wyglądać tak: [gml]/* ---- Xtend DLL by Snake ---- process_read_string( ID Procesu, Adres, ilosc znakow ) - Odczytuje zmienna typu string z pamieci procesu. argument0: (real) ID procesu. argument1: (real) Adres, z ktorego zostanie odczytana wartosc argument2: (real) ilosc znakow do odczytania Zwraca: (string) odczytany z pamieci. "" ( pusty string ) jesli nie udalo sie odczytac. */ return external_call( global._xtend_processreadstring, argument0, argument1, argument2 );[/gml] może i tu był błąd... ale nadal zwraca tylko real ;/ Jak byś chciał poprawnie działającą funkcje odczytywania stringa z procesu to pisz na priv =P EDIT: Gorąca prośba do Ciebie Snake: Dodaj VirtualProtectEx do swojego dll'a. Potrzebuje go hardo -------------------- |
|
|
|
3.06.2008 - 10:32
Post
#13
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Poprawiłem: http://gmclan.org/up541_4_Xtend13a.html
Właśnie też znalazłem błąd w tym skrypcie, i jeszcze w DLL-u był "Access Violation" =P VirtualProtectEx ? Zobaczymy EDIT: Ta funkcja nie zwracała real tylko po prostu nic -------------------- |
|
|
|
3.06.2008 - 10:33
Post
#14
|
|
![]() ╭∩╮╭∩╮ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,943 Dołączył: 17.06.2004 Skąd: Czę-owa --> My-ów. Team: http://twitter.com/ihooypl Ostrzeżenia: (100%)
|
ok ;] dodaj jeszcze VirtualProtectEx i będę uber happy ^^
Edit: na to samo wychodzi ;p bo gm nic zwraca jako real ^^ -------------------- |
|
|
|
3.06.2008 - 10:53
Post
#15
|
|
|
Typical noob ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 13 lat Grupa: Użytkownicy Postów: 1,051 Dołączył: 6.02.2007 Ostrzeżenia: (70%)
|
Pieter, jak zrobisz przykład to wyjdzie wysyp nowych czitów i trainerów do Tibi. A może ktoś pokusi się o zrobienie bota do Almory? xD
-------------------- CYTAT(Bagno) Kofel to pedał |
|
|
|
3.06.2008 - 10:59
Post
#16
|
|
![]() ╭∩╮╭∩╮ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,943 Dołączył: 17.06.2004 Skąd: Czę-owa --> My-ów. Team: http://twitter.com/ihooypl Ostrzeżenia: (100%)
|
Trzeba coś zadziałać
SNAKE: potrzebuje żebyś do process_write_string dodał tak zwany null terminator... bo ta funkcja tylko nadpisuje pare liter i resztę zostawia. Żeby nadpisać wszystko muszę w GML pisać GML process_write_string(processID,adres,text); process_write_byte(processID,adres+string_length(text),$00); a twoje process_write_string powinno samo dodawać ten ostatni "bit" -------------------- |
|
|
|
3.06.2008 - 11:41
Post
#17
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
A nie można
GML process_write_string(processID,adres,text + chr( 0 ) ); ? Bo nie każdy może chcieć zapisywać null-terminated stringi Zmień w process_write_string: GML return external_call( global._xtend_processwritestring, argument0, argument1, argument2 + chr( 0 ) ); -------------------- |
|
|
|
3.06.2008 - 11:42
Post
#18
|
|
![]() ╭∩╮╭∩╮ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,943 Dołączył: 17.06.2004 Skąd: Czę-owa --> My-ów. Team: http://twitter.com/ihooypl Ostrzeżenia: (100%)
|
niestety chr(0) nie działa ;p testowałem... no nic ;P trzeba będzie po prostu zrobić nowy skrypt o nazwie process_write_stringNULL czy coś takiego
-------------------- |
|
|
|
3.06.2008 - 13:02
Post
#19
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
No to mały update:
Nowe funkcje: process_write_nstring - zapisuje stringi razem z nullem process_protection (VirtualProtectEx) - Ustawia dostęp do podanego regionu pamięci wybranego procesu. download: http://gmclan.org/up541_4_Xtend14.html EDIT: A tu "Nieoficjalne" example, pokazujące jak można użyć Xtenda ;D ( Publikowałem je wcześniej ) http://gmclan.org/up541_4_XtendExamples.html Przykład "ASM" pokazuje jak można użyć funkcje zapisujące do pamięci, żeby zmodyfikować kod aplikacji z poziomu asemblera. A przykład "close" pokazuje jak można zamknąć proces poprzez wyszukanie jego okna. -------------------- |
|
|
|
21.08.2008 - 17:52
Post
#20
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Update:
Dodałem jedną funkcję - xtend_set_debug_privilege. Po wywołaniu jej Xtend ma prawo dostępu do każdego procesu. Download (v1.5): http://www.gmclan.org/up541_4_Xtend15.html -------------------- |
|
|
|
2.08.2009 - 18:57
Post
#21
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Nowa wersja, oznaczona numerkiem 2 ! >:D
Wprawdzie teraz bibliotekę pisałem głównie z myślą o manipulowaniu innymi programami, jednak w bibliotece można nadal znaleźć parę innych przydatnych funkcji. Dla uzyskania większej wydajności zmieniłem sposób jakim manipulowało się procesami w poprzednich wersjach - teraz trzeba je otwierać (wtedy przy wywołaniu jakiejkolwiek funkcji process_* podany proces był otwierany i zamykany w bibliotece). Dzięki wykorzystaniu GMAPI listowanie procesów, kluczy z rejestru itd. również wygląda inaczej niż wtedy - teraz mogłem użyć znacznie wydajniejszej metody wyliczania - do podanej ds_listy dodawane są odpowiednie wartości, tak więc nie trzeba już pisać pętli z funkcjami *find_first i *find_next ;D W pliku gm6 zdefiniowanych jest wiele stałych z WinAPI przydatnych przy np. wysyłaniu komunikatów czy zmiany stylu okna. A, i nie trzeba już wywoływać funkcji "xtend_set_debug_privilege", uprawnienia są dodawane przy inicjalizacji. Jako że Delphi ssie, Xtenda również przepisałem do C++, dzięki czemu DLL nieco mniej waży ;p Opisy funkcji znajdziecie w skryptach (niestety, tym razem w j. angielskim). Nowa lista funkcji:
Bilioteka w wersji 2.1 i przykład: http://www.gmclan.org/up541_4_Xtend21.html Screeny z przykładu, ażeby was zachęcić do pobrania: 1 2 3 ;[ -------------------- |
|
|
|
2.08.2009 - 19:38
Post
#22
|
|
![]() Chicken ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 16 lat Grupa: Użytkownicy Postów: 1,538 Dołączył: 16.08.2007 Skąd: ja mam to wiedziec? Team: PAS, LE Ostrzeżenia: (20%)
|
QUOTE window_minimize - Minimalizuje podane okno AWSUM : DDDDDDDD QUOTE screen_get_pixel - Pobiera kolor danego piksela z ekranu AWSUMAWSUM : DDDDDDDD Nie no super. Dzieki Snake : ) -------------------- ![]() |
|
|
|
13.08.2009 - 9:08
Post
#23
|
|
![]() Forum Veteran ![]() ![]() ![]() ![]() ![]() Wiek: 12 lat Grupa: Użytkownicy Postów: 421 Dołączył: 24.06.2009 Skąd: si wzi GM? Ostrzeżenia: (0%)
|
Świetny DLL! Przydatne funkcje, możliwe że go użyję, ale może dodasz takie coś:
Wyświetlanie filmiku w wybranym polu w viewie, rozumiesz? Dodasz? -------------------- C++ to potęga!
|
|
|
|
13.08.2009 - 9:11
Post
#24
|
|
![]() Szpan Bot ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Administratorzy Postów: 4,359 Dołączył: 25.06.2006 Skąd: Z fabryki części używanych :) Team: Native Studio |
CYTAT ale może dodasz takie coś: Wyświetlanie filmiku w wybranym polu w viewie hyhyhy xD hmm, ciekawe czy nie będzie się to kłócić z ogólnymi założeniami funkcji biblioteki -------------------- |
|
|
|
9.01.2010 - 1:51
Post
#25
|
|
![]() Forum Veteran ![]() ![]() ![]() ![]() ![]() Wiek: 21 lat Grupa: Użytkownicy Postów: 364 Dołączył: 6.07.2007 Skąd: Koło Ostrzeżenia: (20%)
|
sorry że odświeżam ale chciałbym się spytać, czy dla gm8 będzie tez wersja? bo niestety pod ósemką mi nie działa. bardzo przydatny dll
-------------------- for fun
|
|
|
|
9.01.2010 - 9:53
Post
#26
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Będzie, ale zaktualizuję to dopiero gdzieś za miesiąc, jak wydam nową wersję GMAPI.
-------------------- |
|
|
|
9.01.2010 - 10:50
Post
#27
|
|
![]() Forum Veteran ![]() ![]() ![]() ![]() ![]() Wiek: 21 lat Grupa: Użytkownicy Postów: 364 Dołączył: 6.07.2007 Skąd: Koło Ostrzeżenia: (20%)
|
szkoda, bo by mi sie przydał teraz. ale jak trzeba czekać to trzeba. Odwalasz kawał dobrej roboty
-------------------- for fun
|
|
|
|
10.01.2010 - 7:44
Post
#28
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Mała poprawka: http://gmclan.org/up541_4_Xtend20_fixed.html - poprawiłem opisy niektórych funkcji (wprowadzały w błąd np. złą kolejnością argumentów :F) i informacje o wersji pliku DLL.
-------------------- |
|
|
|
31.01.2010 - 17:37
Post
#29
|
|
![]() Elite ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Wiek: 20 lat Grupa: Użytkownicy Postów: 1,417 Dołączył: 16.12.2005 Ostrzeżenia: (0%)
|
Aktualizacja - teraz DLL jest kompatybilny z GM8. Download: http://www.gmclan.org/up541_4_Xtend21.html
-------------------- |
|
|
|
31.01.2010 - 17:40
Post
#30
|
|
![]() Forum Veteran ![]() ![]() ![]() ![]() ![]() Wiek: 21 lat Grupa: Użytkownicy Postów: 364 Dołączył: 6.07.2007 Skąd: Koło Ostrzeżenia: (20%)
|
xtend rox. teraz tylko czekać na updaty PsichiXa
-------------------- for fun
|
|
|
|
![]() ![]() |
|
Wersja Lo-Fi | Aktualny czas: 3.09.2010 - 18:53 |