前言
这几天抓某APP的api_sign时,jadx_gui搜索了一下字符串,发现全部被加密为类似Base64编码了,但经测试,字符串是使用StringFog插件加密后保存的
跟进看了下,是原生StringFog的Base64加XOR,方便调试,就用易还原了一下
作者的github库,反代后的github库
截图
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 临时字节集 | 字节集 | |
临时字节集 = 编码_BASE64解码 (编辑框1.内容, )编辑框2.内容 = 操作字符 (临时字节集, 编辑框3.内容, 真)临时字节集 = 到字节集 (编辑框1.内容 )编辑框2.内容 = 操作字符 (临时字节集, 编辑框3.内容, 假)|
操作字符 | 文本型 | | |
待解密字节集 | 字节集 | | | | 密钥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编码 (返回字节集 ))
|