BASIC

Author Topic: Piracy  (Read 19638 times)

Offline hardyx

  • Community Developer
  • Dr. Type
  • ******
  • Posts: 491
    • View Profile
Re: Piracy
« Reply #60 on: 2011-Jan-05 »
I'm not in iOS development, but I think you can check the binary or some data file with MD5 algorithm for detect if was modified. Then *the most important* don't say "you are a bad guy" (you give clues here), continue and disable little things in the app or game, or generate a div by 0 later in the code, or fail with a message ("cracked version, sorry") when you are in the last level or you want to save the records. This way you can't avoid a cracked version, but the differences are not obvious to the cracker. The crackers sometimes not complete the full game. But the cracker "clients", got frustrated when they discover that this cracked thing not works. If someone likes the game/app very much, he will go to buy legally.

« Last Edit: 2011-Jan-05 by hardyx »

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10697
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Piracy
« Reply #61 on: 2011-Jan-05 »
First - I don't look for cracked versions. That keeps me from worrying.

You can't stop crackers. You can stop noobs from copying, but not crackers.
If the info.plist is really intact, you "might" want to calculate a CRC32 or whatever code of your binary and store that in a file (level0.dat) and compare that on runtime. I have no idea if you officially can read the binary, though.

Offline Leginus

  • Dr. Type
  • ****
  • Posts: 288
    • View Profile
Re: Piracy
« Reply #62 on: 2011-Jan-05 »
A sure fire way to beat the hackers................make it free  :enc:

Offline BdR

  • Dr. Type
  • ****
  • Posts: 303
    • View Profile
    • BdR Games
Re: Piracy
« Reply #63 on: 2011-Jan-05 »
I'm not in iOS development, but I think you can check the binary or some data file with MD5 algorithm for detect if was modified. Then *the most important* don't say "you are a bad guy" (you give clues here), continue and disable little things in the app or game, or generate a div by 0 later in the code, or fail with a message ("cracked version, sorry") when you are in the last level or you want to save the records. This way you can't avoid a cracked version, but the differences are not obvious to the cracker. The crackers sometimes not complete the full game. But the cracker "clients", got frustrated when they discover that this cracked thing not works. If someone likes the game/app very much, he will go to buy legally.
I was thinking about it this way too, you could start the nag screen only after the app was started and closed 10 times (with a counter in a settings file or something). That way the hacker will probably not see the nag screen when testing the cracked app and upload it.

First - I don't look for cracked versions. That keeps me from worrying.
I guess that is probably the best way to deal with it (although fyi I was looking if there maybe was a game review out...)

Offline BdR

  • Dr. Type
  • ****
  • Posts: 303
    • View Profile
    • BdR Games
Re: Piracy
« Reply #64 on: 2011-Jan-05 »
oh and offtopic (kind of)

A tip, when you display copyrights and credits, always obscure the text strings in code (write a simpel custom function). Even a simple Caesar cipher/ROT13 (where "ABC" becomes "BCD" etc.) is enough to at the very least prevent the script kiddies from changing the credits screen from "programmed by John Smith" to something like "cracked by rickroll96".

MrTAToad

  • Guest
Re: Piracy
« Reply #65 on: 2011-Jan-05 »
Build in checks for the currently known differences between jailbroken and non-jailbroken phones. Some of the currently known checks include looking for modification to the app's Info.plist, writing a checksum into the app and validating it a runtime, and checking to see if the Applications directory is writable.

Offline ampos

  • Prof. Inline
  • *****
  • Posts: 1594
    • View Profile
    • AMpostata Website
Re: Piracy
« Reply #66 on: 2011-Jan-05 »
The function isphonecracked() did not work, or I have been unable to replicate a pirated situation on my iphones. My app "snowland" (or was Magic Coin Box?) has it implemented, but as pirates do not like any of them  :'( the "real" situation has not been able to be checked.

AFAIK, you can not access anything outside the /my documents and /media dirs on iphone. Not sure, but on a JB iphone you can save in /media dir, but it doesnt mean that the app is cracked, just that the iphone was Jailbroken.
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

Offline BdR

  • Dr. Type
  • ****
  • Posts: 303
    • View Profile
    • BdR Games
Re: Piracy
« Reply #67 on: 2011-Jan-23 »
Okay, I use the iPhoneIsCracked and on my ipod it gives false as expected, the function doesn't crash or anything. As an extra check I can test if the appfolder is writable using this function, see code example below. Not sure if this is the best way to test it...
Code: GLBasic [Select]
// -------------------------------------
// default function to check app integrity
// -------------------------------------
IMPORT "C" int iPhoneIsCracked() // test nr 1

// -------------------------------------
// check if app folder is writable
// this would indicate a jailbroken iphone/ipod
// -------------------------------------
FUNCTION CheckAllowWriteAppFolder: // test nr 2

  LOCAL bResult%
  LOCAL bTmp%
  LOCAL Filename$

  Filename$ = "Media//appwritecheck.ini"
 
  // try to write new file in Media/ in appfolder
  bTmp = OPENFILE(1, Filename$, 0) // 0=write
  IF (bTmp = TRUE)
//    WRITESTR 1, "filecheck=1" // not needed
    bResult = TRUE
  ELSE
    bResult = FALSE
  ENDIF
  CLOSEFILE 1
 
  // remove file
  bTmp = DOESFILEEXIST(Filename$)
  IF (bTmp = TRUE)
    KILLFILE Filename$
  ENDIF

  // function result
  RETURN bResult

ENDFUNCTION

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10697
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: Piracy
« Reply #68 on: 2011-Jan-24 »
If the app folder is writable, it might be due to jailbreak, not crack. Right?

Offline ampos

  • Prof. Inline
  • *****
  • Posts: 1594
    • View Profile
    • AMpostata Website
Re: Piracy
« Reply #69 on: 2011-Jan-24 »
Yes, it is not a valid method. If the iPhone is Jailbroked (recently sentenced as legal in the US) the apps can write to the app folder. But it does not mean that the app itself has been pirated.
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

Offline Leginus

  • Dr. Type
  • ****
  • Posts: 288
    • View Profile
Re: Piracy
« Reply #70 on: 2011-Jan-24 »
Unfortunately no matter what you do, the crackers will get around it. That's the point of cracking  :(

Offline Moru

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1774
    • View Profile
    • Homepage
Re: Piracy
« Reply #71 on: 2011-Jan-24 »
The more intricate you do it, the more fun it is to crack it. It's like a really hard game, you win when you have cracked it. Instead of facebook/openfaint or whatever, you release it for free for credits/achivements. Whatever you do you will loose in the end. Use the piracy to promote your game instead. Find new ways of making money.

Offline ampos

  • Prof. Inline
  • *****
  • Posts: 1594
    • View Profile
    • AMpostata Website
Re: Piracy
« Reply #72 on: 2011-Jan-24 »
Unfortunately no matter what you do, the crackers will get around it. That's the point of cracking  :(

To pirate a iphone game is pretty easy, just a "program" on the iphone itself. Thats why there is so many pirated games out there. It is just copy&paste.

To crack them is another story. Nobody will try to crack your game unless it is the ultimate game! And if so, piraty will not be a problem.

Yes, a way to check if the app is pirated would be a nice feature.

Maybe you can check the changed files to a known valor. If the answer is 0 (you can not access it, so it is not JB) or the known value is correct (it is JB but not pirated)...
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

Offline ampos

  • Prof. Inline
  • *****
  • Posts: 1594
    • View Profile
    • AMpostata Website
Re: Piracy
« Reply #73 on: 2011-Jan-24 »
I have seen 2 types of pirated detections:

1.- A countdown of 20 secs at the start

2.- A note about the app being pirated, and a requester to the appstore.
check my web and/or my blog :D
http://diniplay.blogspot.com (devblog)
http://www.ampostata.org
http://ampostata.blogspot.com
I own PC-Win, MacBook 13", iPhone 3G/3GS/4G and iPAC-WinCE

Offline Leginus

  • Dr. Type
  • ****
  • Posts: 288
    • View Profile
Re: Piracy
« Reply #74 on: 2011-Jan-24 »
And how have you seen those eh  :whistle: