本帖最后由 wushaominkk 于 2019-6-6 21:01 编辑
最近在用按键精灵给一个网友写一款刺激战场的引流脚本,水平不高,但是也花了很长时间,因为是免费的吧,我想知道他到底给别人用了没,我自己这个脚本大概开了多少个。想弄弄个激活码试试。
成品图出来勾引一下,再说原理
原理就是获取手机或者模拟器的特征,比如imsi,机型,安卓版本然后通过MD5加盐加密的方式,算出来激活码出来,这样保证一机一码,也不会有复制,修改模拟器特征的方法破解啦,当然这个算法是不能让别人知道的。下面亮代码说一下吧
这里就说一下,加密的过程,引流脚本就不说了。
[Asm] 纯文本查看 复制代码
Import "ShanHai.lua"//按键精灵的山海插件,可以获取更多的手机的信息
dim name = Device.GetName()//设备名
dim imsi = Device.GetImsi()//imsi
dim sim = Device.GetIccid()//sim卡id
dim syso = Sys.OsVersion()//安卓版本
dim mac= shanhai.GetMAC()//mac地址
//获取之后都加密一下
name = Encode.Md5(name)
imsi = Encode.Md5(imsi)
sim = Encode.Md5(sim)
syso = Encode.Md5(syso)
mac = Encode.Md5(mac)
//然后累加一个自己想加的字符串再加密一次
dim all = name&imsi&sim&syso&mac&"python"
all = Encode.Md5(all)
Dim result
//截取你想要截取的字符串长度和位置
result = UTF8.Mid(all,6,6)
Dim all_result
//小写字母转大写
all_result = UCase(result)
//这就是最后的特征码
TracePrint "显示的特征码:" ,all_result
//要内置一套算法,对比激活码是不是对的
Dim code,Tcode
//就是把激活码加一个字符串,然后截取,小写字母转大写就可以了,这里六位的比较好记,所以就弄六位了,免得别人复制粘贴麻烦。
code=Encode.Md5(all_result&"52pojie")
Tcode = UCase(UTF8.Mid(code, 2, 6))
TracePrint Tcode
//下面就是要让用户复制特征码的界面,点击继续就可以复制了,点击启动脚本才会有这个弹框
UI.NewLayout "特征码", 1
UI.AddEditText ("特征码","激活码",all_result)
UI.AddTextView("特征码","文字框","单击继续按钮复制机器码")
UI.Show("特征码")
Sys.SetClipText all_result
//最后获取输入框的内容对比脚本自己算的激活码是不是一样的就行了
dim logs=ReadUIConfig("输入框1")
If logs = Tcode Then
Delay 5000
ShowMessage "脚本启动中,激活码正确"
Call main()
Else
Do
Delay 5000
ShowMessage "你没有输入激活码或者你输入的激活码有误请查看脚本使用说明重试!!!"
loop
End If
Function main()
Delay 500
ShowMessage "主程序"
End Function
按键精灵还有个输入界面在脚本代码外面,单独存在,这里展示个例子。就是启动时候的填写激活码的界面
[Asm] 纯文本查看 复制代码 界面1:
{
标签页1:
{
水平布局:
{
注释:"用于将多个控件放在同一行",
文字框:
{
注释:"文字大小、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性",
名称:"文字框1",
显示内容:"请输入激活码",
文字大小:0,
高度:0,
宽度:0
},
输入框:
{
注释:"初始文本、文字大小、最大输入长度、高度、宽度是可选属性,如需使用默认值,可保持值为0或直接删除此属性",
名称:"输入框1",
提示内容:"提示用户应该输入什么内容",
初始文本:"",
仅输入数字:false,
文字大小:0,
最大输入长度:0,
高度:0,
宽度:0
},
},
},
}
接下弄这个算激活码的小程序,别人问自己拿特征码问激活码,我们就要拿个程序算啦。下面的代码是python2.7的,因为可能公众号是有点麻烦,因为公众号后台是新浪云的SAE服务器只有Python2.7的环境。如果python3的话,把 raw_input改成input就行了。
[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-
import hashlib
code = str(raw_input("请输入特征码:"))
checkcode = hashlib.md5(code + "52pojie").hexdigest()
all_code= checkcode[1:7].upper()
print(all_code)
公众号的话简单说一下,复制代码就行了吧,虽然我全部打了一遍,我也不是很懂,大家想了解可以去百度怎么用新浪云弄微信后台,我来说说个最简单的。首先的申请公众号,开通新浪云,新浪云开始好像会送云豆,其实还是很便宜的,十块钱大概可以用100天。创建新浪云应用,记住应用链接,填到微信服务器后台服务器配置的选项,然后候面要加上weixin的域名后缀,因为服务器主程序的名字就是weixin,我们要访问这个程序.记住微信后台的token,在新浪云编辑代码里面要填这个token,现在我们开始编辑代码。可以直接在新浪云点击编辑代码,,我现在把自己的代码修改一下,想弄的可以直接在新浪云上传我的代码包修改自己的代码一个位置,在微信提交自己的微信服务器配置就可以用了
代码上传在附件,更改主程序的weixin.py里面的token 为自己微信公众号的token,可以直接下载下来上传到新浪云,在新浪云里面修改,也可以解压然后在pycharm修改,再打包上传,建议本地解压修改,可以查看错误,还可以用github,自己研究啦。本地调试一定要用python2.7的环境,因为我的微信公众号还有很多功能,删掉了,如果出现错误可以回帖反馈,最好是,在新浪云的应用中心的日志中心查看调试日志,会显示代码哪里有错误,python这门语言一定要注意符号和缩进!!!
==================================================================更新=========================
有些同学表示不会用py,我马上写了个按键精灵的app,采用按键精灵动态控件
上成品截图
把下面代码直接复制到按键精灵生成app就可以了源码:
[Asm] 纯文本查看 复制代码
Dim Tcode,code_l
//按钮点击函数
Function 激活码
//获取上个窗口的输入框的内容
Dim code= UI.GetValue("激活码")
//控件值为制表型,所以要加键名["激活码"]
ShowMessage code["激活码"]
code_l = UTF8.Len(code["激活码"])
ShowMessage code["激活码"]
//判断是不是有输入和长度
if code["激活码"] and code_l=6 Then
code=Encode.Md5(code["激活码"]&"52pojie")
Tcode = UCase(UTF8.Mid(code, 2, 6))
TracePrint Tcode
Else
Tcode = "输入有误"
End If
ShowMessage Tcode
//创建个新窗口
UI.NewLayout "此窗口显示激活码", 1
UI.AddEditText "此窗口显示激活码", "文字框", Tcode
UI.AddTextView("此窗口显示激活码","文字框","单击继续按钮复制特征码")
//单击继续按钮复制特征码功能的实现
Sys.SetClipText Tcode
UI.Show("此窗口显示激活码")
End Function
//创建获取特征码的窗口
UI.NewLayout "获取激活码", 1
//在获取特征码窗口创建输入框和按钮
UI.AddEditText "获取激活码", "激活码", "此处填写特征码"
UI.AddButton "获取激活码", "生成激活码", "生成激活码"
//按钮绑定生成函数
UI.SetOnClick("生成激活码",激活码)
//展示窗口
UI.Show("获取激活码")
|