I am sure all you cracks have implemented copy protection in your apps. But for the newcomers I have packaged together my own crack-detection code and for the first time I managed to get in into a shape that is easy and automatic.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
This would seem an attractive option for most developers, who just don't have the time to research and develop their own anti-crack mechanism. And your terms seem more than fair.
You might want to mention what kind of obfuscation steps you take, and if you've made it easy to hide stuff in memory. (i.e. hopefully it's easy to customize so that crackers won't easily come up with some automated solution.)
Yes: I am doing several checks inline and because it is an inline function you can plaster your code with the the check causing lots of work for anybody trying to do that. So with minimal effort you can cause maximal protection.
I also have two more things up my sleeve but I did not dare to put those in yet, because they have to rely on Apple: checking the iTunes purchase data and the IPA signature.
__________________
regards
Oliver Drobnik Cocoanetics - Our DNA is programmed in Objective-C.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
With all due respect, adequate piracy checking code is widely (read: freely) available out on the interwebs. Here's a link to Jeff LaMarche's blog on the topic, where no fewer than three techniques are outlined: iPhone Development: Anti-Piracy Snippet.
There may come a day when these methods are ineffective and a more aggressive technique is required. But for the time being I believe them to be more than adequate for detecting a pirated instance.
Instead, take the same basic logic and make it a C function and make sure you compile with debug symbols off. Better yet, make it a static inline function and call it from several places.
Can someone please provide a basic guide (few steps) on how to do this?
I noticed Oliver also talks about inline functions.
This would seem an attractive option for most developers, who just don't have the time to research and develop their own anti-crack mechanism. And your terms seem more than fair.
You might want to mention what kind of obfuscation steps you take, and if you've made it easy to hide stuff in memory. (i.e. hopefully it's easy to customize so that crackers won't easily come up with some automated solution.)
Well you have to make sure that the initial cracker does not know that you use copy protection for long enough for him to publish it it. I very much like to make my apps a slient Lite version and then after the content is expired just pop up a dialog "You have played through all content in this Lite version. Purchase the full version now to continue your fun."
The problem with apps like Full Screen Browser is that they go and annouce outright that a crack was detected. STUPID. Silent Lite Versions are a great advertising vehicle!
__________________
regards
Oliver Drobnik Cocoanetics - Our DNA is programmed in Objective-C.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
Can someone please provide a basic guide (few steps) on how to do this?
I noticed Oliver also talks about inline functions.
Jeff,
basically you take all the checks you can find online (Google: iphone crack detection) and put them into your code. Problem is that the size and number of entries in info.plist changes with every SDK version and build settings.
Alternatively you could donate a few bucks to my wedding fund and just take what I put together. It's easy enough to understand.
__________________
regards
Oliver Drobnik Cocoanetics - Our DNA is programmed in Objective-C.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
With all due respect, adequate piracy checking code is widely (read: freely) available out on the interwebs. Here's a link to Jeff LaMarche's blog on the topic, where no fewer than three techniques are outlined: iPhone Development: Anti-Piracy Snippet.
There may come a day when these methods are ineffective and a more aggressive technique is required. But for the time being I believe them to be more than adequate for detecting a pirated instance.
Thanks for your insight, Mr. "Pro Game Developer".
For the rest of us, AntiCrack takes out the headaches.
__________________
regards
Oliver Drobnik Cocoanetics - Our DNA is programmed in Objective-C.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
Thanks for your insight, Mr. "Pro Game Developer".
This "Pro Game Developer" hands out tons of free information here, unlike others who use the site to direct potential paying customers to what they have to offer. Even if there aren't forum rules against this, it's ethically wrong. You're using the popularity and traffic of this site to drive up sales at your site.
Quote:
Originally Posted by Oliver Drobnik
For the rest of us, AntiCrack takes out the headaches.
Sure, if you're willing to pay your asking price for information that's already freely available.
This site was founded as a place for developers to exchange ideas, and you're here to try to monetize that. To add insult to injury, you're not even a contributing member to THIS site, so you're a freeloader too.
I'm so sorry to have offended you. I am going through the newbie's questions on this site as often as I can and providing answers where nobody else does. I am helping where I can.
I can definitely say that to this forum I have given WAY more than taken. So "freeloader" is not a term that I think can be attached to me. But you are entitled to your opinonion.
If by "freeloader" you mean that I don't pay for this forum as you do, then all of the non-paying-members are freeloaders. I don't consider this an insult, as you seemingly intent it to be.
Let's leave it at that. Let's be friends and help each other. Unfortunately I don't make as much money as you seem to make off apps. Thus I stand humbled before you.
__________________
regards
Oliver Drobnik Cocoanetics - Our DNA is programmed in Objective-C.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
I am sure all you cracks have implemented copy protection in your apps. But for the newcomers I have packaged together my own crack-detection code and for the first time I managed to get in into a shape that is easy and automatic.
If you have copy protection knowledge to trade please contact me directly.
I have about 2 weeks worth of Mac programming, let alone attempting Obj-C, and even this newbie knows that you can size-check the Info.plist for tampering.
Good luck though, and I would actually love it if you DID release your's under the GNU/GPL.
Your perogative though.
If by "freeloader" you mean that I don't pay for this forum as you do, then all of the non-paying-members are freeloaders. I don't consider this an insult, as you seemingly intent it to be.
No, me saying you're a freeloader has nothing to do with other non-paying members, so don't imply that I'm making that association.
Most of the non-paying-members are just that -- members who don't financially support this site. But they're just like most other members here. They come to ask questions, and perhaps even answer one every once in a while.
The freeloaders are those who use this site and its popularity to link to their own external sites for some financial gain, while neglecting to support this site themselves.
At the very least, you should consider the $25/year subscription fee for supporting this site a bargain, considering the potential traffic it generates to your own site.
With all due respect, adequate piracy checking code is widely (read: freely) available out on the interwebs. Here's a link to Jeff LaMarche's blog on the topic, where no fewer than three techniques are outlined: iPhone Development: Anti-Piracy Snippet.
There may come a day when these methods are ineffective and a more aggressive technique is required. But for the time being I believe them to be more than adequate for detecting a pirated instance.
Thanks for pointing that out, I guess I'll try the checksum method.
Writing code is not only about writing instructions to a machine / computer, but also about writing something that could be read, understood, and maintained by others. That's why, I like Cocoa.
Thanks for pointing that out, I guess I'll try the checksum method.
Well good luck with that. I checked: the checksum is different when you build your app and when it gets encrypted by Apple. So you don't know the checksum until you download your app from the store and inspect it on the iPhone itself.
__________________
regards
Oliver Drobnik Cocoanetics - Our DNA is programmed in Objective-C.
Cocoanetics Parts Store – easy to use yet professionally looking components that you can use to spruce up your own apps. Augmented Reality, Calendar Control, Pin Lock or Purchase Button are only some examples. You get full source code, no static library crap, and lifetime support. Check it out today!
Well good luck with that. I checked: the checksum is different when you build your app and when it gets encrypted by Apple. So you don't know the checksum until you download your app from the store and inspect it on the iPhone itself.
Writing code is not only about writing instructions to a machine / computer, but also about writing something that could be read, understood, and maintained by others. That's why, I like Cocoa.
I received this product today, It is marketed as an easy way for newcomers to add protection to their apps, when I receive instruction on how to run it, Ill give it my review, so it will give an idea of its viability for potential users.
I use AntiCrack as well and it is very easy to implement and provides a pretty good level of protection. My app becomes a silent lite version which has a limited feature set and prompts the user to upgrade to the paid version after 7 days. I highly recommend AntiCrack. If your on the fence, pull the trigger!
Hey a while ago i was developing for cydia a long time ( FiveIRows). I`ve an maybe awesome idea for meking it harder for users(of cracked apps) and crackers. We all focus on how to protect our app. But heh its absoletely simple to overwrite the applicatioDidFinishLoading method of crackolous and installous. I could simply set it to nil. Then when dylib is installed (problem is this, ill talk to it later) those two want open. Now to the problem of must having the dylib installed. It would be the easiest thing if Saurik could implemnt it in MobileSafety.dylib which is installed on every jailbroken device. You can delete but then people would have a lot of problems. And Saurik could also make an check that if its deleted cydia is opened and you have to download it to use ipod again.
Hey a while ago i was developing for cydia a long time ( FiveIRows). I`ve an maybe awesome idea for meking it harder for users(of cracked apps) and crackers. We all focus on how to protect our app. But heh its absoletely simple to overwrite the applicatioDidFinishLoading method of crackolous and installous. I could simply set it to nil. Then when dylib is installed (problem is this, ill talk to it later) those two want open. Now to the problem of must having the dylib installed. It would be the easiest thing if Saurik could implemnt it in MobileSafety.dylib which is installed on every jailbroken device. You can delete but then people would have a lot of problems. And Saurik could also make an check that if its deleted cydia is opened and you have to download it to use ipod again.
What ya think about ?
and then they change the bundleIdentifier or the name of the app/executable and you need to update the MS plugin again and again and again... and you can't force anyone to install packages they don't want. I doubt Saurik would go along with that