DRIVER3x2 Opublikowano 9 Maja 2009 Udostępnij Opublikowano 9 Maja 2009 Witam serdecznie :) Napisałem dla kolegi plik dll służący do szyfrowania i deszyfracji zmiennych i namówił mnie on żebym udostępnił go dla was :) Tym samym jest to mój pierwszy temat na waszym forum :) Przejdźmy do tematu... Mam nadzieje że macie jako takie pojęcia jak używać plików .dll w Game Maker. Najpierw przykład a później wyjaśnię :) GML foo = "sym"; a = 15; ZA = external_define( 'phAss.dll', 'ZA', dll_stdcall, ty_real, 2, ty_real, ty_string ); OD = external_define( 'phAss.dll', 'OD', dll_stdcall, ty_real, 1, ty_string); external_call(ZA, a, foo); show_message('Test odczytania: ' + string( external_call(OD, foo) ) ); external_free('phAss.dll'); Pierwsza linijka jest to zmienna pomocnicza musi się ona składać z trzech znaków, za pomocą tej zmiennej będziemy mogli się później odwołać do zmiennej zapisanej w pliku kojarzonym z tą zmienną :) Druga linijka jest to nasza zmienna którą chcemy zapisać w pliku. następne cztery linijki mam nadzieje że nie wymagają komentarza... Linijka nr 6 GML external_call(ZA, a, foo); Jest to zapis naszej zmiennej a do pliku kojarzonym ze zmienną foo. GML show_message('Test odczytania: ' + string( external_call(OD, foo) ) ); Ta linijka odpowiada za odszyfrowanie pliku kojarzonym ze zmienną foo i jej wyświetlenie, możemy ją zastąpić linijką: GML b = external_call(OD, foo); czyli przypisanie do zmiennej b wartości pliku kojarzonym ze zmienną foo. Linijka nr 10 GML external_free('phAss.dll'); zwalnia biblioteke z pamięci. Mam nadziej że jako tako jest to zrozumiałem, wiem że nie mam daru tłumaczenia, ale jakby co to pytajcie... Plik .dll możecie pobrać z mojego uploada https://gmclan.org/up5334_4_dll_phAss.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 nie wiem jak to szyfrowanie działa, nie chce mi się też składać z tej sterty kodu szyfrator i deszyfrator. powiem tylko, że mogłeś chociaż to sam poskładać w skrypty i by było, a tak nikomu nie chce sie tego uzywac. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 GML foo = "sym"; a = 15; ZA = external_define( 'phAss.dll', 'ZA', dll_stdcall, ty_real, 2, ty_real, ty_string ); OD = external_define( 'phAss.dll', 'OD', dll_stdcall, ty_real, 1, ty_string); external_call(ZA, a, foo); show_message('Test odczytania: ' + string( external_call(OD, foo) ) ); external_free('phAss.dll'); To jest całość kodu do użycia szyfratora, nie sądzę że jest on długi. Jak wspomniałem napisałem tego dll'a dla użytku własnego, żeby wrzucić go tutaj namówił mnie kolega, a może akurat komuś się przyda :) Kto nie chce korzystać to nie musi nic na silę :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 czyli foo robi w tym przypadku za klucz/haslo? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 czyli foo robi w tym przypadku za klucz/haslo? Tak można nazwać to kluczem do pliku w którym zapisana jest zmienna. mały przykład użycia dwóch kluczy: GML foo = "sym"; foo2 = "abc"; a = 15; b = 23; ZA = external_define( 'phAss.dll', 'ZA', dll_stdcall, ty_real, 2, ty_real, ty_string ); OD = external_define( 'phAss.dll', 'OD', dll_stdcall, ty_real, 1, ty_string); external_call(ZA, a, foo2); //zapisanie zmiennej a do pliku z kluczem foo2 external_call(ZA, b, foo); //zapisanie zmiennej b do pliku z kluczem foo show_message('Test odczytania: ' + string( external_call(OD, foo) ) ); // odczytanie zmiennej z pliku kojarzonym z kluczem foo show_message('Test odczytania: ' + string( external_call(OD, foo2) ) ); // odczytanie zmiennej z pliku kojarzonym z kluczem foo2 external_free('phAss.dll'); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 Domyslam sie ze wspolgra z liczba a, ktora zapewne jest przesunieciem. heh, jak tak to sposob ze tak powiem nijaki, jesli przelatujesz xorem i dajesz przesuniecie :P jesli jednak sie myle to mnie sprostuj jak to dziala :P a nie, poprawka, "sym" to widac jest kotwica, a samym kluczem jest liczba, a wiec czy to samo przesuniecie czy sam gnyskowy xor (klucz to liczba; very zly sposob, nie polecam) to kiepsko tu widze bezpieczenstwo danych :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 Nie, nie jest tak jak mówisz, w sumie to mało zrozumiałem z tego co napisałem :) Algorytm zapisania i szyfrowania zmiennej jest całkiem inny niż myślisz (o ile dobrze myślę co ty myślisz :D) Pobierz dll'a i zrób szybki teścik, a może zrozumiesz jak to działa :) edit // Zapoznałem się z tym xor'em o którym pisałeś, nie słyszałem o tym wcześniej i mogę cie zapewnić że to nie jest ta metoda szyfrowania :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 Nazwa pliku generowana jest z podanego klucza - do pierwszych 3 znaków w ciągu dodawana jest liczba 36. Podana liczba która ma być zaszyfrowana w pliku zamieniana jest na liczbę całkowitą a potem zamieniana na ciąg znaków, następnie do każdego znaku w stringu dodawana jest liczba 63. Potem wpisujesz do pliku 40 bajtów śmieci, zaszyfrowaną liczbę (zakończoną powrotem karetki i znakiem nowej linii) i kolejne 40 bajtów śmieci :) Nieco słabe. Powinieneś dać przykład w gm6/gmk albo przynajmniej plik gml żeby zaimportować skrypty do projektu, bo tak to się nie chce składać samemu ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 Bardzo wnikliwa obserwacja, gratuluje spostrzeżeń :) następnie do każdego znaku w stringu dodawana jest liczba 63. Nie wiem jak ci to wyszło ale liczba która jest dodawana to nie 63, ale 15. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 A sry, plik podglądałem w hex edytorze i patrzałem na podgląd bajtów w postaci szesnastkowej, dlatego tak mi się pomyliło :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 A sry, plik podglądałem w hex edytorze i patrzałem na podgląd bajtów w postaci szesnastkowej, dlatego tak mi się pomyliło :D Chamskie to było z tym hex edytorem :D Myślałem że sam do tego doszedłeś :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 co poradzisz, taka smutna rzeczywistość że wszystko będą chcieli Ci rozłożyć na czynniki pierwsze :P przyzwyczaj się i lepiej zrób jakiś lepszy sposób na zabezpieczenie bo ten jest kiepski a skoro już wiemy jak szyfruje to bez problemu będzie to wszystko odkodować :P serio, sprawdź lepsze metody szyfrowania :) PS. co do sygny: IF (a>=18) INTERNET(); zwykle czepialstwo ale rzuca sie w oczy ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 10 Maja 2009 Administratorzy Udostępnij Opublikowano 10 Maja 2009 Zapoznałem się z tym xor'em o którym pisałeś, nie słyszałem o tym wcześniej i mogę cie zapewnić że to nie jest ta metoda szyfrowania :) I od razu wiadomo, jak liche jest Twoje szyfrowanie, skoro nie znasz tak prostej metody. Podpowiem, że właśnie XORem szyfrowano wiele wiadomości w czasie II Wojny światowej i istniały specjalne książeczki z kluczami, gdzie każda karteczka była wyrywana po przyjściu wiadomości. Musisz się jeszcze pouczyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 heh :D Tak wiem że metoda nie jest trudna, ale plik ten robiłem dość krótko i jego celem będzie tylko prosta szyfracja ilości żyć i zdobytych monet w grze, nie będzie służył do kodowanie numerów kont bankowych więc nie wiem o co tyle zamieszania xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 bo widzisz, My tu lubimy dokładność w tym co sie robi i często możesz się spodkać z sytuacją gdzie większość się na Ciebie uweźmie, ale nie dla tego aby Ci ukrócić skrzydła, ale aby Ci pokazać gdzie leży błąd, jakich sposobów najlepiej użyć :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
DRIVER3x2 Opublikowano 10 Maja 2009 Autor Udostępnij Opublikowano 10 Maja 2009 I od razu wiadomo, jak liche jest Twoje szyfrowanie, skoro nie znasz tak prostej metody. Nie wiem jak nie znajomość metody xor może świadczyć o tym że moja metoda jest słaba :D bo widzisz, My tu lubimy dokładność w tym co sie robi i często możesz się spodkać z sytuacją gdzie większość się na Ciebie uweźmie No to aż za dobrze widać, prawie w każdym temacie ktoś się czegoś uczepi, ale po dłuższym zastanowienie to nie jest takie głupie, łatwiej doskonalić nasz projekt jeśli wiemy gdzie popełniliśmy błąd :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 10 Maja 2009 Udostępnij Opublikowano 10 Maja 2009 Nie wiem jak nie znajomość metody xor może świadczyć o tym że moja metoda jest słaba biggrin.gif bo XOR to podstawa bezpiecznego szyfrowania, w przeciwienstwie do zwyklego przesuniecia wartosci znaku o klucz. Jednak XOR sam bez dodatkowej metody nic nie pomoze, bo i to mozna zlamac przy uzyciu techniki bruteforce, dla tego jak szyfrujesz to mieszasz glowny algorytm szyfrowania z bazowym XORem gdzie klucz to ciag znakow, a nie liczba Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się