由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 怎么做license code比较好?
相关主题
网战TG彻底认输,一切系统被美国全面监控ZT新华社 (转载)这么好的帖子没人转?
XcodeGhost其实你们吵了半天,12306就靠”彩色动态验证码“就杜绝了大部分抢票软件
Interview questions about hash function展示一下苹果的bug
STL map请教如何去除病毒软件
slack got hacked, 没一个安全的没有home的user怎么实现无密码访问?
consistent hashing实际应用问一道狗狗网管面试题 (转载)
Test 一个 number 是否prime 比较好的办法是什么?计算机供电不稳定会影响程序/线程运行吗?
随便问一下请问原装内存为什么贵了一倍?
相关话题的讨论汇总
话题: license话题: hash话题: 注册码话题: 生成话题: code
进入Programming版参与讨论
1 (共1页)
W***o
发帖数: 6519
1
粗糙的想法就是拿到用户的mac address,加上软件的版本和build number,生成一个
复合的user id,
在自己的server上把这个user id hash 一下,把hash反馈给用户,
用户那这个hash在软件gui上输入后,软件用同样的算法再hash,比较输入的hash
string,
如果两个一致,就给软件注册。
这种注册码是一串长长的字符串,不如windows注册码好看,比如HKG3D-JKOP8-76SFQ-
876HG
如何生成注册码好一点?保证安全性?
s*********n
发帖数: 34
2
大牛开始自己创业了?

【在 W***o 的大作中提到】
: 粗糙的想法就是拿到用户的mac address,加上软件的版本和build number,生成一个
: 复合的user id,
: 在自己的server上把这个user id hash 一下,把hash反馈给用户,
: 用户那这个hash在软件gui上输入后,软件用同样的算法再hash,比较输入的hash
: string,
: 如果两个一致,就给软件注册。
: 这种注册码是一串长长的字符串,不如windows注册码好看,比如HKG3D-JKOP8-76SFQ-
: 876HG
: 如何生成注册码好一点?保证安全性?

m*****n
发帖数: 3575
3
软件用同样的算法再hash,比较输入的hash
string
漏洞就在这里——你的程序必须抗反编译,否则前功尽弃
W***o
发帖数: 6519
4
这怎么抗比较好?
或者能不能把生成的license code再用我自己的private key 来sign签名一下?
其实这种license code一般只是尽量保障正常用户购买license的动力,对于hacker来
说可以说是防不胜防,连windows, office都能被hack 注册码…… 我这几十块钱的小
软件真是😓

【在 m*****n 的大作中提到】
: 软件用同样的算法再hash,比较输入的hash
: string
: 漏洞就在这里——你的程序必须抗反编译,否则前功尽弃

m*****n
发帖数: 3575
5
其实很简单
你不要用那些不抗反编译的语言编写,例如python,JS
Java中等,可以加壳
C类的最难搞,多开几个线程,把堆栈搞乱
编译之前搞个变量替换,把函数名都搞得奇奇怪怪的
没有几个能破得了
还有你的核心密钥也不要单用一行写
生成的复杂点,分散在几个函数里分几步生成

【在 W***o 的大作中提到】
: 这怎么抗比较好?
: 或者能不能把生成的license code再用我自己的private key 来sign签名一下?
: 其实这种license code一般只是尽量保障正常用户购买license的动力,对于hacker来
: 说可以说是防不胜防,连windows, office都能被hack 注册码…… 我这几十块钱的小
: 软件真是😓

g*****n
发帖数: 420
6
用rsa生成license code就行,hacker只能暴力破解。至少不会写出注册机来
a*****g
发帖数: 19398
7
战略性解决这个问题
升级就好了

【在 W***o 的大作中提到】
: 粗糙的想法就是拿到用户的mac address,加上软件的版本和build number,生成一个
: 复合的user id,
: 在自己的server上把这个user id hash 一下,把hash反馈给用户,
: 用户那这个hash在软件gui上输入后,软件用同样的算法再hash,比较输入的hash
: string,
: 如果两个一致,就给软件注册。
: 这种注册码是一串长长的字符串,不如windows注册码好看,比如HKG3D-JKOP8-76SFQ-
: 876HG
: 如何生成注册码好一点?保证安全性?

w***g
发帖数: 5958
8
正解,github上应该有轮子吧

【在 g*****n 的大作中提到】
: 用rsa生成license code就行,hacker只能暴力破解。至少不会写出注册机来
W***o
发帖数: 6519
9
谢谢,受到启发一下子找到好多轮子,😄

【在 w***g 的大作中提到】
: 正解,github上应该有轮子吧
T********i
发帖数: 2416
10
就是个public key signature。
RSA效率太低,给你生成上千个bit的签名,用户只能copy paste,手工输入就免了。
效率高的可以考虑椭圆曲线ECC。prime256v1签名只有64bit。
我的设备都用另一种曲线,25519,据说不会有NSA可能的后门。prime256v1因为是NIST
标准,因此会有这种担心(被NSA植入后门)。
这些,当quantum computer达到7000 qbit的时候都是渣,几十秒就破解了。当然现在
还破解不了。

【在 W***o 的大作中提到】
: 谢谢,受到启发一下子找到好多轮子,😄
相关主题
Test 一个 number 是否prime 比较好的办法是什么?其实你们吵了半天,12306就靠”彩色动态验证码“就杜绝了大部分抢票软件
随便问一下展示一下苹果的bug
这么好的帖子没人转?请教如何去除病毒软件
进入Programming版参与讨论
W***o
发帖数: 6519
11
我是用Go写生成的binary

【在 m*****n 的大作中提到】
: 其实很简单
: 你不要用那些不抗反编译的语言编写,例如python,JS
: Java中等,可以加壳
: C类的最难搞,多开几个线程,把堆栈搞乱
: 编译之前搞个变量替换,把函数名都搞得奇奇怪怪的
: 没有几个能破得了
: 还有你的核心密钥也不要单用一行写
: 生成的复杂点,分散在几个函数里分几步生成

d******c
发帖数: 2407
12
如果注册必须联网的话,应该不难吧。
隔段时间必须联网验证(不需要用户干预,把重复注册的注册码ban掉),跟硬件信息
绑定(在新设备上装需要注册一下)。
这样都不需要注册码,只是检查硬件信息是不是在列表里而已。当然用户可以改mac
address,那个成本就比较高了,问题不大。
要破解就得自己建个server激活了。

【在 W***o 的大作中提到】
: 粗糙的想法就是拿到用户的mac address,加上软件的版本和build number,生成一个
: 复合的user id,
: 在自己的server上把这个user id hash 一下,把hash反馈给用户,
: 用户那这个hash在软件gui上输入后,软件用同样的算法再hash,比较输入的hash
: string,
: 如果两个一致,就给软件注册。
: 这种注册码是一串长长的字符串,不如windows注册码好看,比如HKG3D-JKOP8-76SFQ-
: 876HG
: 如何生成注册码好一点?保证安全性?

n*********2
发帖数: 357
13
> 隔段时间必须联网验证
这个是怎么保证的?
如果对方修改你已经发布的代码把这个“隔段时间联网验证”的部分跳过怎么办?如此
修改过的代码压根就不会联网验证了。
[类似地,客户也可以修改你已经发布的代码,把那些验证license code的二进制代码
部分跳过去;这样, 不管你的license code的生成是多么地安全,它一点儿用都没有
。这个问题的难点不在于license code的生成, 而在于验证license code代码部分的
安全。]

【在 d******c 的大作中提到】
: 如果注册必须联网的话,应该不难吧。
: 隔段时间必须联网验证(不需要用户干预,把重复注册的注册码ban掉),跟硬件信息
: 绑定(在新设备上装需要注册一下)。
: 这样都不需要注册码,只是检查硬件信息是不是在列表里而已。当然用户可以改mac
: address,那个成本就比较高了,问题不大。
: 要破解就得自己建个server激活了。

m*****n
发帖数: 3575
14
好主意
我也打算学GO
请问GO能打包成Linux的Binary么?

【在 W***o 的大作中提到】
: 我是用Go写生成的binary
o****p
发帖数: 9785
15
这有什么用?人家clone你的mac就完了。取点各种硬件的序列号什么的,如果换了硬件
就再跟你申请一个license。

【在 W***o 的大作中提到】
: 粗糙的想法就是拿到用户的mac address,加上软件的版本和build number,生成一个
: 复合的user id,
: 在自己的server上把这个user id hash 一下,把hash反馈给用户,
: 用户那这个hash在软件gui上输入后,软件用同样的算法再hash,比较输入的hash
: string,
: 如果两个一致,就给软件注册。
: 这种注册码是一串长长的字符串,不如windows注册码好看,比如HKG3D-JKOP8-76SFQ-
: 876HG
: 如何生成注册码好一点?保证安全性?

a9
发帖数: 21638
16
这玩意的难点不是破解你的密钥算法,关键是怎么防跳过你的验证。跟联网不联网关系
不大

一个
76SFQ-

【在 d******c 的大作中提到】
: 如果注册必须联网的话,应该不难吧。
: 隔段时间必须联网验证(不需要用户干预,把重复注册的注册码ban掉),跟硬件信息
: 绑定(在新设备上装需要注册一下)。
: 这样都不需要注册码,只是检查硬件信息是不是在列表里而已。当然用户可以改mac
: address,那个成本就比较高了,问题不大。
: 要破解就得自己建个server激活了。

w********m
发帖数: 1137
17
hash做个sub——string(0,20)就可以了吧。
1/36^20的collision几率,忽略不计。
a*****g
发帖数: 19398
18
是的。
我从前破解各种软件,很多很多情况直接改一个代码而已

信息
mac
hash

【在 a9 的大作中提到】
: 这玩意的难点不是破解你的密钥算法,关键是怎么防跳过你的验证。跟联网不联网关系
: 不大
:
: 一个
: 76SFQ-

f*******t
发帖数: 7549
19
只有关键功能放云上才能防破解
x****u
发帖数: 44466
20
我上次网上买了SNK的正版侍魂,发现在Windows10下已经跑不起来了,提示光盘不是正版
然后debug直接把jne换成je搞定

【在 a*****g 的大作中提到】
: 是的。
: 我从前破解各种软件,很多很多情况直接改一个代码而已
:
: 信息
: mac
: hash

1 (共1页)
进入Programming版参与讨论
相关主题
关于ECC。slack got hacked, 没一个安全的
$68000 买这个cluster怎么样 (转载)consistent hashing实际应用
雅虎裁员背后:动荡的IT行业 员工要提高自身反脆弱性Test 一个 number 是否prime 比较好的办法是什么?
Nvidia K80 workstation真贵随便问一下
网战TG彻底认输,一切系统被美国全面监控ZT新华社 (转载)这么好的帖子没人转?
XcodeGhost其实你们吵了半天,12306就靠”彩色动态验证码“就杜绝了大部分抢票软件
Interview questions about hash function展示一下苹果的bug
STL map请教如何去除病毒软件
相关话题的讨论汇总
话题: license话题: hash话题: 注册码话题: 生成话题: code