Jump to content

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Photo
- - - - -

iOS sposob na anty piractwo ?


  • Please log in to reply
87 replies to this topic

#1 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 05 November 2010 - 13:05

Czy ktos ma jakas dobra metode na zablokowanie lub chociaz utrudnienie zpiracenia aplikacji ? oprocz oczywiscie InAppPurchase. Byla kiedys metoda aby sprawdzac czy w info.plist znajduje sie klucz 'iphoneAppDeveloper' (czy jakis podobny) ale zdaje sie ze juz to nie dziala. Ma ktos jakies doswiadczenia w tym temacie ? Googlalem troche, ale nic ciekawego nie znalazlem :(

#2 wojtkow

wojtkow


  • 6767 posts
  • Płeć:
  • SkądPoznań

Posted 05 November 2010 - 14:15

Przeniosłem wątek na zamknięte forum - tutaj omawianie tego tematu ma większy sens, a na pewno utrudnia robotę tym, którzy chcą obejść nasze zabezpieczenia. Ja stosuję kilka zabezpieczeń, ale wszystkie de facto są łamane, m.in.: - sprawdzanie wielkości pliku .plist - sprawdzenie czy zawiera odpowiednie wpisy (podpis) - sprawdzenie dat plików - jeżeli ktoś modyfikował plik .plisty to zmieni datę modyfikacji Najbardziej radykalnym jest testowanie czy urządzenie jest w trybie JB, ale blokuje to możliwość działania u osób które legalnie kupiły program mając JB.

#3 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 05 November 2010 - 14:32

co masz na mysli o sprawdzaniu 'podpisu' ? mowisz o sprawdzeniu certyfikatu ? jakis sposob ? z datami i wielkosciami, ciekawy pomysl, tylko czy nie jest to troche strzelanie sobie w stope ? bo musisz za kazdym razem pamietac zeby uaktualnic wielkosc pliku przy ew. zmianie. A chyba obecne zlamanie appu nie zmienia samego plist. Chyba zeby sprawdzac wielkosc calego bundla... A czy data pliku nie jest data kiedy uzytkownik zainstalowal aplikacje, a nie kiedy Ty ja stworzyles ? samo blokowanie JB odpada, sam mam JB (m.in. dla remindera aka notifications) i nie uwazam ze to dobry pomysl. sorka za zly dzial, to przez automatyczne logowanie :) myslalem ze cale 'dlaDeveloperow' jest prywatne :)

#4 wojtkow

wojtkow


  • 6767 posts
  • Płeć:
  • SkądPoznań

Posted 05 November 2010 - 15:53

Trochę popieprzyłem - chodzi o sprawdzanie wpisu SignerIdentity. Widziałem też gdzieś kod który sprawdzał czy pakiet jest szyfrowany, ale nie dział u mnie. Generalnie bazuję na kodach z forum iPhoneDevSDK i StackOverflow, sam nie bawię się w szukanie metod zabezpieczeń - nawet nie mam JB.

#5 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 05 November 2010 - 17:55

:) no to wlasnie o to 'signeridentity' mi chodzilo piszac 'iphoneappdeveloper' - znaczy sie ja tez pop... przegladalem oba, ale nic ciekawego nie znalazlem. masz jakies linki ? moze przegapilem.

#6 Lestek

Lestek
  • 880 posts

Posted 28 January 2011 - 12:35

Po pierwszym dniu mogłem pobrać swoją grę z serwera pirackiego. Nie mam JB więc nie sprawdzę czy działa ale porównuję wyniki w GC i raport sprzedaży. Problem jest ogromny. Ja zrobię za chwilę update. Pomysł jest taki, jeśli wykryję JB, wyświetlą się reklamy. Jak myślicie, czy to dobre rozwiązanie? Ma ktoś jakieś lepsze?

#7 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 28 January 2011 - 12:47

no tak. tylko sam JB nie oznacza ze ktos piraci :( moze juz lepiej wykrywanie instalusa... , chociaz to tez nie jest wyznacznikiem... napisalem do apple, ale jedyne co dostalem to: I'm responding to your question about protecting your applications from unauthorized users. The iOS SDK does not provide any means for applications to detect that a device has been modified in unsupported ways. A device in that state can have portions of the operating system replaced by code not provided by Apple, including the libraries your app would be relying on to perform your checks in the first place. Also, DTS does not provide support for designing DRM/copy protection schemes. ( i tu kaza wypelnic bug reporta co tez uczynilem :) ) najgorsze jest to ze nawet duze firmy nie maja zadnych zabezpieczen, wiec nam 'maluczkim' tez bedzie ciezko :( chyba jedynym najrozsadniejszym rozwiazaniem jest sprawdzanie wielkosci pliku i daty modyfikacji, chociaz straszie upierdliwe z punktu widzenia developerki. innych rozwiazan za bardzo nie znalazlem :( Ja sie obecnie zastanawiam nad przejsciem na system inAppPurchase bo to mozna latwo sprawdzic, tyle ze to dla odmiany troche upierdliwe dla legalnych userow.

#8 Lestek

Lestek
  • 880 posts

Posted 28 January 2011 - 13:05

Też już nad tym myślałem. Za darmo playera z intrem a jeśli ktoś chce zagrać w grę to ją zamawia. Masakra jakaś... Ale co tam. Może spróbujmy własnymi siłami coś wymyślić.

#9 Lestek

Lestek
  • 880 posts

Posted 28 January 2011 - 17:04

Moi drodzy. Zróbmy jakąś kampanię społeczną. Nie może być tak że się nas okrada.
W takcie przygotowania jest banner reklamowy przeciw piractwu. Będzie wersja dla iPhone, Retiny i iPada dostępna dla każdego. Będziecie mogli to wrzucać np. jako Default.png Może rozniesie się to na cały Świat (o czym marzę). Tylko pomóżcie wymyśleć jakieś fajne hasło. Na razie mam "Piracy is bad"... Coś nośnego...
Poniżej macie pierwszy szkic.
Dołączona grafika

#10 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 28 January 2011 - 22:25

fajny rysunek :) sam zrobiles ? tylko obawiam sie ze taka kampania niewiele da :( kto jest uczciwy, bedzie a kto nie to go obrazek nie zniecheci :) a jezeli juz jakies haslo to moze 'don't be a pirate'

#11 Lestek

Lestek
  • 880 posts

Posted 28 January 2011 - 23:05

Pracuję w duecie z grafikiem. Rzuciliśmy wszelkie inne sprawy i teraz skupiamy się tylko na iOS. Będzie kilka miłych dla oczu produkcji... :) To jest na razie szkic, ostateczna wersja będzie jutro. Myślałem nad czymś w stylu "Anti Piracy Social Campaign". Nikomu nic się nie zarzuci a efekt będzie taki, że jak ktoś pobierze poza App Store i uruchomi, to pomyśli że program zabezpieczony czy coś ;)

#12 aLP

aLP
  • 89 posts
  • Skąd52.229797,21.011781

Posted 29 January 2011 - 10:48

a może "Pirates stinks... Then sinks" :shock:

#13 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 29 January 2011 - 11:07

[ciach...] a efekt będzie taki, że jak ktoś pobierze poza App Store i uruchomi, to pomyśli że program zabezpieczony czy coś ;)


no wlasnie, wracajac do glownego pytania ;) jak WYKRYC ze zostalo pobrane poza AppStore ? samo sprawdzenie czy zrobiony jest JB nie wystarczy. (sam mam zrobiony ;) - glownie dla SBSettings )

wiec w tym wykrywaniu jest problem. mozna ew. wykrywac czy jest zainstalowany instalous i wtedy wyswietlac ten banner. ale dalej samo posiadanie jeszcze nie oznacza spiracenia aplikacji, chociaz juz jest jakims wyznacznikiem ze do takiej osoby mozna skierowac ta kampanie. to teraz jak wykryc czy jest zainstalowany instaleus ?

p.s. to do tego tez by sie przydala jakas stronka :)

#14 Lestek

Lestek
  • 880 posts

Posted 29 January 2011 - 11:53

Dobrze prawisz wezuwiusz. Wszak jeśli ktoś ma instaleus'a to można go zachęcać by używał go tylko do legalnych celów ;) Co do stronki. Jeśli uda mi się "pomysłem" kogokolwiek zarazić - choćby tu, to bez problemu można uruchomić stronę kampanii. Mnie piractwo dotyka bardzo. 28% graczy używa legalnej kopii...

#15 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 29 January 2011 - 12:03

w sumie sprawdzenie czy zainstalowano Installousa jest banalnie proste :) zrobilem pare testow. Tylko jezeli ktos bez JB moze sprawdzic czy sie nie wywala :)
NSFileManager *manager = [NSFileManager defaultManager];
BOOL isInstalled = [manager isReadableFileAtPath:@"/var/stash/Applications/Installous.app"];
	
if (isInstalled) {
	NSLog(@"Installous is INSTALLED on device");
} else {
	NSLog(@"Installous is not present");
}

mozna by ew. enumerowac katalog /var/stash/Applications/ czy nie ma jakis innych podejrzanych appow, ale to moze juz za duzo. chyba to jest obecnie najpopularniejsza metoda instalowania aplikacji.

i w momencie kiedy jest zainstalowany wyswietlac dodatkowo grafike z piracikiem. zwykli userzy nie zauwaza roznicy a Ci ktorzy maja instalousa zobacza obrazek. nawet jezeli taki delikwent sciagnal aplikacje z appstora a ma instalousa to nie zaszkodzi mu pokazac :) aplikacja dalej bedzie dzialac normalnie a tylko swego rodzaju 'nag screen' sie pojawi.
myslalem tez zeby podmienic 'default.png' w instalousie :) hyhy, ale nie wiem czy sie jakis oburzony amerykanin nie znajdzie i poda do sadu. oni maja pier...ca :)

---------- Wpis dodano o 11:03 ---------- Poprzedni wpis dodano o 11:01 ----------

Mnie piractwo dotyka bardzo. 28% graczy używa legalnej kopii...


a jak to sprawdzasz ?
mnie jak widzisz zaraziles ;) w koncu malym nakladem sil cos mozna zrobic. zwalczyc sie nie zwalczy, ale chociaz jakies ruchy mozna zrobic.

#16 Lestek

Lestek
  • 880 posts

Posted 29 January 2011 - 12:07

Dobrze prawisz wezuwiusz. Wszak jeśli ktoś ma instaleus'a to można go zachęcać by używał go tylko do legalnych celów ;) Co do stronki. Jeśli uda mi się "pomysłem" kogokolwiek zarazić - choćby tu, to bez problemu można uruchomić stronę kampanii. Mnie piractwo dotyka bardzo. Tylko 13% graczy używa legalnej kopii...

#17 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 29 January 2011 - 12:17

Mnie piractwo dotyka bardzo. Tylko 13% graczy używa legalnej kopii...


kurcze, ale maleje :P dopiero co bylo 28% :D

#18 dliwski

dliwski


  • 15306 posts
  • SkądWarszawa

Posted 29 January 2011 - 12:20

wezuwiusz, nie /var/stash/Applications, a /Applications (używaj linków symbolicznych, wtedy będziesz miał pewność, że u wszystkich zadziała - /var/stash/Applications właściwie nie istnieje). Poza tym, wystarczy zmiana nazwy tego katalogu (Installous.app) i pirat jest czysty. Lepszym rozwiązaniem (aczkolwiek nie wiem czy możliwym) jest sprawdzenie daty modyfikacji pliku installd w /usr/libexec. Jeśli data modyfikacji uległa zmianie lub jest niezgodna z podaną przez Was (o ile możecie dodać do kodu porównanie daty A z datą B), wtedy program wyświetli komunikat o piractwie. Ta metoda jest pewniejsza, bo pirat nie może zmienić nazwy tego pliku, a tym bardziej daty jego modyfikacji. Pytanie tylko czy aplikacja uruchomiona ze środowiska użytkownika mobile może zajrzeć do katalogów oznaczonych prawami root:wheel. W grę wchodzi jeszcze sprawdzenie rozmiaru pliku installd, chociaż nie wiem, czy rozmiar oryginalnego różni się od tego przerobionego. Zakładam, że tak.

#19 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 29 January 2011 - 12:53

@Davvido tak, samo /Aplications tez dziala. thx. myslalem ze trzeba sie odwolac do katalogu glownego i ze aplikacje z cydii sa instalowane gdzie indziej niz z appstore. tak na marginesie to albo istnieje albo nie, nie mozna byc w polowie w ciazy ;)
tak, oczywiscie ze wystarczy zmiana nazwy instalous.app ale to juz wymaga wiecej zachodu i znajomosci. mysle ze Ci magicy od JB i crackow i tak sa od nas wszystkich razem wzietych lepsi :( a najprostsze metody sa najskuteczniejsze. pamietaj ze oni moga tez zmienic dzialanie ze bedzie nadpisywac date utworzenia.

jezeli jest JB, a zeby byl Instaleous musi byc JB, to aplikacja moze zajrzec do roota. jezeli nie moze tam zajrzec, to znaczy ze nie ma JB wiec dalsze sprawdzanie nie ma sensu bo aplikacja jest legalna.

oczywiscie wszelkie metody mile widziane, jako ze glowny temat byl o tym jak mozna sprawdzic. sprawdzanie daty czy wielkosci pliku jest jedna z nich. ale jak wspomnialem troche upierd...wa z punktu widzenia developerki. pozatym musialoby to by byc gdzies zakodowane w aplikacji a to tez moga przeskanowac i cale sprawdzanie idzie w p...zdu :) a jak bedzie to malo upierdliwe i nie nie bezie blokowalo funkcjonalnosci moze warto sprobowac. a implementacja jest banalnie prosta.

wiec jezeli masz jeszcze jakies pomysly, to chetnie o nich przeczytam.

---------- Wpis dodano o 11:49 ---------- Poprzedni wpis dodano o 11:46 ----------

p.s. nie bardzo wiem co robi installd w /usr/libexec wiec nie wypowiem sie czy byloby to lepsze. nie jest to jakis plik systemowy ew. JB-kowy ? i zmiana jego daty nie ma nic wspolnego z nasza aplikacja ??

---------- Wpis dodano o 11:53 ---------- Poprzedni wpis dodano o 11:49 ----------

p.s.2 installd ma taka sama date utworzenia jak i modyfikacji mimo instalacji installousa jakies 2h temu :) wiec to chyba slepa uliczka.

#20 dliwski

dliwski


  • 15306 posts
  • SkądWarszawa

Posted 29 January 2011 - 12:58

Modyfikacja tego pliku (installd) jest wymagana do instalacji piratów, więc każdy pirat ma ten plik podmieniony - bez wyjątku. /Applications to katalog aplikacji systemowych (nie tych z App Store), to Cydia przenosi je do /var/stash, ale nadaje też losową końcówkę do nazwy, dlatego bezpieczniej jest odwołać się do /Applications (linku symbolicznego, niezmiennego). Aplikacje z App Store są w /User/Applications ~ /var/mobile/Applications. Natomiast /var/stash/Applications czasem może zadziałać, bo PwnageTool nie dodaje losowej końcówki do nazwy - stąd stwierdzenie, że "właściwie nie istnieje", bo to rzadkość w tej chwili). Pokręciłem. :) Po prostu używaj /Applications. Niemniej myślę, że warto teraz wziąć pod uwagę installd.

---------- Wpis dodano o 12:58 ---------- Poprzedni wpis dodano o 12:57 ----------

Sprawdzałeś tą datę w iOS 4.2.1?

#21 Lestek

Lestek
  • 880 posts

Posted 29 January 2011 - 13:01

kurcze, ale maleje :P dopiero co bylo 28% :D


Tak, dodałem dwa razy ten sam post ale w pierwszym policzyłem tylko pierwszy dzień od wydania a w drugim uwzględniłem raport z 12:00.

Na dzień dzisiejszy jest to 13%.

#22 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 29 January 2011 - 13:19

w 4.0 czyli rozumiem ze instalujac instaleusa podmieniany jest (czy edytowany) ten plik intalld. ale JAKA date on ma oryginalnie ? podejrzewam ze date instalacji iOS-a a nie date instalacji aplikacji. a jako ze kazdy w innym czasie moze zainstalowac iOSa to i data tego pliku bedzie inna. wiec sprawdzanie daty modywikacji nie ma sensu. chyba ze data modyfikacji vs data utworzenia. zaraz sprawdze czy sie roznia(cos musze spiracic w imie nauki ;) )

#23 dliwski

dliwski


  • 15306 posts
  • SkądWarszawa

Posted 29 January 2011 - 13:26

Wynik z iOS 4.2.1:
-rwxr-xr-x  1 Davvido  staff  497040 22 paź 06:18 /Volumes/Jasper8C148.N90OS/usr/libexec/installd


---------- Wpis dodano o 13:26 ---------- Poprzedni wpis dodano o 13:25 ----------

Nie mam na dysku iOS 4.0, więc nie sprawdzę jaką tam ma datę oryginalnie.

#24 wezuwiusz

wezuwiusz
  • 783 posts
  • SkądDublin, Katowice

Posted 29 January 2011 - 13:41

data bez zmian. zarowno installd jak i installd.backup maja date z czerwca (tak gdzies instalowalem iOSa) wiec instaleus nie zmienia tej daty. wiec chyba sprawdzanie samego katalogu aplikacji jest najprostsze. @Lestek i jak tam prace nad obrazkiem ? :)

#25 dliwski

dliwski


  • 15306 posts
  • SkądWarszawa

Posted 29 January 2011 - 13:45

To niemożliwe, bo przecież oni modyfikują installd.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users