Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczanie aplikacji przed kradzieżą
Forum PHP.pl > Forum > PHP
Stron: 1, 2, 3
borec
@Bakus: tu masz to samo na serwerze:

www.iii-lo.tarnow.pl/~borec/mazed.php
www.iii-lo.tarnow.pl/~borec/mazed.txt (zrodlo, zapisz na dysk i odpal, w przegladarce nie wyglada najlepiej)

jak wspominalem to jest najnizszy poziom zabezpieczenia, wiec nie powinnienes miec problemow z odkodowaniem
sf
Hm, a jak forum IPB 2, które jest teraz płatne ma zamiar się zabezpieczyć przed używaniem forum za darmo? tongue.gif
kubatron
Cytat(sf @ 2004-10-02 14:27:30)
Hm, a jak forum IPB 2, które jest teraz płatne ma zamiar się zabezpieczyć przed używaniem forum za darmo? tongue.gif

Wydają tzw. wersje TRIAL czyli 15dniową, i ma być ograniczona...
Vengeance
Po 1. powiem ze ten "zakodowany" skrypt w ogole mi nawet nie dziala. ale szczegol.

po 2. rzeczywiście trudno jest to rozkodować. Ale nie jest to niemożliwe ;]
Nie będę tu wklejał moich dokonać bo to troche by zawaliło baze a i tak polowe by poucinalo ze wzgledu na "specjalne znaczki". Powiem tylko tyle (co i pewnie Bakus zauważy jeśli też będzie chciał rozpracować ten skrypt), że najgorsze w tym wszystkim są poziomy zagnieżdżenia. To znaczy te wszystkie dzikie znaczki przeinaczają się potem w kod php który znów ma dziwne znaczki w środku. Ów dziwne znaczki po modyfikacjach phpowych znów przeinaczają się w kolejny skrypt i staje się to dość monotonne ;]

Skrocone wersje tego co ja odszyfrowalem.

Poziom pierwszy zagniezdzenia
  1. <?php
  2. $V000='4d27bd16bb9f99840567e7fdd92adfaf';
  3.  
  4. if(version_compare('4.3.0',phpversion(),'>='))
  5. {
  6.  echo 'This script requires php version 4.3.0 or higher (current version is return '.phpversion().')';
  7.  return;
  8. }
  9.  
  10. $GLOBALS['V002']=microtime();
  11. $znaki_ascii='';
  12.  
  13. for($i=0;$i<=255;$i++)
  14.  $znaki_ascii .= chr($i);
  15. ?>
  16. <?php
  17. function nazwa($parametr)
  18. {
  19.  global $znaki_ascii;
  20.  $znaczki=substr($znaki_ascii,63,128).substr($znaki_ascii,0,63).substr($znaki_ascii,63+128);
  21.  echo $znaczki;
  22.  return eval(strtr($parametr,$znaczki,$znaki_ascii));
  23. }
  24. $przyszly_parametr = ob_get_contents();
  25.  
  26. nazwa($przyszly_parametr);
  27. ?>


Poziom drugi zagniezdzenia
  1. <?php // drugi obieg
  2. // ... smieszne znaczki otrzymane po rozkodowaniu wczesniejszych smiesznych znaczk
  3. ...
  4. function nazwa2($parametr)
  5. {
  6.  global $znaki_ascii;
  7.  $znaczki=substr($znaki_ascii,18,218).substr($znaki_ascii,0,18).substr($znaki_ascii,18+218);
  8.  return eval(strstr($parametr,$znaczki,$znaki_ascii));
  9. }
  10. ?>


trzeci tez rozszyfrowalem ale kupa w nim smieci dodanych ot tak poprostu przez ten szyfrator. W sumie zaprzestalem dalej sie tym bawic bo nie widze w tym celu hehe ;] do odszyfrowania to i tak jest ale szkoda czasu na to bo i tak nic mi to nie da ;]
Vertical
Numer seryjny w celu odpalenia? Wystarczy wejść na http://mscracks.com . Ja radziłbym wprowadzić do produktu coś w stylu "klucza autoryzacyjnego". Po pierwsze, program nie działałby (w przypadku windowsa) bez wpisów w rejestrze, a po drugie, przy każdym zainstalowaniu klucz autoryzacyjny zmieniałby się zależnie od numeru produktu. Numer produktu "szyfrowałby" klucz autoryzacyjny za pomocą algorytmu. Algorytm byłby zmieniany co jakiś czas, żeby nie powstawały "keygeny". Oczywiście za klucz autoryzacyjny trzeba byłoby zapłacić.
Vengeance
jak dla mnie wszystkie te sposoby sa denne ;]

kupuje taki user jedna kopie oryginalna. instaluje z tymi twoimi kluczami etc...
przez to ze zainstalowal tworza mu sie jakies tam pliki czy cos.

On to wszystko kopiuje pakuje i wystawia.
No i ludzie maja w 100% dzialajacy skrypcik.
mpps
klucz autoryzacyjny mógłbyś zmienić dopiero z kolejną wersją ( ew. upgreade). to samo się tyczy algorytmu numeru produktu szyfrującego klucz autoryzacyjny. w innym wypadku to, co byś zarobił, szło by na opłacenie zabezpieczeń (Twój poświęcony czas też ma swoją cenę)...
chyba, że stworzyłbyś algorytm szyfrujący algorytm numeru produktu szyfrujący klucz autoryzacyjny... (enigma?? coś w tym stylu...)

P.S. w ostatnim zdaniu nie ma błędu... biggrin.gif
Vertical
@Vengeance: Nie może przekopiować, bo potrzebne są wpisy w rejestrze!
Ale tak na marginesie, to ten system tylko teoretycznie mógłby działać.
Cytat
Twój poświęcony czas też ma swoją cenę

Właśnie o to chodzi. Wszystko, co powiedziałem, to czysta teoria smile.gif
Puciek
Sledze ten temat od poczatku z niemalym zainteresowaniem i po tych wszystkich postach postanowilem sie wypowiedziec.

Myslimy od zlej strony, poniewaz jak zostalo powiedziane na wytrwalych nie da rady - zbiora sie w pare osob i zawsze sobie poradzą. Dlatego tez nalezy poprostu pomyslec od drugiej strony - niezabezpieczamy kodu - niech mysla ze nie ma zabezpieczen a tak naprawde bedzie tam schowany skrypt laczacy sie z ogolna baza MyApp i jezeli adres z ktorego zostal wyslany sygnal niebedzie zgodny z zawartym w umowie MyApp (dodatkowy problem w tym ze klient bedzie musial informowac o zmianie adresu) wysyla email do autora. I wtedy kwestia czy zawarlismy w licencji klauzule oplaty za rozpowszechnienie skryptu. Dzieki temu zostaniemy poinformowani o tym i bedziemy mogli wytoczyc proces klienowi zadajac odszkodowania zawartego w umowie.

Innego rozwiazania niewidze.
mpps
i obudzisz się zlany zimnym potem... winksmiley.jpg
jeśli to by było jedyne rozwiązanie, to crackerzy z nudów zaczęli by czyścić swoje klawiatury, co poniektórzy myszki... tongue.gif
Pućku drogi, czy uważasz, że światek przestępczy szanownie crackujący chodzi w dresach, nie ma szyi i ma zeza, czy wygląda jak wychudzony, niewyspany wypłoch, opity coli i redbull-a do granic możliwości?
żyjesz w matrixsie...
weź pigułkę biggrin.gif
Puciek
Nie zyje w matrixie ale znam conieco ludzi z tego srodowiska (wprawdzie glownie gry i programy, ale skrypty php tyz) i z zalozenia wiem ze jak sie upra to zalatwia.

Nierozumiem tylko twojej dygresji do dresow
mpps
Cytat
Nie zyje w matrixie ale znam conieco ludzi z tego srodowiska (wprawdzie glownie gry i programy, ale skrypty php tyz) i z zalozenia wiem ze jak sie upra to zalatwia.
i właśnie o to mi chodziło!
uważasz, że nie wpadną na to rozwiązanie, które zaproponowałeś? pewnie, że wpadną!

Cytat
Nierozumiem tylko twojej dygresji do dresow
myślący inaczej (przenośnia zwana również metaforą) winksmiley.jpg
wyjątki potwierdzają regułę...
prościej: aby bawić się w łamanie kodów nie wystarczy mieć 80IQ i dobre chęci... i bogatego tatusia, który kupi my new comp...
Puciek
Jasne ze wpadna, ale nim wpadna to wlasciciel MyApp otrzyma sygnal ze kopia sie przedostala - taki byl moj sens
mpps
jednak wolę enigmę...

teoria: czy da się tak zapętlić zabezpieczenie w jądrze systemu, żeby nie można było oszukać lub usunąć (dezaktywować) zabezpieczenia bez naruszenia samego jądra?
Puciek
Cytat(mpps @ 2004-10-02 22:28:25)
teoria: czy da się tak zapętlić zabezpieczenie w jądrze systemu, żeby nie można było oszukać lub usunąć (dezaktywować) zabezpieczenia bez naruszenia samego jądra?

To nawet teoretycznie nie jest mozliwe gdyz mozna spokojnie usunac zabezpieczenia szyfrujace ze wszystkich plikow a dopiero potem je odpalic na serwerze.
Lukasz Luczak
A ja powiem Wam tak:

Nie da się niczego zabezpieczyć na 100%...

Jeśli udostępniasz komuś kod to mozesz być pewien, że ten kod pójdzie w świat i trafi w ręce kogoś kto będzie w stanie usunąć zabezpieczenia - odpowiednie manipulacje na pliku, debugowanie, dekompresja itp a potem tylko usunąć co potrzeba.

Podsumowując:

Nic nie zabezpieczysz idealnie.

Ale:

Możesz dać na tyle mocne zabezpieczenia by żadnemu crackerowi nie opłacało się ich złamać.


Jeśli cena Twojego produktu będzie odpowiednio niska a krąg odbiorców zawężony to sie nikomu nie opłaci. Jednakze jeśli produkt będzie drogi lub potrzebny dużej liczbie osób to znajdą się grupy, które go złamią.

Scanner - przykro mi. Jedyny sposób to postawić własny serwer i konta na nim sprzedawać.

Pozdrawiam,

PS: To jest moje zdanie - zdanie cżłowieka, który programuje w różnych językach i zajmuje się oprogramowaniem systemowym. Mozen iektórzy "informatycy" co tylko na php się znaja będą innego zdania ale trzeba im to wybaczyć - gdy powiększą swoją wiedzę to zrozumieją błędne rozumowanie.
NuLL
Wiecie mysalem o czyms takim - instaltor Flashowy(ktos to zaproponowal) i aby go uruchomic trzeba miec uzytkownika, klucz i haslo i adres Moze byc demo obkrojone. Za dostanie tych rzeczy trzebaby zaplacic - ktos placi to zal potem rozdawac. Mialem pomysl z generowanim osobnych instalatorow(we Flashu i ActionScripcie) dla kazdego uzytkownika -ktos rozpowszechnil to go pod sad. Do Flasha dostac jest sie nie latwo.

PS. No i umowa - jesli sie znajdzie w Sieci nielegalnie kupujacy placi x20- kazda szanuajca kase osoba nie zrobi tego :-)

Co myslicie o czyms takim?? - Glownie inwidulane instalatory

Pozdro
Bora
zawsze można skorzystać z funkcji dl i wywołać własny skompilowany plik.
dl(siezka);
Bakus
@null: wszystkie skrypty z flasha da się wyciągnąć bez większego wysiłku... Poszukaj w googlach programów do tego... pare minut i masz na dysku przynajmniej 10 różnych aplikacji do tego celu...
"PS. No i umowa - jesli sie znajdzie w Sieci nielegalnie kupujacy placi x20- kazda szanuajca kase osoba nie zrobi tego :-)" - nielegalnie kupujący ma w d**** Twoją umowę...
@Bora: to wiedzą wszyscy... tak działa TMMC i ZendOptimizer... Chodzi o inne metody...
Bora
Cytat(Bakus @ 2004-10-03 04:38:15)
Bora: to wiedzą wszyscy... tak działa TMMC i ZendOptimizer... Chodzi o inne metody...

moze i wie czesc ale zaloze sie ze jeszcze mniej wie o mozliwosci dolaczania biblioteki z wybranej lokalizacji.
Pozwala to na dolaczenie jedego pliczku do wlasnego skryptu i bezpieczne korzystanie z niego.
Co do skryptu kolejnym zabezpieczeniem przed motaniem jest sprawdzanie rozmiaru.
Pamiętam że było to ładnie ukryte w skrypciku do streamingu z serwer'a www
Lukasz Luczak
Wy ciagle jesteście w błędzie.

Nie zakłądajcie, że program chce ukraść lamer - bo takich w sieci wiele. I oni prostego zabezpieczenia niee przejdą.

Załóżcie, że program chce ukraść profesjonalny cracker i myślcie tymi kategoriami.

A dołacznaie biblitoek itp - zawsze jest kod skompilowany, który da się odkompilować.

Proste....
M4chu
Cytat(Lukasz Luczak @ 2004-10-03 11:57:18)
zawsze jest kod skompilowany, który da się odkompilować.

Pierwsze slysze, mozesz cos wiecej na ten temat powiedziec?
Vengeance
google -> deasemblacja czy jakos tak
Lukasz Luczak
Po skompilowaniu uzyskujesz kdo wynikowy - będący instrukcjami procesora.

Wykorzystując dobry dekompilator możesz ten kod skompilowany przemienić w plik źródłowy asm'a, pascal'a, cpp, php'a lub jakiegoś innego języka...wystarczy mieć dekompilator.

Oczywiście uzyskujesz dziwne nazwy zmiennych i funckji ale to wystarczy by usunąć zabezpieczenia...

W najgorszym wypadku bawisz się debuggerem- odnajdujesz miejsce w pliku gdzie jest sprawdzany kod i na sztywno wpisujesz, że kod jest prawdziwy.

Proste - w zależności od stopnia zaawansowania zabezpieczenia potrzebuejsz od 10 minut do paru dni...
orson
Cytat(Lukasz Luczak @ 2004-10-03 12:04:38)
Wykorzystując dobry dekompilator możesz ten kod skompilowany przemienić w plik źródłowy asm'a, pascal'a, cpp, php'a lub jakiegoś innego języka...wystarczy mieć dekompilator.

witam ...

a swistak siedzi za sreberka ....

dekompilacja to jest przeksztalcenie kodu maszynowego Z POWROTEM do assemblera ... kazdy kompilator zmienia natywny jezyk na assemblera i z niego na kod maszynowy ... nie da sie tego zrobic odwrotnie ... inaczej juz na sieci by byly zrodla windowsow i innych programow ...

pozdrawiam
Vertical
Cytat
dekompilacja to jest przeksztalcenie kodu maszynowego Z POWROTEM do assemblera

Niekoniecznie... Jeśli jesteś ZDOLNY:) możesz to przekształcić na C++....
orson
Cytat(Vertical @ 2004-10-04 17:29:00)
możesz to przekształcić na C++

witam ...

recznie to tak ... ale on napisal:
Cytat
Wykorzystując dobry dekompilator możesz ten kod skompilowany przemienić w plik źródłowy asm'a, pascal'a, cpp, php'a lub jakiegoś innego języka...wystarczy mieć dekompilator.

czyli ze dekompiler zrobi to sam ... a takiego nie ma ...

pozdrawiam
Lukasz Luczak
orson - o ile zakład, że są ?
orson
witam ...

to moze pokazesz taki questionmark.gif

pozdrawiam
Puciek
Sam swego czasu spotkalem sie z dekompilatorem ale dzialal on na zasadzie analizy progrmu i generowania mu podobnego. Nalezalo zostawic program wlaczaony pare godzin aby kopier dokonal analiz po czym tworzyl podobny program ale jak wiadomo tym sposobem skopiujesz malo co gdyz analiza jest niedokladna.
Vengeance
ja gdzies cos widzialem soft ktory z execa przerabial z powrotem w kod pascala. WIADOMYM JEST ze nie jest to wierna kopia czy cos.
ActivePlayer
Cytat(DeyV @ 2004-09-30 10:44:11)
Jeśli juz mówimy o zabezpieczaniu - ostatnio zastanawiałem się nad sposobami generowania "kluczy aktywacyjnych".

Problem sprowadza się do tego, jak napisać skrypt generujący jakiś klucz tak, by osoba mająca dostęp do kodu sprawdzającego czy dany klucz jest poprawny (zamka) - nie mogła (przynajmniej w zbyt prosty sposóB)  wygenerować kolejnego (innego) klucza, pasującego do danego "zamka".

Nie znalazłem żadnych gotowych bibliotek do takich działań, a wszystkie pomysły jakie przyszły mi do głowy - okazywały się stanowczo zbyt banalne do złamania.

macie jakieś pomysły?

tez sie nad tym zastanawialem i mam pytanie:

mam linka:
costam.php?id=1&id2=md5(id)
(zamiast md5(id) wstawia sie wartosc jaka zwraca funkcja tongue.gif)
no i teraz jak ktos zczai sie ze to jest md5 to moze sobie przeciez samemu wygenerowac jak md5 wyglada powiedzmy dla wartosci 10 i bez problemu wejdzie pod link:
costam.php?id=10&id2=md5(id)

rozumie ktos o co mi chodzi ? jakis pomysl ?
Puciek
Dopoki php jest jezykiem interpretowanym a nie kompilowanym do poty bedziemy zdani na to ze nasz klient bedzie uczciwy, ewentualnie na kruczki w umowie ktore zwroca nam w razie zegos satysfakcje finansowa.
Lukasz Luczak
php jest zbyt prostym językiem by w nim zaimplementować jakieś bardzo zaawansowane sztuczki.

Po prostu php z założenia miał być prosty i chałupniczy.

Dopóki nie przebudują całego interfejsu itp to sytuacja się nie zmieni, ale jeśli przebudują go to php straci sporo i tyle.

Life is brutal, coś za coś. Łatwość tworzenia = nie możność porządnego zabezpieczenia.
Sh4dow
Jedynym sposobe jest oferowanie usług w postaci skryptu dostosowanego dla klienta na wlasnym serverze.
Ale zabawy z utrudnianiem ludziom zycia moze byc ciekawym sposobem na nude cool.gif
Puciek
No to jeszcze można się pobawić w java script: http://proslon.webpark.pl/download.html

PS. Mi zajęło 27 minut bo ręcznie się w to bawiłem
pirat
hmmm a ja mam pytanie http://test.super.sklep.pl/sklep/ tu mozecie sobie testowy zrobic aktywowac chyba na 14 dni http://www.amm.pl/serwer_e-commerce_topshop.htm

W sumie polowa skryptow jest dostepna owszembez problemow, ale ta wazniejsza jest w jakis spoob ukryta blink.gif ja nie wiem jak.....
kukix
Nie czytałem wszystkich postów, i nie wiem, czy ktoś o tym mówił.

W sieci są dostepne programiki napisane w php i nie tylko, które psują kod...
Kod po przejściu przez taki skrypt jest trudny do edytowania nawet przez jego twórce.

Program usuwa komentarze, nowe linie i zmienia nazwy zmiennych, funkcji itp, przez co staje się mega niecxzytelny, osoba, która sma nie potrafiła stworzyć takiego skryptu, wątpie, żeby mogła tam za dużo pozmieniać...
Co o tym sądzicie...? dry.gif
Vengeance
było omowione a nawet w wczesniejszych postach "łamaliśmy" taki "szyfr"
danek
a mi przyszło do głowy:
1. kod produktu tzn łączy sie z twoim servem i sprawdza kod produktu (kod produktu to MD5(IP))
lub
2.U ciebie w bazie zapisuje id usera kóry zapłacił i czy ma zmienne IP potem każesz w instalce podać login i hasło do usera o id x na twojej stronie (jeśli do podanego usera jest przypisane stałe IP to sprawdza IP w instalce i na twojej stronie)
jak nie rozumiecie to piszcie
scanner
Danek: nie rozumiem, więc piszę.
NIe rozumiem po co podajesz coś, co juyz tutaj było omawiane AFAIR.
Vengeance
1. tak jak powiedzial scanner
2. usuwasz kod php laczacy sie z zew. serwerem i po sprawie.
phpbybastek
możesz zabezpieczyć tylko przed laikiem, zend.com ma aplikacje do kodowania, jak Cię stać to sobie kup
yeti
Coż,
ja preferuje postawienie aplikacji na swoim serwerze. Jak klient klepie i płaci aplikacja grzecznie wskakuje pod wskazany adres.

Ale to i tak nie zabezpiecza przed klientem, który po klepnięciu gotowego już produktu nagle rezygnuje z jego kupna ;(
binio
Cytat(kukix @ 2004-10-31 20:11:29)
Nie czytałem wszystkich postów, i nie wiem, czy ktoś o tym mówił.

W sieci są dostepne programiki napisane w php i nie tylko, które psują kod...
Kod po przejściu przez taki skrypt jest trudny do edytowania nawet przez jego twórce.

Zapodaj nazwe tego porgramu to pokombinuje bo mam odpowiedni problem smile.gif
dag
Może ktoś ma doświadczenia, jak sobie w takich sytuacjach radzą agencje interaktywne? Nie wiem, czy to bylo juz omawiane wiec pisze.
terreska
Troche stary temat, ale mnie zaciekawił, a mianowicie "licencja".
Jak powinna wyglądać taka licencja? Może ktoś podać przykład takiej licencji?
NetJaro
Dużo szukałem w Internecie na temat programów zabezpieczających skrypty.
Sporo było darmowych skryptów, może faktycznie jakoś działały ale.. strasznie zwalniały pracę skryptu a w dodatku wystarczyło trochę się pomęczyć i można było znaleść w Internecie dekoder (ba! czasami skrypty były tak proste, że samemu można było odkodować..) - jak to mówią, dla chcącego nic trudnego.
Następnie poprzeglądałem Internet w poszukiwaniu płatnych programów kodujących. Ceny były spore.. 150$ - 600$, więc dla kogoś kto używa tego "na jeden raz" na pewno się nie opłaca (chyba, że ma "biznes plan" i mu się zwróci ;-) ). Jedyne co słusznego zauważyłem to ionCube. Może wymaga funkcji dl() odblokowanej u usługodawcy, ale jestem pewny, ze jeżeli ten usługodawca otrzyma odpowiedni list i dba o swoich klientów udostępni odpowiednie funkcje (nawet dla jednego konta).
Nie sprawdzałem Zend'a - wiem, że było sporo szumu gdy w Internecie zaczęły pojawiać się oferty gdzie odkodowują skrypty.

Moje podsumowanie jest takie: za darmo nic ciekawego nie znajdziesz - a czasami opłaca się wydać "kilka" dolarów (ew. €) by spać spokojnie i.. zaskoczyć czymś klienta smile.gif
Domin
Myślałem też o stworzeniu bazy danych z unikalnym kodem zapisanym gdzieś w aplikacji któy był by przypisany do jednego klienta któremu się aplikacje sprzedało. Przy instalacji kod był by automatycznie wysyłany z adresem i jakimiś tam informacjami na e-maila czy serwer, a na dodatek przy udostępnianiu np. na torrentach Twojej aplikacji możesz sobie ją pobrać i sprawdzić jaki ma kod a wtedy będziesz wiedział kto udostępnił i mozesz ubiegać się o odszkodowanie.

A co do licencji, to też bym chętnie poczytał przykładowe licencje i jak robią to inni.
cadavre
Jeśli chodzi o php to teoretycznie nie ma możliwości zabezpieczenia kodu. Gdy komuś udostępnisz pliki z aplikacją php to już nie możesz być spokojny o nią. Nawet jeśli wprowadzisz jakieś klucze etc. to zawsze byle programista będzie potrafił je usunąć z otwartego kodu - php nie jest kompilowanym językiem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.