还没有开通你的开心账户?使用其他账号登录:
软件安全防破解之字符串加密,提高破解难度让你的软件不再轻易被山寨
原文:/showtopic-3430.aspx大家知道提示框和字符串是新手破解的关系,如果我们能将敏感的字符串进行加密传输,那么就可以杜绝90%以上的破解新手。下面以注册宝的安全码和软件编号几种不同的加密方法对比防山寨效果(易语言为例,其他语言类似)明文未加密写法[plain]&.版本&2&&&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&【重要】新手一般只需要修改您自己的"安全码"和"软件编号"即可使用,软件编号和安全码从开发者后台获得&&安全码&=&“DF103B82-AAB-FB857FD6A6BE”&'&设置软件安全码&&软件编号&=&“Z”&'&设置软件编号&&软件版本&=&1&'&设置软件版本号(整数型)&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&注册宝.数值方法&(“EnableLog”,&1)&'&开启注册宝调用日志,方便BUG问题排查&1表示开启&0表示关闭&默认没有调用是0&&版本号&=&注册宝.文本方法&(“Ver”,&1)&'&1为获取dll内部版本(10006)&&属性版本&=&注册宝.文本方法&(“Ver”,&2)&'&2为获取dll的属性版本号(1.0.0.xxxxx)&&.如果&(注册宝.数值方法&(“AppInitialize”,&安全码,&软件编号,&软件版本)&=&1)&'&软件初始化&&'&初始化成功&&信息框&(“初始化完成,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&&'&''''''''''''''''''''''''''''''''''''&&.否则&&'&初始化失败&&信息框&(“初始化失败,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&'&出现这个提示请检查初始化的各个参数及插件版本是否正确&&结束&()&&OD载入后查找字符串结论:以明文直接写入的方法是最不安全的,载入OD可你的安全码和软件编号一目了然,任何新手都可以轻而易举的山寨掉你的软件。所以这种方法的防破解效果几乎为零字节集方式加密[plain]&.版本&2&&&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&【重要】新手一般只需要修改您自己的"安全码"和"软件编号"即可使用,软件编号和安全码从开发者后台获得&&安全码&=&到文本&({&68,&70,&49,&48,&51,&66,&56,&50,&45,&57,&55,&57,&49,&45,&52,&50,&57,&48,&45,&57,&65,&65,&66,&45,&70,&66,&56,&53,&55,&70,&68,&54,&65,&54,&66,&69&})&&'&设置软件安全码&&软件编号&=&到文本&({&90,&49,&48,&48,&49,&54,&50,&48,&48&})&&'&设置软件编号&&软件版本&=&1&&'&设置软件版本号(整数型)&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&注册宝.数值方法&(“EnableLog”,&1)&&'&开启注册宝调用日志,方便BUG问题排查&1表示开启&&0表示关闭&&默认没有调用是0&&版本号&=&注册宝.文本方法&(“Ver”,&1)&&'&1为获取dll内部版本(10006)&&属性版本&=&注册宝.文本方法&(“Ver”,&2)&&'&2为获取dll的属性版本号(1.0.0.xxxxx)&&.如果&(注册宝.数值方法&(“AppInitialize”,&安全码,&软件编号,&软件版本)&=&1)&&'&软件初始化&&&&&&'&初始化成功&&&&&&信息框&(“初始化完成,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&&&&&&'&''''''''''''''''''''''''''''''''''''&&.否则&&&&&&'&初始化失败&&&&&&信息框&(“初始化失败,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&&'&出现这个提示请检查初始化的各个参数及插件版本是否正确&&&&&&结束&()&&OD查找字符串数据窗口查找字符串结论:相对于上一种有了改进使用字节集方法加密的方法虽然在查找字符串时无法看到安全码和软件编号,但是还是能够在数据窗口中轻松找到这些字符串。所以这种方法也是掩耳盗铃,也不能有效防止被山寨字符串打乱加密[plain]&.版本&2&&&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&【重要】新手一般只需要修改您自己的"安全码"和"软件编号"即可使用,软件编号和安全码从开发者后台获得&&安全码&=&字符&(96&-&28)&+&字符&(70)&+&到文本&(到整数&(“1”))&+&到文本&(到整数&(“0”))&+&字符&(取代码&(“3”,&))&+&字符&(66)&+&到文本&(到整数&(“8”))&+&到文本&(77&×&0&+&2)&+&字符&(右移&(90,&1))&+&字符&(57)&+&到文本&(56&×&0&+&7)&+&到文本&(到整数&(“9”))&+&到文本&(到整数&(“1”))&+&字符&(45)&+&到文本&(97&×&0&+&4)&+&到文本&(到整数&(取反&(假))&×&68&×&0&+&2)&+&到文本&(40&×&0&+&9)&+&到文本&(10&×&0&+&0)&+&字符&(取代码&(“-”,&))&+&到文本&(右移&(18,&1))&+&字符&(取代码&(“A”,&))&+&字符&(22&+&43)&+&字符&(63&+&3)&+&字符&(5&+&40)&+&字符&(取代码&(“F”,&))&+&字符&(右移&(264,&2))&+&到文本&(到整数&(“8”))&+&到文本&(右移&(10,&1))&+&到文本&(右移&(3584,&9))&+&字符&(取代码&(“F”,&))&+&字符&(取代码&(“D”,&))&+&到文本&(87&-&81)&+&字符&(右移&(8320,&7))&+&到文本&(右移&(384,&6))&+&字符&(70&-&4)&+&字符&(右移&(552,&3))&'&搅乱前字符串[DF103B82-AAB-FB857FD6A6BE]&&软件编号&=&字符&(90)&+&到文本&(到整数&(“1”))&+&到文本&(到整数&(取反&(假))&×&98&×&0&+&0)&+&到文本&(右移&(0,&8))&+&到文本&(到整数&(取反&(假))&×&53&-&52)&+&字符&(54)&+&到文本&(到整数&(“2”))&+&到文本&(到整数&(取反&(假))&×&10&-&10)&+&到文本&(右移&(0,&6))&'&搅乱前字符串[Z]&&软件版本&=&1&'&设置软件版本号(整数型)&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&注册宝.数值方法&(“EnableLog”,&1)&'&开启注册宝调用日志,方便BUG问题排查&1表示开启&0表示关闭&默认没有调用是0&&版本号&=&注册宝.文本方法&(“Ver”,&1)&'&1为获取dll内部版本(10006)&&属性版本&=&注册宝.文本方法&(“Ver”,&2)&'&2为获取dll的属性版本号(1.0.0.xxxxx)&&.如果&(注册宝.数值方法&(“AppInitialize”,&安全码,&软件编号,&软件版本)&=&1)&'&软件初始化&&'&初始化成功&&信息框&(“初始化完成,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&&'&''''''''''''''''''''''''''''''''''''&&.否则&&'&初始化失败&&信息框&(“初始化失败,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&'&出现这个提示请检查初始化的各个参数及插件版本是否正确&&结束&()&&OD载入查找字符串数据窗口查找字符串结论:这种方法对每一个字符进行随机的字符、取反、算术、位运算、取代码、到整数等计算,让你的字符串无人能够再辨别出来(使用工具"易语言搅乱器")。至少不至于让破解新手通过查找字符串就能山寨你的软件加密算法加密[plain]&.版本&2&&&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&【重要】新手一般只需要修改您自己的"安全码"和"软件编号"即可使用,软件编号和安全码从开发者后台获得&&安全码&=&建飞超级算法_解密&(“E7EB918E9A949A928EAE2E2E18EE5E19BE295E1E6c6ab47b10”,&“zhucebao”)&&软件编号&=&建飞超级算法_解密&(“Fb10”,&“zhucebao”)&&软件版本&=&1&'&设置软件版本号(整数型)&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&注册宝.数值方法&(“EnableLog”,&1)&'&开启注册宝调用日志,方便BUG问题排查&1表示开启&0表示关闭&默认没有调用是0&&版本号&=&注册宝.文本方法&(“Ver”,&1)&'&1为获取dll内部版本(10006)&&属性版本&=&注册宝.文本方法&(“Ver”,&2)&'&2为获取dll的属性版本号(1.0.0.xxxxx)&&.如果&(注册宝.数值方法&(“AppInitialize”,&安全码,&软件编号,&软件版本)&=&1)&'&软件初始化&&'&初始化成功&&信息框&(“初始化完成,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&&'&''''''''''''''''''''''''''''''''''''&&.否则&&'&初始化失败&&信息框&(“初始化失败,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&'&出现这个提示请检查初始化的各个参数及插件版本是否正确&&结束&()&&OD载入查找字符串结论:这种方法对原来的安全码和软件编号通过一个加密密钥(图中以采用建飞加密解密模块算法用'zhucebao'作为密钥进行加密)进行加密,OD中看不到原来的安全码和软件编号,但可以看到加密后的字符串和加密密钥,如果用户熟悉你使用的加密也可以进行山寨替换字符串打乱加算法加密[plain]&.版本&2&&&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&【重要】新手一般只需要修改您自己的"安全码"和"软件编号"即可使用,软件编号和安全码从开发者后台获得&&安全码&=&建飞超级算法_解密&(字符&(右移&(17664,&8))&+&到文本&(44&-&37)&+&字符&(右移&(276,&2))&+&字符&(取代码&(“5”,&))&+&到文本&(到整数&(“9”))&+&字符&(取代码&(“2”,&))&+&到文本&(到整数&(取反&(假))&×&32&×&0&+&9)&+&到文本&(到整数&(取反&(假))&×&50&-&47)&+&到文本&(87&-&78)&+&到文本&(0&÷&90)&+&字符&(取代码&(“E”,&))&+&字符&(取代码&(“1”,&))&+&到文本&(到整数&(取反&(假))&×&26&-&17)&+&字符&(66)&+&到文本&(67&-&58)&+&到文本&(右移&(64,&6))&+&字符&(取代码&(“8”,&))&+&字符&(右移&(2208,&5))&+&到文本&(79&-&70)&+&字符&(右移&(520,&3))&+&字符&(取代码&(“9”,&))&+&到文本&(到整数&(取反&(假))&×&80&-&76)&+&到文本&(到整数&(“9”))&+&字符&(取代码&(“A”,&))&+&字符&(57)&+&字符&(50)&+&到文本&(10&-&2)&+&字符&(取代码&(“E”,&))&+&字符&(取代码&(“9”,&))&+&到文本&(到整数&(“7”))&+&到文本&(右移&(4608,&9))&+&到文本&(右移&(4,&2))&+&到文本&(右移&(144,&4))&+&字符&(65)&+&字符&(57)&+&到文本&(85&-&82)&+&字符&(56)&+&字符&(取代码&(“E”,&))&+&到文本&(27&-&18)&+&字符&(65)&+&字符&(69)&+&字符&(取代码&(“2”,&))&+&字符&(右移&(17664,&8))&+&到文本&(10&-&8)&+&字符&(69)&+&字符&(取代码&(“1”,&))&+&到文本&(到整数&(取反&(假))&×&51&-&43)&+&字符&(右移&(1104,&4))&+&字符&(69)&+&字符&(取代码&(“5”,&))&+&字符&(右移&(35328,&9))&+&到文本&(到整数&(取反&(假))&×&69&-&68)&+&到文本&(73&-&64)&+&字符&(66)&+&到文本&(到整数&(“9”))&+&字符&(54)&+&到文本&(到整数&(取反&(假))&×&18&-&9)&+&字符&(52)&+&字符&(右移&(1104,&4))&+&到文本&(到整数&(取反&(假))&×&30&-&25)&+&字符&(取代码&(“E”,&))&+&到文本&(17&-&10)&+&到文本&(5&+&4)&+&到文本&(右移&(20,&2))&+&字符&(右移&(552,&3))&+&到文本&(到整数&(“2”))&+&到文本&(到整数&(取反&(假))&×&83&-&74)&+&到文本&(到整数&(取反&(假))&×&54&-&49)&+&字符&(取代码&(“E”,&))&+&到文本&(25&-&24)&+&字符&(右移&(1104,&4))&+&到文本&(到整数&(取反&(假))&×&66&-&60)&+&字符&(99)&+&到文本&(右移&(192,&5))&+&字符&(右移&(24832,&8))&+&字符&(取代码&(“b”,&))&+&到文本&(87&-&83)&+&到文本&(到整数&(取反&(假))&×&96&-&89)&+&字符&(右移&(25088,&8))&+&到文本&(右移&(256,&8))&+&到文本&(0&÷&63),&字符&(取代码&(“z”,&))&+&字符&(43&+&61)&+&字符&(右移&(468,&2))&+&字符&(99)&+&字符&(取代码&(“e”,&))&+&字符&(取代码&(“b”,&))&+&字符&(97)&+&字符&(35&+&76))&'&安全码=DF103B82-AAB-FB857FD6A6BE&&软件编号&=&建飞超级算法_解密&(字符&(右移&(1120,&4))&+&字符&(取代码&(“9”,&))&+&到文本&(到整数&(“9”))&+&到文本&(到整数&(取反&(假))&×&71&-&69)&+&字符&(57)&+&字符&(取代码&(“3”,&))&+&字符&(取代码&(“9”,&))&+&字符&(取代码&(“3”,&))&+&字符&(取代码&(“9”,&))&+&到文本&(2&-&0)&+&到文本&(到整数&(“9”))&+&到文本&(右移&(160,&5))&+&到文本&(59&-&50)&+&到文本&(到整数&(“1”))&+&到文本&(右移&(36,&2))&+&到文本&(右移&(192,&6))&+&到文本&(到整数&(“9”))&+&到文本&(到整数&(取反&(假))&×&60&÷&20)&+&字符&(13&+&86)&+&到文本&(50&-&44)&+&字符&(右移&(194,&1))&+&字符&(右移&(50176,&9))&+&到文本&(到整数&(取反&(假))&×&108&÷&27)&+&到文本&(到整数&(取反&(假))&×&679&÷&97)&+&字符&(右移&(6272,&6))&+&到文本&(到整数&(取反&(假))&×&39&÷&39)&+&字符&(取代码&(“0”,&)),&字符&(70&+&52)&+&字符&(右移&(832,&3))&+&字符&(取代码&(“u”,&))&+&字符&(右移&(25344,&8))&+&字符&(取代码&(“e”,&))&+&字符&(98)&+&字符&(97)&+&字符&(取代码&(“o”,&)))&'&软件编号=Z&&软件版本&=&1&'&设置软件版本号(整数型)&&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&&'&注册宝.数值方法&(“EnableLog”,&1)&'&开启注册宝调用日志,方便BUG问题排查&1表示开启&0表示关闭&默认没有调用是0&&版本号&=&注册宝.文本方法&(“Ver”,&1)&'&1为获取dll内部版本(10006)&&属性版本&=&注册宝.文本方法&(“Ver”,&2)&'&2为获取dll的属性版本号(1.0.0.xxxxx)&&.如果&(注册宝.数值方法&(“AppInitialize”,&安全码,&软件编号,&软件版本)&=&1)&'&软件初始化&&'&初始化成功&&信息框&(“初始化完成,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&&'&''''''''''''''''''''''''''''''''''''&&.否则&&'&初始化失败&&信息框&(“初始化失败,当前插件版本号:”&+&版本号&+&“,属性版本:”&+&属性版本,&0,&“注册宝”)&'&出现这个提示请检查初始化的各个参数及插件版本是否正确&&结束&()&&OD载入查找字符串结论:经过双重保护,可以较有校的保护安全码和软件编号不被恶意替换,即找不到加原来的明文安全码软件编号也找不到加密后的注册码软件编号和加密密钥工具下载:建飞加密解密模块Bera1.1改良版:/s/1eQs2ZSY易语言字符串搅乱器下载(防破解专用):/s/1kTKJfs7防破解永远没有那么简单,没有什么软件是不能破解(所以一些问这个网络验证安全不安全会不会被破解真的很蠢,主要的防破解工作是在自己身上而不是在网络验证上),我们只能想办法提高破解门槛,消耗破解者的时间和精力。随时关注注册宝网络验证:/,更多教程待续
本转帖分类:&&&&
&&上一帖:
下一帖:&&
(%)点击发表你的观点
10-26 20:1310-26 20:2810-26 20:4910-26 20:4910-26 20:4910-26 20:4910-26 20:4910-26 20:5210-26 20:5610-26 20:57
热门转帖:
最新专题:
&2016 开心网高手请:C#有哪种加密算法可以把字符串加密完又可以解密(当要再用到原字符串又可以解密的呢?)C#有哪种加密算法可以把字符串加密完又可以解密(当要再用到原字符串又可以解密的呢?)--参考方法--MD5可以吗?
--参考方法--看MSDN,有可逆加密法
--参考方法--自己写最安全~
--参考方法--DES加密解密算法:
public string EncryptString(string sInputString, string sKey)
byte[] data = Encoding.UTF8.GetBytes(sInputString);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
//创建其支持存储区为内存的流。
CryptoStream cs = new CryptoStream(ms,DES.CreateEncryptor(),CryptoStreamMode.Write);//将数据流连接到加密转换流
cs.Write(data,0,data.Length);
cs.FlushFinalBlock();
//用缓冲区的当前状态更新基础数据源或储存库,随后清除缓
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
ret.AppendFormat( &{0:X2} &,b);
ret.ToString();
// DES解密字符串
public string DecryptString(string sInputString, string sKey)
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[sInputString.Length/2];
for (int x = 0; x
& sInputString.L x+=2)
int i = Convert.ToInt32(sInputString.Substring(x,2), 16);
inputByteArray[x/2] = (byte)i;
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
//建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象
StringBuilder ret = new StringBuilder();
return System.Text.Encoding.UTF8.GetString(ms.ToArray());
--参考方法--请参考这里,
/archive//364907.html
/archive//368860.html
--参考方法--lomin正解
--参考方法--shadow841112(孤风),自己写恐怕没有那么好写哦!要考虑越界什么的。
随机推荐程序问答结果
如对文章有任何疑问请提交到,或者您对内容不满意,请您反馈给我们发贴求解。
,机器学习分类整理更新日期:: 08:08:27
如需转载,请注明文章出处和来源网址:
本文WWW.DOC100.NET DOC100.NET版权所有。