 |
AutoHotkey Community Let's help each other out
|
| View previous topic :: View next topic |
| How did you find that Game? |
| I like it |
|
42% |
[ 3 ] |
| I don't like it |
|
14% |
[ 1 ] |
| I didn't try it yet |
|
28% |
[ 2 ] |
| I'm n't going to try it |
|
14% |
[ 1 ] |
|
| Total Votes : 7 |
|
| Author |
Message |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Fri Apr 08, 2005 7:32 pm Post subject: |
|
|
Hi,
Thank you Laszlo for your reply and I 've sent to you a private message.
MYYM |
|
| Back to top |
|
 |
Titan
Joined: 11 Aug 2004 Posts: 5390 Location: /b/
|
Posted: Fri Apr 08, 2005 7:37 pm Post subject: |
|
|
Oh great my s/n changed!  _________________
 |
|
| Back to top |
|
 |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Fri Apr 08, 2005 8:39 pm Post subject: |
|
|
What I'm trying to do is to find a way to replace the current available solutions with a new one that might be acceptable for both developers and the users.
Let me try to explain what I mean by that.
1st, what are the available solutions? It’d be one of the following
- User have to buy the SW and to pay a lot of money most of the time. (Unfair for the user)
- User can get it for free or copy it (Unfair for the developer)
What about replacing the price with a Setup Fee!
If the developers know that their software only can be installed once using a unique registration number and that number 'd change every time the user 'd try to install it to a different machine or even say move it to a different position on the same machine.
If the developers know that for sure, I think they 'd accept a much less money for their SW. because they'd know that the user only has the permission to use it not to distribute it.
And, If the users 'd know that they don't have to pay much, maybe that'd make more people able to buy the SW (in fact they'd buy only the right to install and use it. and that's all they need).
Still one problem that might put some limitation on using that solution which is the need to upgrade the Operating System or the Hardware and then the Users 'd have to reinstall the Software and they'll need a new RN.
Well, maybe that'd be the only risk both developers and the users have to take!
MYYM |
|
| Back to top |
|
 |
corrupt
Joined: 29 Dec 2004 Posts: 2436
|
Posted: Sat Apr 09, 2005 2:32 am Post subject: |
|
|
Out of curiousity... if the point is to discuss and demonstrate this kind of protection using AHK code then why not release the code?
Nothing personal... but if I would have to let an unknown program from an unknown developer (unknown to me at least) generate data based on unique info on my PC then either hand the generated data back by Email or in a forum, then the software will never get installed here... especially for free?? software... |
|
| Back to top |
|
 |
Laszlo
Joined: 14 Feb 2005 Posts: 4078 Location: Pittsburgh
|
Posted: Sat Apr 09, 2005 2:58 am Post subject: |
|
|
| I understand your concerns, corrupt, why should you trust a stranger with some candies in his hand? But, if you develop a copy protection scheme, you'd probably want to test first if it is easy to break, w/o knowing the code, if it is cumbersome to use, if it raises concerns (like yours), etc. This is what we could do for MYYM. If we cannot break it w/o the code, the next step to see if we can break it knowing the code, but not knowing some secrets, like crypto keys. At that point the code should be revealed. |
|
| Back to top |
|
 |
corrupt
Joined: 29 Dec 2004 Posts: 2436
|
Posted: Sat Apr 09, 2005 3:05 am Post subject: |
|
|
| Laszlo wrote: | | This is what we could do for MYYM. If we cannot break it w/o the code, the next step to see if we can break it knowing the code, but not knowing some secrets, like crypto keys. | That does sound like a possible reason for posting it without the code but are we allowed to try and break it?  |
|
| Back to top |
|
 |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Sat Apr 09, 2005 5:22 am Post subject: |
|
|
| Quote: | | Out of curiousity... if the point is to discuss and demonstrate this kind of protection using AHK code then why not release the code? |
I understand your curiosity, if that was the point! But it’s not.
Let me try to explain
I have created this piece of software to generate SN and RN about 3 or 4 years ago using VB which was the programming language I used to write the interface for some databases applications I designed for some users using Microsoft Access Basic and SQL. (It was so much easier to do that with VB because it provides stronger mathematical functions than AHK)
Then now all I did is that I rewrite it using AHK. Maybe just to prove to myself that this handy scripting tool is not just for writing a script to do some tasks.
So, the point was to let some people know that AHK could be used in a different way.
I believe if anyone needs to write a similar code, they must try their own algorithms and if they would need help writing the code, Everyone here ‘d be glad to offer help including you.
I have seen you trying to help people many times with your valuable posts and codes
And it’s always as you said
| Quote: | | if I would have to let an unknown program from an unknown developer (unknown to me at least) generate data based on unique info on my PC then either hand the generated data back by Email or in a forum, then the software will never get installed here... especially for free?? software... |
I agree, if anyone can’t take the risk they shouldn’t try to install any unknown software!
But that shouldn’t be the rule only for my software or yours.
That may be applied to the AHK itself, which was unknown for everyone, before they choose to try it and to trust what the help says about the compiler for example.
BTW, my program does not perform any changes to the PC. It only 'd save the RN in a file under the name "your_rn" and it'd let the user know that and ask him not to delete it and the user can see the file in the same folder with the SW. and copying the program with that file to another PC won't help. The RN won't match the new SN and the copy of "your_rn" file on the new PC 'd be deleted and the registration number dialog box will appear with the new SN asking for the new RN.
Thanks
MYYM |
|
| Back to top |
|
 |
Laszlo
Joined: 14 Feb 2005 Posts: 4078 Location: Pittsburgh
|
Posted: Sat Apr 09, 2005 5:34 am Post subject: |
|
|
| Quote: | | That may be applied to the AHK itself, which was unknown for everyone, before they choose to try it and to trust what the help says about the compiler for example. | The difference is that the source code for AHK was available. |
|
| Back to top |
|
 |
corrupt
Joined: 29 Dec 2004 Posts: 2436
|
Posted: Sat Apr 09, 2005 6:24 am Post subject: |
|
|
Thanks for the explanation MYYM . It isn't the part about trying an exe from an unknown developer, (I do that a lot) it's the part about submitting encrypted information generated from unique data on my PC...
I do understand the reasons why similar methods are chosen in an attempt to minimize piracy with commercial software but I'm not convinced that it is that effective. As Laszlo mentioned, one major drawback to this method can be having to spend additional time/resources dedicated to support when/if unlock codes don't work on some systems, customer changed hardware, new PC (or are they just installing twice?), Windows re-install, time spent tracking registrations, etc, etc...
If you decide to release a version sometime that does not require registration I would be happy to try it out . |
|
| Back to top |
|
 |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Sat Apr 09, 2005 8:23 am Post subject: |
|
|
| Quote: | | The difference is that the source code for AHK was available |
1- Well, that ‘d be true if we assume that everyone using AHK could study the source before trying it. Which I doubt!
2- Putting the AHK or any other open source software aside, I wonder how many programs we all have used without having the chance to study its source or even have the chance to see it.
3- Even if we have the chance to study every source for all software we use, would we find the time and would we all be able to understand the source or to check every single line.
4- If anyone could do that with any source to that extended that they’d be sure that it’s 100% safe to use it. I believe if that was the case for anyone, maybe it’d be better, safer, and faster for them to write their own software!
Thanks
MYYM |
|
| Back to top |
|
 |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Sat Apr 09, 2005 8:36 am Post subject: |
|
|
| Quote: | | it's the part about submitting encrypted information generated from unique data on my PC... |
I understand that, but just once again let me be clear about that
that software has no access to any data on your PC and does n't change anything on it beside what I have mentioned before.
Thanks
MYYM
One thing maybe I didn't mentioned the 1st post about the Game
it has some sound effects while loading, playing, game over, new game and exit .. and you can turn the sound on or off anytime.
it's just to remember to turn on the speakers while trying it. |
|
| Back to top |
|
 |
Laszlo
Joined: 14 Feb 2005 Posts: 4078 Location: Pittsburgh
|
Posted: Sun Apr 10, 2005 2:33 am Post subject: |
|
|
Well, there are two problems with this copy protection scheme: it is volatile and trivial to get around. If MYYM posts the key parts of the code, we might be able to help improving it.
1. Volatility: Normal user actions will change the SN the program expects, and most of these actions cannot be reversed. The program stops working until a new RN is obtained, which will cause a flood of complaints. More specifically,
a. If the name of the program is changed, it stops working. Changing the name back to the original changes the SN. No matter what I tried, I could not get the program to generate the same SN again.
b. Moving the program into another directory changes the SN. Moving it back to the original location does not revert to the original SN.
c. Renaming the directory where the program resides changes the SN. Renaming it back to the original name does not restore the original SN. (Higher levels of the directory tree do not seem to have an effect. Moving the whole directory together with the program does not change the SN.)
It looks like the SN is generated from the extended attributes of the file and its directory. Some additional information from the system, like the OS version, could be mixed in. I did not try to run a disk defragmenter or simulate a read error from a disk block, causing the OS to move some of the program data to a new location, but I would not be surprised if these would change the SN, too.
2. Trivial to break. Burn the program on a CD, not finalizing it. Give it a known name and preferably store the program in the bottom of a 3 level deep directory tree. Run the program from the CD. In 3 very different XP machines the SN values were identical. (On a Win2K PC there were only two characters different.) Buy the RN and burn the file "your_rn" on the CD. (The format of the file is found from a hard disk installation.)
Having the CD with the RN, you can run the program from there. You can distribute the ISO image of the CD on the Web, so anyone can make an identical copy and run the game from his CD. Because the CD reader does not affect the SN, most likely CD emulators work, too, making a physical CD not necessary for playing the game.
I did not try to decipher the SN, although it shows too much regularity. For example, the CD version gave the SN F423F-LMNOPQJ3641077V on XP and F423F-LMNOPQM3641077Y on Win2K. The subsequence LMNOPQ is suspicious. Also, the last character was always V on XP and Y on Win2K.
When I changed the name of the program back and forth, the generated SN values were decreasing. One could analyze the differences, too. However, these patterns are easy too hide. Just apply a hash function or a cipher on the SN. |
|
| Back to top |
|
 |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Sun Apr 10, 2005 6:30 am Post subject: |
|
|
Ok, Let’s take these 1 by 1
| Quote: | | If the name of the program is changed, it stops working |
Right and required (Users have no right to change the EXE name of any SW…that has nothing to do with the SN/RN…)
| Quote: | | Changing the name back to the original changes the SN |
Wrong… just try it yourself (Again… it has nothing to do with the SN/RN)(tested)
| Quote: | | Moving the program into another directory changes the SN |
If you mean by “moving” >> copying or reinstall
Right and required
If you mean by “moving” >> create a shortcut anywhere else pointing to the original position
Wrong… very wrong that won’t change the SN (tested)
| Quote: | | Moving it back to the original location does not revert to the original SN |
Wrong… Once moving it to its original position the program ‘d run as normal and no need to ask the user about the RN, which is already saved in the original position “your_rn” (tested)
| Quote: | | Renaming the directory where the program resides changes the SN. Renaming it back to the original name does not restore the original SN. |
Completely Wrong… No comments just try it your self.
| Quote: | | (Higher levels of the directory tree do not seem to have an effect. Moving the whole directory together with the program does not change the SN.) |
Wrong… No comments just try it your self.
| Quote: | | I did not try to run a disk defragmenter or simulate a read error from a disk block, causing the OS to move some of the program data to a new location, but I would not be surprised if these would change the SN, too. |
Please do try and let me know the results… status of the disk blocks won’t change the SN
| Quote: | | Burn the program on a CD, not finalizing it. Give it a known name and preferably store the program in the bottom of a 3 level deep directory tree. Run the program from the CD. In 3 very different XP machines the SN values were identical. (On a Win2K PC there were only two characters different.) Buy the RN and burn the file "your_rn" on the CD. (The format of the file is found from a hard disk installation.) |
I don’t know if you ‘re describing some real test you have done or just a theory.
I didn’t try that but I can tell the result… you better try it your self.
1st I doubt the program ‘d run from the CD in the first place (I didn’t try it)
2nd even if it ‘d run from the CD… that’d be all the user can do with the CD
(If you already tried that and have the program on a CD… Please try to run it from the same CD on another machine… 99 out of 100 it won’t run) … Again I didn’t try but I think I can tell…!
| Quote: | | Having the CD with the RN, you can run the program from there. You can distribute the ISO image of the CD on the Web, so anyone can make an identical copy and run the game from his CD. Because the CD reader does not affect the SN, most likely CD emulators work, too, making a physical CD not necessary for playing the game |
If you have this ISO image of the CD won’t help more than a backup from the CD to run the software only on the same machine just as mentioned last paragraph (Once again, If the SW ‘d run from the CD… I didn’t try that… If you did, please let me know!)
| Quote: | | did not try to decipher the SN, |
Please do.
| Quote: | | although it shows too much regularity |
Then it sounds like an easy job to decipher the SN, maybe you’d like to try it!
| Quote: | | . For example, the CD version gave the SN F423F-LMNOPQJ3641077V on XP and F423F-LMNOPQM3641077Y on Win2K. |
We already talked about the CD issue… If the same CD could be run on 2 different machine maybe we’ll be back to that point.
| Quote: | The subsequence LMNOPQ is suspicious. Also, the last character was always V on XP and Y on Win2K
When I changed the name of the program back and forth, the generated SN values were decreasing. One could analyze the differences, too
|
That makes it sounds like you think that maybe you got some clues to break the scheme
Well, Some final questions… just simple Yes/No
Could you really break the scheme? Do you really believe you ‘re close?
Sorry to say, so far… I can’t see that.
Some quick Notes:
- I didn’t use any quotes from the private messages we have exchanged the last 2 days… I’d ask you permission before doing that. If you’d find that could be useful for anyone else here as I have found them useful for me with all these details about tests and trials you have performed on the software please let me know and I’ll post them all. I have them all saved.
(If you do mind… it’s ok. I understand and sure I’d respect your wish).
- As I have mentioned in a previous post, I have been using the same scheme for about 3 years now (written in VB) and it ‘s still working without much complaints as you expected. Maybe because it’s hard to find an Information Security expert like yourself who’d need to be a user for my SW.
- Thanks for your time.
MYYM |
|
| Back to top |
|
 |
MYYM
Joined: 05 Apr 2005 Posts: 132
|
Posted: Sun Apr 10, 2005 12:17 pm Post subject: |
|
|
While I’m waiting for reply from Laszlo about the CD bug mentioned in his last post.
I tried a CD I have already on it a backup of another program I wrote earlier and it's protected with the same scheme but written with VB and the bug doesn’t appear. Maybe that’s because the VB compiler ‘d generate a runtime error if the user try to run the SW from the CD “Path/file access error”.
Because I don’t know what would be the reaction of the AHK compiler at the same situation, and as a precaution I have modified the code so that it’d check the case before moving to the next step (there was no need for that extra check with the VB code.)
Anyway, I hope this modification would fix the bug if it exists and I know it won’t harm if not.
(Note: I didn’t burn CD to test it yet but theoretically I think it should work. not sure!)
I recompiled the SW and uploaded it to the site again, so the new version is available now for more tests.
Thanks Laszlo |
|
| Back to top |
|
 |
Laszlo
Joined: 14 Feb 2005 Posts: 4078 Location: Pittsburgh
|
Posted: Sun Apr 10, 2005 3:32 pm Post subject: |
|
|
Renaming: I regularly change the name of programs, so I can find them more easily and in a listing I know what they do. I had no problems with it before, and I certainly don't like this restrictions. On my Win2K laptop I ran the following batch file | Code: | ren MYYM_P_Match.exe P
ren P MYYM_P_Match.exe
MYYM_P_Match.exe | It renames the "MYYM_P_Match.exe" file to P and back and then runs it. There were no other actions before and in between. The generated serial numbers were all different:
SN : 7D07F-KHIMMOM2114570Y
SN : 7C855-KHIGGJM2111052Y
SN : 7C6DF-KHHOOKM2110334Y
SN : 7C133-KHHKIIM2105711Y
... | Quote: | | Wrong… just try it yourself | Since I'm reporting the results of my experiments, this note is not appropriate. Instead, you should say something like "I don't have this behavior in my PC". Maybe these problems are interactions with other programs, but all I have are off-the-shelf SW, like Novel, AutoSave-2 and Diskeeper. If your game does not work with them, or on a Win2K laptop, then it is faulty. You cannot expect people to completely reconfigure their PC's for a new piece of SW.
Moving: Here is the batch file I ran | Code: | move C:\MYYM_P\2\MYYM_P_Match.exe C:\MYYM_P\3\
move C:\MYYM_P\3\MYYM_P_Match.exe C:\MYYM_P\2\
C:\MYYM_P\2\MYYM_P_Match.exe | Again, there were no other actions before and in between. The generated serial numbers were all different:
SN : 8038B-KHMOIMM2143442Y
SN : 7FAC7-KHMHHIM2137512Y
SN : 7F97D-KHMGGNM2137043Y
SN : 7F4C3-KHLMIIM2134751Y
SN : 7F22F-KHLKHIM2133632Y
...
I ran the batch file today again, after reboot. The sequence is different, but the program always gives a different SN. If you mean by "wrong" that this is a serious bug, I agree. This behavior of the program is wrong, very wrong (with accidental drag-and-drop you could move the file, and even after moving it back the registration info is destroyed). But I can reproduce it any number of times in my Win2K PC.
Renaming directory: This one I did manually and I did not document my actions. Maybe I did something else, too. If I made a mistake, it means the copy protection scheme is even simpler: it does not use the path to where the program resides.
Moving the whole directory: I tried it today again, and it still does not change the SN. It is strange, that the only action, which does not change the SN for me, should have, according you comment.
C:\MYYM_P\2\MYYM_P_Match.exe --> SN : BF644-FEGKJNM3047504Y
C:\MYYM_P\3\2\MYYM_P_Match.exe --> SN : BF644-FEGKJNM3047504Y
C:\2\MYYM_P_Match.exe --> SN : BF644-FEGKJNM3047504Y
The CD test: As I wrote, I actually burnt the program on a CD, and I got identical SN values on 3 very different PC's. Since I did not get the corresponding RN values, the rest is speculation. To see if the game actually runs (not only is the SN independent of the PC) I'd need 3 RN values for
SN : BF0F1-FDMHGJM3045202Y
SN : F423F-LMNOPQM3641077Y
SN : F423F-LMNOPQJ3641077V
and possibly a few more, in case I screw up something. The main reason I did not attempt to run the program, was that it was very unstable in my PC. As I wrote in our private correspondence (which you are allowed to quote), the program crashed both times I tried to start a new game. Not only did it terminate, but erased the registration file "your_rn" and generated a new SN. This happened with a freshly created copy of the program, nothing else was written in its directory, and the program was executed just twice. The crash could be the consequence of the incompatibility of my system with the program, the incompatibility, which causes the SN change when it should not.
To decipher the SN would take weeks and a lot of SN-RN pairs. If it was a high value target I would risk prosecution, otherwise there is no motivation. In this time I could do something useful. If there is an easy way around the copy protection scheme, I would say it is broken, even if we don't know how it works internally. |
|
| Back to top |
|
 |
|
|
You can post new topics in this forum You can reply to topics in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|