某适合各行业生产ERP注册分析及注册机原理编写

[全站通告]付费处理问题,非诚勿扰,付出才有收获;有意加微信 2589053300 进行沟通处理

最近有不少朋友寻找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位注册码了。

付费处理问题,非诚勿扰,付出才有收获;有意加微信2589053300 --更多请关注:老梁`s Blog

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 某适合各行业生产ERP注册分析及注册机原理编写

发表评论

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情