安卓按键精灵-通过谐音字的方式来防止平台屏蔽

这个案例来自于VIP群友的问题,问我能不能把数字自动换成谐音字?看到这个问题我猜测是为了发联系方式,又怕平台检测到,所以用谐音字代替。

比方说,QQ:1131121634 可以写成企鹅:

通过这种谐音字的转换,平台检测不到多位纯数字,减少QQ被检测出来的可能性。

前期需要准备一套谐音字库,用来替换数字使用。

通过谐音字的方式来防止平台屏蔽

接下来说一下原理:

  1. 把连续数字拆分,逐一读取得到单个数字。
  2. 匹配每一个数字对应的谐音库。
  3. 从匹配的谐音库中随机提取一个。
  4. 将所有的谐音字组合在一起,形成一组数字谐音。

我在编写这个脚本遇到的一些问题,初期群友是想把谐音库放到数字里面。

通过谐音字的方式来防止平台屏蔽

这种方式在思路上是可以,但是在编写的时候发现,代表不够简洁需要调用10个数组,加上变量名又不支持 i+数字这种拼接方式。考虑了一下换了另外一种方式,把谐音字库存在表中(二维数组)。

Dim arr={{“零”,”澪”,”玲”},{“一”,”壹”,”伊”},{“二”,”贰”,”弍”},{“三”,”叁”,”彡”},{“四”,”泗”,”肆”},{“五”,”伍”,”忢”},{“六”,”陆”,”溜”},{“七”,”柒”,”漆”},{“八”,”捌”,”扒”},{“九”,”玖”,”氿”}}

TracePrint arr(0,1)

TracePrint arr[1][2]

通过谐音字的方式来防止平台屏蔽

对于这种二维数组,有两种读取方式,一是数组读取方式就是arr(0,1),二是表的读取方式arr[1][2],两种的区别是数组的第一个内容是从0开始,二是表的第一个内容是从1开始。

这里我选择数组的表示方式,因为0如果用表的方式表达就是10了,而数组可以用0表示。

通过谐音字的方式来防止平台屏蔽

有两个容易犯错的小细节:

  1. 由于数字的个数不确定,用到了len命令,但是数字不支持,需要先转为字符串 cstr(数字)。
  2. 考虑到谐音库未必都是3个字,我在编写的时候先读取一维数组,然后获取数组最大下标来来确定有几个字,然后把字数赋值给随机数命令。

 

赞 (0)