首页
社区
课程
招聘
[原创]使用RSA1024算法防止软件被Keygen
发表于: 2009-6-27 10:58 13990

[原创]使用RSA1024算法防止软件被Keygen

2009-6-27 10:58
13990
miracl* mip=mirsys(600,16); 
big p,q, e, n, m, c, c2 ; // big直接作为关键字使用.
mip->IOBASE=16; //16为16进制的意思.
n = mirvar(0) ; // 初始化为零.

bytes_to_big(strlen(szName),szname,c); // 用于将字节串转换为big大数. 
//一般用于对可见字符操作, 如用户名
//等, 我们这里应为是机器码就不需要.

我们这里是机器码, 就使用这个函数.
cinstr(c,szM); //把szM字符串当做16进制串转换为big大数.
cinstr(m,szR); //注册码作为big大数.
powmod(m,e,n,c2);

if(c == c2)
{
	注册成功.
}
else
	注册失败.
e = 0x196BB
p=  DDF219AB7005813F5EAFE4AA496DF5B27926EB3B1E178D9B01017BEA7A35392DC5D9984A2F8877F4848B1CE501ADC70DA0562A1027B06D4934E98E1830A81C13;
q=
F9FE9F66EA6F33BB8D003AD81A28655BF36B50E5134B9966F7F9C2D05EAC037FA628F21EFCA594AAAD955EF0E5D38B1033547054F4834FDA38748608CB44B6E3;
n=
D8BD3B5FCFB5E958985FF03800BEB17F41CB11BA6D5C1F26B88699E6904EAE25BF2D876CB02F37606BA4223F5D5821397CC45C084096E664F0B0DB223419B77F5185A1D4045BD6105C77DDA97A171E8BD8299281B34F4B1127578D023A0A22A3840500EEDA46F4B7FDD35FD5CCC78739F2B42598125CE6F747AF3F8D2F1266D9;
d=
58AFF4329BAC7313F5776926EB442C496B03037FF783BC404DC20FAF671AEE61D8187A023C197C950180FFAFF103E905420EEF108FF8B551F8CAA2B90C2CE0005DA06A64CEA8EF3494232A864C79E266BECE2DAC206ABB32D1A1D35DA6A122AB8BFB5F657890F43860D31ACD2148577ED437CE905FE0BE32B40E730F9E6C36DB;


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
2
占个位. 先~
2009-6-27 11:04
0
雪    币: 22
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但是引入一个新的问题是如何保护程序中的公钥,你得防止被Patch掉。一旦公钥被Cracker patch了,就可以随意生成授权了。
另外,用ECC也是一样,只是ECC的计算量更小,强度更高而已,大名鼎鼎的FlexXXX使用ECC,不过还是免不了被别人patch的下场
2009-6-27 17:01
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
4
文中已做假设了:
P.S : 由于本文主要讲解的是关于软件注册方面的算法知识. 所以我们不考虑对软件进行patch, 然后再谈注册的情况. 所以讲解的前提是不对软件数据文件进行修改.


如果能彻底防止软件被patch. 那这个世界上就不会有破解版软件了.

不论是patch公匙, patch jnz . 我认为还不存在能彻底被防止的可能. 只存在的是被patch的难度.

我想通过自己去实现大数库可以在一定程度上更好地保护公匙, 毕竟miracl这些公开库被研究太多了, 解密者分析起来会更容易.
2009-6-27 17:11
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
5
当然, 使用RSA配合其他的软件注册保护机制. 相互结合使用. 效果会更好.
2009-6-27 17:12
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有代码,有bin的。就应该支持,虽然对反破解貌似没什么大帮助。
2009-6-27 18:56
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
7
好文学习 谢谢了
2009-6-27 20:04
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
8
RSA没用的 可以直接patch指令,最好的办法就是将关键代码运行在特定的环境-如硬件狗CPU或者远程计算机
2009-6-27 21:02
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
9
再次重申:
本文的主题不是说使用RSA就可以完全保证软件的安全.
只是探讨一下RSA在软件保护机制的应用以及其他的一些拙见.
你可以当成是扫盲贴. 谢谢.

P.S LS所说的关键代码运行在远程计算机我很想了解其原理, 不知可否详细指点指点. 感谢
2009-6-27 21:27
0
雪    币: 86
活跃值: (1163)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
一样没用,可以截获相关的通讯数据,还是被Patch掉
2009-6-27 21:34
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
11
傻啊!关键代码在狗的CPU跑 你截获通信数据有什么用?你那是早期的狗狗,只能起到一个验证的功能, 现在的狗内部都有CPU的,可以把代码写在狗里面,并且狗狗内部代码不可读出
2009-6-27 22:06
0
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
[QUOTE=boywhp;647793]傻啊!关键代码在狗的CPU跑 你截获通信数据有什么用?你那是早期的狗狗,只能起到一个验证的功能, 现在的狗内部都有CPU的,可以把代码写在狗里面,并且狗狗内部代码不可读出[/QUOTE]
当然有用,只不过狗的动算能力影响难度而已。
插值攻击、差分分析、双线性分析等等,只不过是破解代价的问题。
2009-6-27 22:46
0
雪    币: 1024
活跃值: (240)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
13
好文 有理论有实践
2009-6-27 23:18
0
雪    币: 203
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这有什么,hook掉usb算了~难度问题而已~
2009-6-29 17:57
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
只要软件本身能解码运行,就一定可以作出注册机,RSA,ECC 都没用,和对称加密是一样的,都存在“钥”的安全性的问题,解码过程是一定会出现“钥”的。
2009-6-29 22:07
0
雪    币:
能力值: (RANK: )
在线值:
发帖
回帖
粉丝
16
呵呵, 这位老兄大概不清楚公开密钥体系的“钥”和对称加密体系的“钥”是两码事吧.
所谓对称加密, 指的是加密解密时用的“钥”是一样的, 因此只要能解码, “钥”必然会暴露, 整个算法自然被攻破.
但公开密钥体系中, 加密和解密用的“钥”是不一样的, 而且两个“钥”之间的特殊关系正是算法成立的关键, 你必须攻破这个算法, 才能根据公开的“钥”去计算出那非公开的“钥”. 所以RSA/ECC这些公开密钥体系在解码时出现“钥”并不会有什么安全性的问题.
2009-6-29 22:43
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
有没有ARM平台上能用的miracl运行库,哪位给编译一个啊,找了好久了,找不到
2009-11-3 16:38
0
雪    币: 123
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
没什么用,非对称加密生成注册码,我早就写过了,写不了注册机没关系,暴破也一样
2009-11-3 18:38
0
雪    币: 144
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
路过,打个标签留念
2009-11-3 21:16
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
20
把关键运算放入硬件执行,核心代码都在硬件里面,破解的成本可能就超过一般软件的价格了.
2009-11-5 14:18
0
游客
登录 | 注册 方可回帖
返回
//