Shop OBEX P1 Docs P2 Docs Learn Events
Copy protection idea — Parallax Forums

Copy protection idea

T ChapT Chap Posts: 4,223
edited 2007-03-04 12:58 in Propeller 1
I don't have enough background to know if this is viable, just consider the concept.

1. On boot, the Propeller generates a random 32 bit number.
2. The Prop sends the result to an SX which performs some algorithm on that number, the SX(SOIC) is acting as a License Key in effect
3. The SX returns the number to the Propeller, the Propeller performs some algorithm which can then produce the same result, the results are compared, if OK, the Prop continues to boot, if no good, either quit or erase the EEPROM.

Comments

  • Jasper_MJasper_M Posts: 222
    edited 2007-03-04 11:51
    The propeller boot EEPROM is completely readable. So all you'd have to do would be to get the EEPROM contents and run a debug session with GEAR or something. After that cracking would be pretty easy.

    Here's another idea: most of the code itself is encrypted and the decryption happens on the SX. The only thing not encrypted would be the code on Prop that loads the encrypted code and sends it to the SX for decryption, reads it and starts it.
  • T ChapT Chap Posts: 4,223
    edited 2007-03-04 12:02
    How long to do the Tx/decrypt/Tx process? I have no idea how to to implement the idea, but it seems like a solution to the problem in cases where the expense is justified.
  • Jasper_MJasper_M Posts: 222
    edited 2007-03-04 12:09
    Yes, it would probably slow up the booting. And it isn't really a good solution anyway... Anyone could get the bootloader code from the eeprom, then modify it to dump the decoded code to serial rather than run it. There isn't really a good solution...
  • T ChapT Chap Posts: 4,223
    edited 2007-03-04 12:17
    If I understand correctly, the SX code cannot be accessed. If that is true, there must be some method to have the SX act as a key.
  • Jasper_MJasper_M Posts: 222
    edited 2007-03-04 12:37
    But the end result is always that the decoded code is in the prop memory. That means that it always is possible to modify the bootloader on prop to output the decrypted code rather than running it.
  • Jasper_MJasper_M Posts: 222
    edited 2007-03-04 12:52
    Here's one more idea to make cracking a little bit harder: The SX monitors the behaviour of the Propeller. If it notices that the program is not running, it cuts off the power. If the program on the prop would effectively use all cogs, it'd be hard to make an application that outputs the code without changing the Prop's external behavior. Eavesdropping on the Prop<=>SX communication would still be possible. To eliminate that, a mechanism that loads and decrypts the code on-demand (maybe an extension to the large code model) would make cracking a little bit harder.
  • T ChapT Chap Posts: 4,223
    edited 2007-03-04 12:55
    Maybe store vital parts of the code(parameters/variables/data) on the SX, load it on boot.
  • Jasper_MJasper_M Posts: 222
    edited 2007-03-04 12:58
    Yes, but they can still be read by either eavesdropping prop<=>SX comms or by modifying the bootloader.
Sign In or Register to comment.