Tag-Archive for » algorithms «

Sunday, December 14th, 2008 | Author: Tim

Some definite interesting stuff over at the purebasic forums, I found it quiet funny slash hillarious since I’ve had a chance to talk to some of the TEAM RESURRECTiON members before. The primary link is someone named utopiamania who is claiming he the following
“antipiracy code inside the program is meant to be obfuscated and nearly uncrackable”
Some, well, I guess you could say, “memorable” quotes I find sort of funny are the following:

You just need to accept this fact: SND, Resurrection, ARTEAM, and others WILL unpack your software.

Another is well put by locomotion;

1) Uninstall Tool. ExeCryptor, full protection, and Sunbeam over at {RES} has nailed it EVERY build, EVERY Time.

2) Smart Diary Suite. Themidia, Full SDK protection, and quesago unpacked it and nailed it.

3) Any FlexM protected App. Black Riders, LineZero, or Crude shred these apps.

4) SND Request board. Almost all the tough apps usually end up there, and there is no shortage of talent and drive to crack them.

I’m telling you. If you think you can outsmart {RES} BRD, CRD, Lz0, SND, CORE, SSG, FFF - you are dreaming.

Your protection would probably stop quite alot of crackers. However, you simply cannot beat them ALL.

FOCUS on your APPLICATION and its QUALITY. A few timebombs here and there, and multipart serials (see my example) will get your average cracker and their releases will be “nuked” for a while.

However, if you actively try and create challenges and animosity to your app, you will go down in flames and the crackers will put you in your place.

I reverse engineer all the time, and so do many people on this board. Trust us when we tell you that cracking your app can and will be done. However, if you do it right, you can MINIMIZE the damage done.

EVERY ship in the world takes on some water!!! The best ships are DESIGNED to MINIMIZE the damage that it can do, and can HANDLE the challenges. The same is true with your business plan. Expect to be cracked, and ADAPT accordingly with minimal time and cost.

The oh so knowledgable utopiamania thus responded with;

Quote:
I’m telling you. If you think you can outsmart {RES} BRD, CRD, Lz0, SND, CORE, SSG, FFF - you are dreaming.
I can’t outsmart them, but these protectors I mentioned do it 99.999999999999% of the
time.

It’s important that people realise this and don’t give up. Very good protection is available nowadays.

Quote:
I reverse engineer all the time, and so do many people on this board
Shure you do, but none of you can reverse engineer an app protected by say code virtualizer. Smile

I guess it’s developers like this guy that the protector companies make all their money off of? Oh well, I guess it’d be sad if the protectors all lost their jobs…
There is even a big shout out to Sunbeam and LaFarge of {RES}

Sunbeam is probably the best EXECrytor reverser out there. Period. Lafarge is another dynamite reverser as well. Trust me. I know their work from other boards.

The Team SND request forum has about the toughest protected apps out there, and they, along with quite a few others, continually defeat these protections.

Anyone here with reversing experience will at least know of these guys, or the Teams they come from.

If you think you are going to beat the combined knowledge of {RES}, SND, AT4RE, CRD, BRD, Unpack.cn, ect, you are kidding yourself.

Focus on your PRODUCT and make it not SUCK. Then people will WANT to buy it. The perfect example here is PureBasic itself. Sure, there are pirated versions out there, but I and a ton of other people loved it so much we WANTED to buy a legit version. Fred has an amazing product, and as a result, people actually BUY it. His protection is very simple and doesnt get in the way a single bit for registered users. You have no idea how much I love him for that, as do most other people.

Take AVS Video tools and other Themidia protected apps. If I have Acronis Trueimage running before I start up AVS, Themedia REFUSES to let me run AVS because of a “monitor” tool. And I paid for Acronis. Screw AVS for that, and they lost me as a customer.

Bravo localmotion, atleast someone understands how the world works!

[sigh] - Sadly for now it ends on utopiamania sort of “claiming” victory with this final post;

That said, nothing posted here has convinced me to abandon either CodeVirtualizer or ExeCryptor as my tools of choice to protect it from criminals as soon as it hits the streets. Razz

I wonder how fast that program will be torn to shreds?

Monday, November 24th, 2008 | Author: Tim

Something that you always come across in writing algorithms for devices that you want to lock down is getting a grasp of the actual device it is intended to be on. Sometimes programmers want to lock a registration code not only to a name for registration, but also to a device. This can cut down on “sharing” of serial numbers etc. I was doing some research and looking for device specific information when I stumbled upon a few things. They are right out there in the open, but here they are just in case you have not seen them yet.

In Android.Provider.Settings.System we have some interesting values that could be of use, one specifically is “Android_ID”. From the documentation it is the following;

String ANDROID_ID The Android ID (a unique 64-bit value) as a hex string. “android_id”

Though while this is considered a “unique key”, please keep in mind that if a program has write access to the Settings, which is possible, this could be changed easily. Though it could be a safe assuming that it should not be changed, and upon normal program usage it wouldn’t be changed. Anyway, to retrieve this ID you just use the following snip-it of code;

import Android.Provider.Settings.System;
...
String Android_ID = System.getString(this.getContentResolver(), System.ANDROID_ID);

Also, note that in an emulator this will return “null”, though a real device will return an actual value. The nice thing about this tid-bit of code is that you are not required any special permissions to call it, since it’s essentially a passive call to get information. No write access is (obviously) required.