Author Topic: How to erase the registration code in memory?  (Read 1255 times)

0 Members and 1 Guest are viewing this topic.

baitang36

  • Bull Frog
  • Posts: 213
How to erase the registration code in memory?
« on: December 16, 2021, 01:05:29 AM »
Let's do an experiment first
Enter the following code in the vlide editor:
Code - Auto/Visual Lisp: [Select]
  1. (setq regcode (strcat "z68" "c68" "m6868"))
  2. (setq regcode nil)

After compiling into fas, load it.
Then use WinHex to edit the memory and find the text string "z68c68m6868". The results are as follows:
Offset           0  1  2   3   4   5   6    7  8   9   A  B  C   D    E  F
00DE1FCD0 00 00 00 00 00 00 00 00 00 00 00 00 6D 36 38 36 m686
00DE1FCE0 38 00 63 36 38 00 7A 36 38 00 7A 36 38 63 36 38 8 c68 z68 z68c68
00DE1FCF0 6D 36 38 36 38 00 44 3A 5C 30 38 5C 7A 63 74 2E m6868 D:\08\zct.
00DE1FD00 66 61 73 00 00 00 00 00 00 00 00 00 00 00 00 00 fas 
Found our regcode in memory, "z68c68m6868"
Why? Is (setq regcode Nil) not working?
I have studied for a long time and found that (setq regcode Nil) only empties the symbol regcode without any operation on the string "z68c68m6868", which still exists in memory intact.
Many crackers use this principle to find the real registration code and use genuine software for free.
As LISP developers, how should we protect our copyright?
LISP has no pointer and can't modify memory directly.
« Last Edit: December 16, 2021, 01:09:52 AM by baitang36 »


VovKa

  • Water Moccasin
  • Posts: 1631
  • Ukraine
Re: How to erase the registration code in memory?
« Reply #2 on: December 16, 2021, 06:21:13 AM »
Found our regcode in memory, "z68c68m6868"
that's because you know what to look for,  what if you do not? ;)

As LISP developers, how should we protect our copyright?
the answer is simple: you can not protect your code 100%
you can only make it harder to crack i.e. compare hashes not real registration codes

baitang36

  • Bull Frog
  • Posts: 213
Re: How to erase the registration code in memory?
« Reply #3 on: December 16, 2021, 08:25:37 AM »
Found our regcode in memory, "z68c68m6868"
that's because you know what to look for,  what if you do not? ;)
The common practice of crackers is to enter a registration code randomly, and then find the input string in memory, and the real registration code can be found near it

It's Alive!

  • Retired
  • Needs a day job
  • Posts: 8702
  • AKA Daniel
Re: How to erase the registration code in memory?
« Reply #4 on: December 16, 2021, 04:58:05 PM »
Found our regcode in memory, "z68c68m6868"
that's because you know what to look for,  what if you do not? ;)
The common practice of crackers is to enter a registration code randomly, and then find the input string in memory, and the real registration code can be found near it

Then don't hard code the registration code , split it across functions, or encrypt it.

I used to spend a ton of time on this, but in the end it wasn't worth it lol