本帖最后由 yuren0 于 2022-12-4 14:57 编辑
前言
这几天抓某APP的api_sign时,jadx_gui搜索了一下字符串,发现全部被加密为类似Base64编码了,但经测试,字符串是使用StringFog插件加密后保存的
跟进看了下,是原生StringFog的Base64加XOR,方便调试,就用易还原了一下
作者的github库:https://github.com/MegatronKing/StringFog
截图
关键代码
.版本 2
.子程序 操作字符, 文本型, , 加密和解密都是采用base64加XOR,所以直接一个子程序可以搞定
.参数 待解密字节集, 字节集, , 待操作的字节集数据,不管解码还是加密,都是先转为字节集
.参数 密钥key, 文本型, , 用于加解密时的密钥key值
.参数 解码方式, 逻辑型, , 决定操作方式,为 真 则解码,为 假 则为加密
.局部变量 v3, 整数型
.局部变量 I, 整数型
.局部变量 i2, 整数型
.局部变量 返回字节集, 字节集
.局部变量 len, 整数型
v3 = 1
i2 = 1
len = 取字节集长度 (待解密字节集)
返回字节集 = 取空白字节集 (len)
.计次循环首 (取字节集长度 (待解密字节集), I)
.如果真 (I > 取文本长度 (密钥key))
i2 = I - 取文本长度 (密钥key)
.如果真结束
待解密字节集 [v3] = 位异或 (待解密字节集 [v3], 取代码 (取文本中间 (密钥key, i2, 1), ))
返回字节集 [I] = 待解密字节集 [v3]
v3 = v3 + 1
i2 = i2 + 1
.计次循环尾 ()
.判断开始 (解码方式 = 真)
返回 (字节集_到文本 (返回字节集))
.默认
返回 (编码_BASE64编码 (返回字节集))
使用了精易模块
下载地址
链接:https://yuren0.lanzoue.com/i7BBU0hqrb8f
密码:52pj |