网站首页 > 技术文章 正文
大家好,我是公众号3分钟学堂的郭立员。
下午一个群友问我怎么破解别人的脚本源码,我说我不会,那他又问界面源码呢?我说这个可以。
其实界面的代码没啥,就那么几个元素,直接模仿也非常简单,但是既然说了“破解”,那么我们就不用临摹了。
说到“破解”那就要找到存储界面代码的文件,打开脚本的安装目录。
“/data/data/”+包名
打开这个安装目录文件夹以后,找到files文件夹,继续打开,为啥打开它呢,因为经验,以前研究界面保存配置文件的时候,知道这个files文件夹是存界面的,所以直接看看这个文件夹里都有啥。
一堆和脚本相关的文件也不知道干啥的,用读取文本命令挨个读一下。
Import "shanhai.lua"
Dim path="/data/data/com.uiconfig/files/"
Dim content=shanhai.execute("ls -m "&path)
content=Replace(content," ","")
Dim arr=split(content,",")
For Each k In arr
TracePrint k
TracePrint file.read(path&k)
Next
代码是遍历每一个文件,然后用file.read命令读取文件的内容,读取的结果如下图:
图中看到有多选框1、多选框2的配置文件,script.cfg,和界面截图是对应的,但是它不是界面源码,仅仅是保存界面填写内容的配置文件。
在上面的图中我用红框标注了一行输出结果,为啥注意到它呢?两点原因:一是看到它是script.uip,看后缀名应该是和ui界面相关的。
二是在看输出结果的格式,里面有很多花括号{},这个也和界面源码很相似。
有了想法以后,来解决乱码的问题,按键的乱码要么是加密、要么是编码问题,看问号这么多,编码错误的可能性比较大。
按键支持的编码就是utf8,我需要把这个未知的编码格式转成utf8。在命令库里面找到转码的插件,先试试看。
插件命令自带的例子是gbk编码转成utf8,就用这个例子测试一下。
Import "shanhai.lua"
Import "iconv.lua"
Dim path="/data/data/com.uiconfig/files/"
Dim content=shanhai.execute("ls -m "&path)
content=Replace(content," ","")
Dim arr=split(content,",")
For Each k In arr
TracePrint k
TracePrint file.read(path&k)
TracePrint iconv.Transcoding("utf-8", "gbk", file.read("/data/data/com.uiconfig/files/"&k))
Next
测试结果非常让人满意,蒙对了,代码还是用的遍历文件,顺便看看其他的文件有没有需要转码的。
把调试输出结果复制到文本中~
确实是界面的源码,然后粘贴到脚本界面中,看看效果。
效果不错,连格式都还在。
整个过程,我好像遗漏了一点,就是关于包名这部分,测试的脚本是我自己写,所以我知道包名在代码中直接用了,但是如果是别人的脚本,就未必知道这个包名。
这里需要自己获取一下包名,也简单,打开脚本界面,然后运行下面的代码:
TracePrint Sys.GetFront()
为了方便,把包名这部分也加入到脚本中,然后去掉遍历部分,直接读取界面文件。
Import "shanhai.lua"
Import "iconv.lua"
Dim page=Sys.GetFront()
Dim path="/data/data/"&page&"/files/script.uip"
TracePrint iconv.Transcoding("utf-8", "gbk", file.read(path))
好了,现在代码就完整了,就这些内容,喜欢的帮忙点个赞。
猜你喜欢
- 2024-12-28 3步教你,百度网盘下载不限速,比SVIP速度还要快
- 2024-12-28 魔兽怀旧服,重复交任务宏,冲声望必备
- 2024-12-28 「安卓按键」怎么让脚本可以领取免费测试卡
- 2024-12-28 写作4年挣50万,推荐6个新手容易过稿的投稿平台
- 2024-12-28 黑客大神用什么杀毒?Windows自带的就够,只是加了亿点微小强化
- 2024-12-28 微软阻止第三方下载 Windows 镜像?
- 2024-12-28 B站视频下载详细教程 b站咋样下载视频
- 2024-12-28 从0开始学习Jmeter脚本编写 jmeter打开脚本报错
- 2024-12-28 网站渗透总结之Getshell用法大全 网站渗透技术
- 2024-12-28 如何通过C脚本在WinCC画面中的“文本”不再那么单调?
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)