Hello Coders, id like to make my app running as trial soft. any ideas how i can do this ? how do you do this ? i think checking the systemtime is not a good idea. thanks
Howdy EasyCode Basically there are two solutions to your problem: 1) Code the time-trialness yourself 2) Buy aspack and apply it to your program. IMO protecting requires a heavy background on de-protecting. That in case you want to make some decent protection :). So if you don't have the time or the experience to protect your own up, i'd suggest taking number two. With number two your app will also be cracked. But it'll take just more time :). Those are my two cents. Bye! Latigo
Anything someone programs, someone else can decompile and reverse engineer. Period. All you can hope for is to make it morw painful to reverse then your app is worth. And even in that case, some clever 12 year old may take it as a pure challange and reverse it anyway. Serial number checks are notiriously simple to break. So are timed versions; all one has to do is figure out how you saved the time and adjust that to run your trialware forever. If you want to be fairly safe, only release a crippled version, say something that doesn't save the work, or doesn't print. Something that allows a client to test drive all your functions, fall in love with your app, but ultimately doesn't do anything usefull. Then you ship the full version only to registered users. This way, a serial number scheme could work, as the serial number could be a long key to decript the full .exe file. Just make sure you email the serial number, least someone reverse the S/N generator itself. And even if you do this, nothing will stop the first registered paying user from copying the full files and posting them somewhere.
2)latigo: Buy aspack and apply it to your program.What? Do you think us Reverse Engineers do not have access to unpackers? Beleive me any type of packing you put on a file can be defeated by a good Reverse Engineer. Personaly as a Reverse Engineer the only thing I can see as a sure way that your program can not be cracked is to just create 2 versions, one the full and one the trial, in the trial make sure to pull out all the code conserning parts of the program you dont want to work, because if you only say dissable the function, i.e. a menu item but the code is there, it turns into a pretty easy Reversme and your program is gone. You can have them send you the cash and you can send them the program, but there's no way to keep them from spreading it around. What are some alternatives?? Encrytption, heavy encryption, so heavy it makes the reverse engineer go crazy trying to follow it, think of a very imagnitive protection, then again it helps to be a reverse engineer in order to do this.... but if you dont have the time to learn or want to learn stick w/ what i first told you, but im telling you if your prog sucks no one will be willing to pay money for it... -brad
Anyone can get an unpacker for free :) www.programmerstools.com has unpackers for aspack, pecompact, and upx So packing won't help you at all, like Rage said, go with encryption.
Hi, You might want to check out FRAVIA'S "HOW TO PROTECT BETTER" at http://www.searchlores.org/protec/protec.htm for probably the best source of info from a reverser's point of view, as well as links to shareware protection sites. And yeah, everything said about how most schemes can be cracked is true. Crippleware with missing code is probably the best bet if you want to do all the coding yourself. Regards, Kayaker
Hello Coders, thanks a lot for the answers :-) as i see,this is not so easy as i think first. at this time i dont know what i should make. possible i decrypt only the database for the submit engines or insert no protection. also i will read fravias page,thx for the link. happy coding :-)
Hello Rage9 my dear comrade! It seems that your ugly, fat and unjustified ego don't let you read properly the posts in this board. Re read and check the last part of my original post: 'With number two your app will also be cracked. But it'll take just more time' And for your information my dear lame ass, reverse engineering means LOTS more than reversing a jump or patching shareware. Check the last flamewar between the HCU*nix and +Tseph's board to get some extra info. Byeeeee Latigo
If you have two versions, to prevent someone from distributing the full version, you can create an app that you send to the user that gets the user's HDD serial and uses that to create a key. Of course, the user will get paranoid and annoyed, if you let him know what you are doing. But that can be defeated too.
Hel, has the right idea: Two versions of the program. One version with crucial code missing (save feature). Second version (registered version), encoded with much personal information about the registerer. They could distribute the full version, but they'd have pointed a finger at themselves as a criminal. You could even post a list on your website of the people who have distributed your program illegally.
Hmm, one thing that would stop at least those 12-year-olds W32DASM Crackers to crack your software is a CRC Routine where you check your file (No Matter whether the EXE itself or some outer DLL) if it is patched in some way. Then you can use the way with some serial generation based on something inside the system and you prevent the small crackers from just setting
Ohh, and don't remember: Even though you include routines which you yourself aren't able to follow anymore you somehow annoy the cracker and this results in * several hundred sheets of paper for notes * a big stack of Deadlisting * thousands of cigaretts * about 50 instant pizza * .. * the cracked version of your proggy!!! Sad to know but there will always be this fight (or is it a game?) between the programmers and the crackers and noone will really win.
test eax,eax --> test eax,eax je GoodGuy --> jmp GoodGuy jmp BadGuy --> NOP
you can create an app that you send to the user that gets the user's HDD serial and uses that to create a key
Second version (registered version), encoded with much personal information about the registerer.is this a good ideia? what if the user buy a new comp? he would need to re-send is personal info again to get a new key? when was the last time you bought a prog because the trial time ended? i buy software if has something i want or need(and is reasonably good).. (it happened once or twice :)) make it good and cheap :D
WoW, thanks a lot for this great answers !!! i like the idea to get something from the user to make a key :-) i also want to use free updates for registered users. when the user changes the info i use ,i can get the new info with every update and set the new key. i can use a warning message if the user miss a update. im shure behind this idea is much more,thanks a lot ! happy coding :-)
rage9, Latigo: keep it friendly guys :) in the future you'll get Private Messaging. Should you have any issues then, you can slug it out that way. Let's all respect each other.
Hey, Stefan Krause, a CRC check can easily be patched and then the rest of the program can be altered as much as necessary. CRC's are useless. Bottom line is, anything can be cracked with enough skill.
The only algorithm that ever gave me any problem was a section of code that unrolled as it executed. There were two interupts that it used as well: one was on a timer, and the other was triggered to decrypt the algo. I spent a week on it then gave up. :P This was ten years ago on an Atari ST. It was a fun way to learn assembly at the time - there was little documentation. I'm all for taking apart software to learn, but for the purpose of distribution is very wrong. I think that the only reason the distribution of cracked code began, was to prove that one had cracked it - not for the use of the software - that came about later. The reason perseverance is the answer to every question is that all things are equal as time approaches infinity. So, the only question one needs to ask: How long are we going to be around? I answer: perseverance. :)
Hey, Stefan Krause, a CRC check can easily be patched and then the rest of the program can be altered as much as necessary. CRC's are useless.Hmm, no! I have to disagree with you there. There are some nice Programs just for this purpose (CrackMes) having a CRC and if you dared to patch the file the CRC is messed up, the proggy notices and deletes itself and the whole folder from the HDisk. Sure, for crackers being somehow advanced they notice what is going on and will try to remove it but the audience I named will have fu**ing probs with this. It will be harder for them if you just do it with ASM and no API (dunno how to do it exactly) and you can place your routine all over the code. Stefan
Hiro, you are right. It's just that i had a rough day yesterday :) I apologize. Latigo
:cool: This message was edited by disease_2000, on 5/30/2001 11:18:39 PM
Rage9 is a friendly guy. as being a programmers, we tend to lack sleep due to our urge of learning the art of assembly. replying to this forum is everyone's urge indeed. not having enough sleep reduce our brain activity (it's not our fault) and thus, we all have a bad day once. misread others post is common to me (i misread people post all the time!) and the different between he and I is that he's more talkative, more into replying (which is good) and me on the other, just helping out newbie, therefore, i'm not an expert who fit into every group trying to help others. Rage9 and Latigo, let's shake hand and learn from our mistake.
Hello, im happy to read that others have the same problems *bg* i work 8hours a day in my buisness and after eating,cleaning the room and feeding the cats i try to learn a bit asm. most i spend to much time and sleep not enough. this makes me often agressiv and i wonder some time later what i had written to others. youre smart people and understand this,im very happy ;) happy coding