Snake
-
Postów
1 445 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Snake
-
-
Dekompilator do javy ? DJ Java najlepszy :) http://members.fortunecity.com/neshkov/dj.html
-
Hmm... już podejrzewam, które osoby będą chciały oryginalnych zabezpieczeń :) pozostaje pytanie... ile płacicie ? xD joke.
-
Hmm... podejrzane
PrivateResource=libpyramidGM_private.rc
:P
Lepiej poczytaj artykuł Tymona o pisaniu DLL-i. Dałeś tylko przykładowe (w dodatku marne ) funkcje i to bez żadnych wyjaśnień.
-
Czytacie w moich myślach ;D Mam właśnie zamiar dodać jakieś zabezpieczenia do gier tworzonych w GM7.1 na wypadek dekompilatorów. I będzie Game Protector 1.0 :) Ręcznie też bym mógł zabezpieczać "większe" projekty gdyby zaszła potrzeba innego zabezpieczenia, niż z "obcykanego" GP :)
-
Przetestować nie mogę, bo Tibii nie mam ;P Ale brakuje w tym examplu komentarzy - nie każdy wie jak posługiwać się tymi funkcjami z mojego DLL-a tak, by coś odpowiednio zmienić czy odczytać w procesie :P A jak ktoś nie miał z czymś takim do czynienia jak operowanie na pamięci procesu to nic nie skapuje ;)
-
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:
https://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 )
https://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.
-
A nie można
GMLprocess_write_string(processID,adres,text + chr( 0 ) );? Bo nie każdy może chcieć zapisywać null-terminated stringi :PZmień w process_write_string:
GMLreturn external_call( global._xtend_processwritestring, argument0, argument1, argument2 + chr( 0 ) );:P
-
Poprawiłem: https://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 :P
-
@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:
https://gmclan.org/up541_4_Xtend.html ( przykład nie pokazuje jak można użyć nowych funkcji )
-
O, dobrze że przypomniałeś ;D
-
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 :P
-
Itemy[0].ImageIndex := 1; // Ikona itema "Obrazki" (...)
-
Kliknij dwa razy na formę, albo forma >> events >> OnCreate
I'm ready to new mission. I'm ΜΦΞPowstaje nowy silnik 3D do GameMakera pod nazwą ΞΫΞΘΝ ΞЦО
xD
-
Daj po "implementation":
var Itemy : array of TTreeNode;
Event tworzenia Formy:
SetLength( Itemy, 2 ); Itemy[0] := TreeView1.Items.Add( nil, 'Obrazki' ); Itemy[1] := TreeView1.Items.Add( nil, 'Muzyka' );
Event dodawania subitema do itema "Obrazki":
TreeView1.Items.AddChild( Itemy[0], 'Obrazek0' );
Event dodawania subitema do itema "Muzyka":
TreeView1.Items.AddChild( Itemy[1], 'Muzyka0' );
-
-
Sformatuj sobie mózg.
-
Whoah, stawiacie na mnie ? Cóż, zobaczymy ;D
-
Program do Delphi ? Delphi.
-
Erm... gra hentai ? Niezbyt mnie kręcą tego typu rzeczy xD Średnia ta gra, i nie wiem co byś mógł dodać do czegoś takiego, żeby była lepsza... ee... więcej dup ? ;D
@Tits topic: Za duże są. ;P
-
http://www.lightsphere.com/dev/web20.html
http://plambeck.org/cgi-bin/wordgen.cgi
http://www.iq0.com/startup.html
http://adactio.com/extras/newmediagenerator/?
Generuj sobie i może coś Ci wpadnie do głowy ;D
...ależ problemy xD
-
Hmm... animacji 2D... Game Maker, Alligator Flash Designer, (Cosmigo) Pro Motion, Pivot, (Jasc) Animation Shop...
-
Pliki wykonywalne otwiera się za pomocą execute_program, a nie jakieś dokumenty...
Do tego służy execute_shell
GMLexecute_shell( 'slajdy.ppsx', '' ); -
Weź... notepad 100000000^128 razy lepszy. Zostań w GM-ie lepiej ;D 1/5
-
[APP] Instant Player Offline
w Gotowe gry i programy
Opublikowano
E no, takiego "lajtowego" mógłbym zrobić - zabezpieczającego przed script kiddies :) Ale jakieś zabezpieczenia z wyższej półki to wyłącznie dla mojego pracodawcy ;D