17 12
发新话题
打印

怎么隐藏序列号?

本主题由 cdimp 于 2008-3-17 14:58 移动

怎么隐藏序列号?

大家好,有个问题请教大家.
有个工厂想买我的软件,让我把SDK化,我现在想了一个办法,在DLL里面提供一个函数类似 : SetKey(CString key)
这样让对方把我提供的序列号设置进去.然后在程序运行的时候在DLL里校验.

但是我刚才写了个程序测试了一下,发现如果EXE调用这个DLL,并且用 SetKey("MyKey0022010101");

编译成EXE后,用记事本把EXE打开,可以在里面找到MyKey0022010101.
这样的话,其他人不也就是直接可以得到我的序列号?

我还打算以后把这个做成SDK 共享软件,但是现在怎么隐藏这个KEY却遇到了难题.

大家有什么高招吗

TOP

这样的思路也许可以:
1、将你的MyKey0022010101加密成密文(采用不可逆加密),保存在dll中
2、在用户输入key时,也将其加密成密文
3、将1、2步的结果对照,一致则通过,不一致则报错。
本帖最近评分记录
  • quick 活力 +3 您太乐于助人了,呵呵 2008-3-16 20:47

TOP

MD5

TOP

不用序列号,那不就找不到了吗?
中国软件产品出品协会
http://www.chinaswa.com/

TOP

回复 2# 的帖子

这样还是没有用啊...
因为用户肯定是要调用 SetKey 这个函数,, 所以不管我把序列号加密成什么样子
用户始终要在他们的 EXE里调用SetKey 这个函数,并把加密后的序列号作为这个函数的参数传递进去.

这样一旦用户发布了他们的EXE和我的DLL,其他的人就可以直接复制DLL,然后从DLL里面找到加密后的序列号,一样的调用.

TOP

不太明白到底是啥意思,能描述的清除一点么?

TOP

学习中……

TOP

MD5("MyKey0022010101") 到 Dll
匹配的时候 SetKey(MD5("MyKey0022010101"))
永远雪山

TOP

大家还是没有明白我的意思啊?

比如:
现在 你们公司从微软买了一套SDK, 微软给了你们DLL和序列号:12345678

现在你们公司要利用微软的这套SDK开发一个程序,你们在你们的程序里调用这个DLL的时候,用DLL提供的一个函数
SetKey("12345678") 来吧序列号设置进去. 然后编译,, 最后你们的程序就是 你们的EXE+微软的DLL,然后你们把这个软件放到你们网站上让人下载使用,这时候我从你们网站下载后, 直接用记事本打开 EXE程序就可以搜索到序列号:12345678

然后我就可以用这个DLL+序列号来开发软件, 免费得到微软的这套SDK .

假设你是微软,怎么防止这个情况?

TOP

大家还是没有明白我的意思啊?

比如:
现在 你们公司从微软买了一套SDK, 微软给了你们DLL和序列号:12345678

现在你们公司要利用微软的这套SDK开发一个程序,你们在你们的程序里调用这个DLL的时候,用DLL提供的一个函数
SetKey("12345678") 来吧序列号设置进去. 然后编译,, 最后你们的程序就是 你们的EXE+微软的DLL,然后你们把这个软件放到你们网站上让人下载使用,这时候我从你们网站下载后, 直接用记事本打开 EXE程序就可以搜索到序列号:12345678

然后我就可以用这个DLL+序列号来开发软件, 免费得到微软的这套SDK .

假设你是微软,怎么防止别人直接从EXE里面找到序列号?

TOP

 17 12
发新话题