某适合各行业生产ERP注册分析及注册机原理编写
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
最近有不少朋友寻找ERP,也不想出多少银子,还都喜欢免费为主的,不过这家的ERP有免费版,只是单机版,不过我写过一篇关于实战的,可以把免费单机版变成网络版,只是没多少人知道罢了;
类似灰色按钮 CLRInjection - 通用托管注入(.net)(此教程可把某ERP单机版变成网络版使用)
进入正题之前,要有软件不是;ERP免费版下载
进入正题;看了一下,.net编写的,有混淆,do4net去混淆,然后上dnspy
找到Register中的CheckReg()
跟一下得到如下;这就没啥可继续说的了吧;
HTML页面式:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>某某ERP注册机</title> </head> <body> <h1>注册码生成</h1> <table> <tr> <td>机器码:</td> <td><input type="text" id="MacCode" value="148-465-5898"></td> </tr> <tr> <td>注册码:</td> <td><input type="text" id="RegistCode"></td> </tr> <tr> <td><input type="button" id="sub" value="生成"></td> </tr> </table> </body> </html> <script src="js/jquery-3.1.1.min.js"></script> <script src="js/jquery.md5.js"></script> <script> $("#sub").on("click", function () { nums = 999; num=(nums * 3 + 3881) var MacCode = $("#MacCode").val(); MacCode=MacCode.toString(); var text = ""; var RegistCode = ''; for (i = 0; i < MacCode.length; i++) { num2 = MacCode[i].charCodeAt() + nums; text += (4 * i + num2 -3); // console.log(text); if (i % 7 == 0) { text += "+"; } else if (i % 5 == 0) { text += ")"; } else if (i % 3 == 0) { text += "'"; } else if (i % 4 == 0) { text += "&"; } else if (i % 2 == 0) { text += "!"; } else { text += "-"; } // console.log(text); } var texts=''; for(j=0;j<text.length;j++){ switch (text[j]){ case ")": texts+="wiwewoef"; break; case "'": texts+="sdfqiierp"; break; case "&": texts+="qqierquer"; break; case "!": texts+="cvmmdfiwe"; break; case "-": texts+="cvmiewprrr"; break; case "*": texts+="weireuqc"; break; case "+": texts+="sdjfsdjfk"; break; case "(": texts+="cvfmdfmdfv"; break; case "0": texts+="iiwqqerf"; break; case "1": texts+="vcvmmzz"; break; case "2": texts+="llladfe"; break; case "3": texts+="ppqerredf"; break; case "4": texts+="sdssssree"; break; case "5": texts+="vbvbnnmmm"; break; case "6": texts+="ciequdfaa"; break; case "7": texts+="gadfwiqww"; break; case "8": texts+="aeiyyyytt"; break; case "9": texts+="qierbxcax"; break; } } texts = $.md5(texts); RegistCode=(texts.toUpperCase().substring(3,19))+ num; $("#RegistCode").val(RegistCode) }) </script>
HTML成品
python版
import hashlib def get_reg(vid, num = 999): """ num : 用户数 """ text = "" for i in range(len(vid)): num2 = ord(vid[i]) + num text += str((4 * i + num2 -3 )) if i % 7 == 0:text += "+" elif i % 5 == 0:text += ")" elif i % 3 == 0:text += "'" elif i % 4 == 0:text += "&" elif i % 2 == 0:text += "!" else:text += "-" text = text.replace("+","sdjfsdjfk").replace(")","wiwewoef").replace("'","sdfqiierp").replace("&","qqierquer").replace("!","cvmmdfiwe").replace("-","cvmiewprrr").replace("*","weireuqc") \ .replace("+","hjigfugdhf").replace("(","cvfmdfmdfv").replace("0","iiwqqerf").replace("1","vcvmmzz").replace("2","llladfe").replace("3","ppqerredf").replace("4","sdssssree") \ .replace("5","vbvbnnmmm").replace("6","ciequdfaa").replace("7","gadfwiqww").replace("8","aeiyyyytt").replace("9","qierbxcax") text = hashlib.md5(text.encode()).hexdigest() return text.upper()[3:19] + str(num * 3 + 3881) if __name__ == "__main__": reg = get_reg("148-465-5898") print(reg)
PHP版:
* “机器码:148-465-5898” * 12 | 数组:12{“1”,“4”,“8”,“-”,“4”,“6”,“5”,“-”,“5”,“8”,“9”,“8”} * “1键” | 49 | 1048 | “1049” * “第1次循环结束” * “4键” | 52 | 1051 | “1049-1056” * “第2次循环结束” * “8键” | 56 | 1055 | “1049-1056!1064” * “第3次循环结束” * “减号键” | 189 | 1188 | “1049-1056!1064'1201” * “第4次循环结束” * “4键” | 52 | 1051 | “1049-1056!1064'1201&1068” * “第5次循环结束” * “6键” | 54 | 1053 | “1049-1056!1064'1201&1068)1074” * “第6次循环结束” * “5键” | 53 | 1052 | “1049-1056!1064'1201&1068)1074'1077” * “第7次循环结束” * “减号键” | 189 | 1188 | “1049-1056!1064'1201&1068)1074'1077+1217” * “第8次循环结束” * “5键” | 53 | 1052 | “1049-1056!1064'1201&1068)1074'1077+1217&1085” * “第9次循环结束” * “8键” | 56 | 1055 | “1049-1056!1064'1201&1068)1074'1077+1217&1085'1092” * “第10次循环结束” * “9键” | 57 | 1056 | “1049-1056!1064'1201&1068)1074'1077+1217&1085'1092)1097” * “第11次循环结束” * “8键” | 56 | 1055 | “1049-1056!1064'1201&1068)1074'1077+1217&1085'1092)1097-1100” * “第12次循环结束” * “替换后:vcvmmzziiwqqerfsdssssreeqierbxcaxcvmiewprrrvcvmmzziiwqqerfvbvbnnmmmciequdfaacvmmdfiwevcvmmzziiwqqerfciequdfaasdssssreesdfqiierpvcvmmzzllladfeiiwqqerfvcvmmzzqqierquervcvmmzziiwqqerfciequdfaaaeiyyyyttwiwewoefvcvmmzziiwqqerfgadfwiqwwsdssssreesdfqiierpvcvmmzziiwqqerfgadfwiqwwgadfwiqwwsdjfsdjfkvcvmmzzllladfevcvmmzzgadfwiqwwqqierquervcvmmzziiwqqerfaeiyyyyttvbvbnnmmmsdfqiierpvcvmmzziiwqqerfqierbxcaxllladfewiwewoefvcvmmzziiwqqerfqierbxcaxgadfwiqwwcvmiewprrrvcvmmzzvcvmmzziiwqqerfiiwqqerfsdfqiierp” * “MD5:F4C66561681331A93151D175D73CB8FD” * “注册码66561681331A93156878”
某个点解说:
int num=(this.FormatToInt(vregisterId.Substring(16,4))-3881/3;
num=999的时候,就是无限工作点了
注册码16位开始取4个,就是16到20位,4个数字,减去3881,再除以3,等于999就行了。。。
自己反推一下,就可以算出后注册码后4位数字,后4位数字再前面MD5取的16位,就是20位注册码了。
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
赏
支付宝赞助
微信赞助
免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。
您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源 LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。
敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 某适合各行业生产ERP注册分析及注册机原理编写