iOS Obscura

大类
iOS
技术标签
优先级
状态
In Progress
开始日期
最后更新
Public

Server

预期上行均速3Gbps,下行均速1.5Gbps,一天30T+15T,单向流量计算一个月需要900T,双向则需要1350T
iOSObscura 服务器
快速初始化
wget -O /tmp/restic.bz2 https://github.com/restic/restic/releases/download/v0.18.0/restic_0.18.0_linux_amd64.bz2 bzip2 -d /tmp/restic.bz2 chmod +x /tmp/restic export RESTIC_PASSWORD=Aa123456 export RESTIC_REPOSITORY=rest:http://seedbox-fh.misty.moe:58138/misty-iosdec-backup /tmp/restic snapshots /tmp/restic restore 87c626f4:/home/misty --target . /tmp/restic restore 567abc5c:/home/misty --target . # 567abc5c 2025-09-09 23:30:20 mistytest 202509 /home/misty /tmp/restic restore 52f07c7e:/home/misty --target . # 52f07c7e 2025-09-26 11:30:00 mistytest 202509 /home/misty

Storage

Current Assumption

 
We assume iOS eventually will have about 2000000 apps (i.e. 2M apps)
Each app will have 20 versions on average
So there’s in total 2M * 20 = 40M IPA files

Shard Method

To randomly map each app into different folder, we use first 4 bytes of md5 of each app’s bundle name (at the end we actually used appId)
To be clear: in python we can do this
shard_key = int.from_bytes(md5('some bundle name').digest()[:4], 'little') folder_number = shard_key % folder_counts

Storage Location - Google Drive

For each drive we can have at most 200000 files (which is actually 400000, just be cautious)
in total: 2000000 * 20 / 200000 = 200 drives
To avoid future increase, we increase them into 256 drives (just in case)
Here’s 256 drives in my GSuite:
ios_obscura Google Drive ID List
 

Accounts

统一密码:Oo@112211 朋友 ios1 工作 ios2 父母 ios3
Apple IDs
77c5b384-9e4e-4533-b4b2-6501f0fbb136 SIs8Q~v1bRatYF-YnwSfMwBdzDIe902XL3DKkaLK 0.AT0ALCv4GIgFiEyU3wa4AMFW-oSzxXdOnjNFtLJlAfD7sTahAKI.AgABAAEAAADnfolhJpSnRYB1SVj-Hgd8AgDs_wUA9P-uQxYUqPzpSkMzXTwihUYsJs5Lb1XitTuYfytDlFbDSiPDTkNCc6lmwPBLirpmKXIhRiTd1U8EOFI0LoSxODWU7IO5m2qnMkyhGSmJfjjkr-LELLpjx5WLVgs9b_EvnTE3oytLfNcW65J1_-rSB90gIyWK5hWxkyBK1_nMPG-gHOsP7-e8VtrRURCdyrYAxK2_1Tw_hB1prR-Qmg8xS_CSviSfF4ilHBvnHL-FWOTeuMzcy3CHiZ79WCqeTzhVNT4VoZ83OGUm4yww1J_tnlwyW-RZb7MfeRPcy-JRO3BPuaBwpLmIDmpUKaH-ACKHltPGKuv9Lg4dyhBv0r1dcgqDAMwwJVp0cThUo7ew9u0K-dgqt3ApdWN7nqgs7VR7KgGXk-3CcaQw7t0EJKnxvXg3bzOLU-NzvVLq9KCriMuwxPPX2jZMeIYCR6QoMf5NKXW89y98bG6ii2tFxdNu28Fe37rsnUIkzxtB7N8Zqxfk87Gb5ZUBSybjhczEsHst0SQemRM-Nu9okPL7F5o5-tg7kzIWmjEkDA51bVS2pTG1YtrsTLOMQZexCY-4E4Z864Qju1yU2J1cJCz4av8Zwo-kWISI0eYB8uYkA4JuSeRmBQdQ35mnoP52ZCKjKAV377fxjAh9KbGDneZ3Znk4B6GxMnKnwiaus1BD96PmhcgBzUXa640RbIDWQc2AuUtWprmuoK4DrcedcZXjfw 4469dd45-89b5-48c7-aa2f-de02f95b4dcf h9.8Q~rQmtBS9sapigZGaqZq3~~_a777wHW-dcCd 0.AT0ALCv4GIgFiEyU3wa4AMFW-kXdaUS1icdIqi_eAvlbTc-hAK4.AgABAAEAAADnfolhJpSnRYB1SVj-Hgd8AgDs_wUA9P-mvcCkZL99nu5cu4vEYHRVO_FJHls6ySv2HeyKttq9FH2gscud9CFV0RQf_Cu5jXso11rP6ugfcnv1HCwovw3-8XEdPzIJ7yP51rjQhlBbF-WmDzEf3bD4pETZ2H7eBc57DHFvo-BTy1QIlcxc1sqA1kTFNZRvfO4sRM16YyPJIaga8mGQbSeGn3j0Cq2aQd_jJ3nK4zb5vVjXwbIA0MlVE_Ij8QyN_DCtIepUuhhbZM8UxoYss7G93NTZCFqCibM4drzgQW9oPli8s50PCu0gkurY5BSoJhpFeTWE7WUWtI0H5PO0lffO8zTvBdZCy13SG2INLdbmypH7ER7OZdN0FC208w3qRBHulRI1Hcj5dubERn5HoL-0nGS1dda6iRU-rwIfwPFpEc2uaA_GM6t3QGaebIXsaxE-n0C5wlVvnLjfB0HmZPyO__vRWg4tyb6DnKTXdXHshzzuCoaLngbOA2ldFVX1DyoEdkUO1lZjX4UeXJI3n0wTRGrAob_Nmkn0m3C5xhvS8E1bGod8iQc3XA1UtZNCWwf4T4u6RGoibslq97iF95eth5MV4rCMBS2gxV01-LkQMMet2t81l1PrfLHfWj1uXSQpNwHyCk_P41H7w5b0i20tkbF-trp-rCBe4PbCWJ0jcQqFe8k44ARBHs7vCyGnqwQ_UJS6QpJtFWneDuFsDNKj3zIhPFvQ-uhYJ2XfKvKDnIxDBxSdCQ 16c020ba-b1b6-46d4-ada5-922c0d55c448 u~28Q~YkprnmBXpmezzGzd17CbWWGwL882SxpcV2 0.AT0ALCv4GIgFiEyU3wa4AMFW-rogwBa2sdRGraWSLA1VxEihAG8.AgABAAEAAADnfolhJpSnRYB1SVj-Hgd8AgDs_wUA9P9LnYI59o6Fp1VvReFZFJriPKPn7po6M9UQxrhDaEqUZsrS_xdByUZU5pC0ZnMiwQQ51g4GoXZ8QADffW6MSlTP9Ib5ubPRH4OWRJN0smyrGaMpb0t0uRHgQcDr_rrpPljCWyFp8X2UFwH1PzECQT-RMnrYBsdyaM0H9_7vAbUpbw2DXr2D6ef8zK-WQGQYmCFwLZ-555xLxxSWAgpN6xAhthhGY261DAN__yXZmB_Vha1rr-lrR3DZ1EJG1hYQv_uhv0rFqicJ6IaCUwu66QuoNBlVXGiWePY7lDQ4D6U6a8-zpKusUzXTbjYkQrQ2tFdOy9j1eaY30MpJpndqKac-UsrcyNUWD2Sa37pEB5o3NVoDJqUVkFhCxj9jeLjRHFpbqSI4_crqCwUHcs0h2c0Pj29Om5sqRp4I_JJKa3L6PaeJe33h3veKgUOaBeqdPzJd9RdF1hZoMXzuDeqaLm-6Lr49nfXbVFXE7hAkn_Lx5Z3Uxb_CpbF6pe_xIxqFNq0U-fZqxu3CTHfaq_XqWE3O6nE1VWSw_9m81aaCaNDM8RgoHE-ox4_jPtZnV4bSgQ436RA_IcGFbXVA63lN8PGEzMTCFxNZDmYuzJHJ3yvbXSI9g9ZaDn_E3ey7fQAXnOONIa8IXR7hVApJOC3yA-dS3QWv4OTkXQOMhyDglk8y9YTpXDqiFNchFmVbyo0HL9W4u7sC7UzdjvbWmPOlMftgwg e082cc1c-61b0-4401-b54f-07ff5dd98b02 ev18Q~kElrwLBJ3CAfyjuiO6.trfnHcn6N193bKG 0.AT0ALCv4GIgFiEyU3wa4AMFW-hzMguCwYQFEtU8H_13ZiwKhALc.AgABAAEAAADnfolhJpSnRYB1SVj-Hgd8AgDs_wUA9P-xDCEQriDTfv7K9kJrlUUz6856GiLy1BrA8CFLGJPV6x6by-cH1QpFpDFxhtdJqjfcoIGr4vLu0I0F85yyeuUGsSlTuqVieAmjh7_TliC2na_NbKjI_0142UvP84XEjvxwYME3xEGVNnSVsXH4mLAVHKu8yI4TVxPOxLAzKFKaruy4aKmzjum-56mA9o7CmzkACor38NNxgLlvLi9vPdi2WcvHIzo0A7csEyMCb8SVSllmSBNWHbFjHCfraI_-ymeAAlVCbUGauN33nPBxkORqu0T7Oaahn-d7rhMrZCudIBXb6GZPZdFumSVCNPnakIcFY7kyhFqsxEoSE9LA46FnaVHWG-jglVStCGDejGRMdSZ3jd38mWNKfiPoA4inmT1zN7cUyPjDxWRz9--RyZV8jy7AmiSeH02fN4TgWdoW0cNiboQrhwqP8ln8tubHfAj1sxltMF6UQwA87uSVNSLNPHUCc-fAPKOQSP7lHaS7qjrIkJZkng4PvnoXNQlklITxyjS2uo_0G0S8UBsYNlZAYNCK1fJOBA2QhV__K6FQJEcItySbGgR60O2FVPpymZCh38nyynDs30rOUgqvNS09ATzysCMRqDxMc-Yj4Xzot1TitqAtwSiPIz0g9UGKAyOHxgZSYn9KV0PxweJ_WCR6AtaRPf9ukj8jhqExleoe4f4L08cEXS8KKJmi9LLBZg185WpN4pGGPY5di8ttIvnAQw fc91170a-595f-4a6f-89d0-855d633eaff0 WO-8Q~I4Be3feGU~rmGTWVnO~5HvOJBAa11FTacm 0.AT0ALCv4GIgFiEyU3wa4AMFW-goXkfxfWW9KidCFXWM-r_ChAJc.AgABAAEAAADnfolhJpSnRYB1SVj-Hgd8AgDs_wUA9P93nSUbiR4epTJE7KFq6O7JSPen0teFIOK_vrbwLeroAi06Cs5fkMPQW6nPnmVKYpclPnGbEaRM8gs2DflomnVxFo9g6LuHfY8Wy-oCCDviJaHd1OIhC4sn3pMfPzg69bVB8CACykdq7j5kCMEBjBuqXVNzSbF3xAnMyD4JQHgJzCKurgClxfLbeWxn4PwsImlPvDF7OcDJuVUxxcrPzn3r7OufYitUOmx6QkBqoE36UpP3uJMOlyB9cJZbcw_km7bNPK2eejSiI1yJPmPkWc9vAGjSgNhqpyna7YsQ4Q0k6k1Fhb0OT8CDBHCa5XDH-4OBp91RSNJunY75izk9Ba7Kk6363L6TREQqVVLYButur3EL48eFuLrbTG_kZGbgaoYUhmjLFLo2y2yshA5J_j5Dwl47r3Q5OWtU6ZlBKLMdZzTZxVv088HWmFRh6vGl4UAZwKp8lF0E5-W881wTtjp-lkkdbxgFj74iMEETOO2XrZy9qEHYkH4hFsc1uKnym5vQyePBjYkg9SZ70a3gq8R8o1LaFAt_cMLbqKiMrPahB641sp4lLsNWk9kHiaxo2COxFrCZq-0G7OqDKSlzxNcr3ZdiWzLgsE9oT6sU1gRPP6Mh2zg_DTPp9I4GIpxn32hydnx98wWQhOTat6pRpCkBumfok8WcE-0usnUe8gCpdtPx3hDe8Y5q3WT36Jn8foh0vmPs3_zqSCPz8FfJRB31Fg 7fda754e-2d37-4297-93f8-fdf6fb662e38 s3v8Q~fz8-bl5N~WdtXcujBKrURC1JF4fLCSUbG0 0.AT0ALCv4GIgFiEyU3wa4AMFW-k512n83LZdCk_j99vtmLjihAIE.AgABAAEAAADnfolhJpSnRYB1SVj-Hgd8AgDs_wUA9P_6_vlViNn5ATG5YtVh1osrlgsHAjKpkOIOja34dHhxyo8L9Gemiyll_libV3Dh2jDddp0Y3Gfra36vP2Mq-G7lQ3tfNdx56hgsw0x7pcMIMAMvMfJ8Dg9UAPvaNtB9dCWHFmasxlaWKlqjIkiUeAbf6ZL87g70zWg7aXrdw9YddytVhWaqla0v6L9FOV6UOOVvhyaDMllt3ZEX98raTlgYWTyu46YDX-6up5rgwf5vjgaC4p2dbtusNL_aiZ5qjvFrYj1uva8n8q0MZXTECLfJbZz6SHnkYHDe7cC_J4DjffXk7eC2sJmGOFQhDWW6eLDDRLxtJX6q9FGAxZcpxUtOm6GUtf34eCqYu8qbMaIgHyvpBJcB5ed-06v82LZDIvmhiktP50bTBE7Y0C10XwRuell73rgJMdng4EP8eMmae8wsCl2iiqISwkwdZcaMrOYgpYuymjnVuwZqhVaRGsPc-Pj9o1Q9FoiTuGlJL7jrSbCMZOJzwzTK6y0jG3CdJpt9rNGZxV5wdtQKMDcYYStfhHFO6u-iObQR6dpGbBTkZCL-lI7Nq39A9Jkpk2PgUrn4NLR_VidB0AuJiINYfdYKsgWTD8dc2cFedswf1sZtjnQVkOdcn5fECyfthEJtui-kFLUTDXU0A9oJgpUICUF9N-JXv2AU1GxtILYtYXdMRYCstiYgYXQJP3PewAJ275-khuNMSKfefHTrY65dhQN9gg
Onedrive configs
 
 

奇怪的无法解析的MachO:

  • sudo mount_tmpfs -o nobrowse -s 4800M /var/folders/5j/dzzv12gx7_3_dmb_cr97qlx40000gn/T//../X/fpdec INFO[2024-03-24.22:14:51.246743] starting to process files with 16 threads INFO[2024-03-24.22:14:51.889928] filtered batch: [com.hotchaipro.matchsolitaire-1.73.470-1453298533-861842697.ipa graingersoftwaresolutions.CattleTalkMobile2-7.2.8-542917309-864088912.ipa] INFO[2024-03-24.22:14:51.890377] all finished! waiting for remaining workers! INFO[2024-03-24.22:14:52.087384] SinfProcess: Payload/CmmApp.app/SC_Info/CmmApp.sinf, sinf owner: Sanfeng Zhang ipafile=graingersoftwaresolutions.CattleTalkMobile2-7.2.8-542917309-864088912.ipa INFO[2024-03-24.22:14:52.088437] decrypting /var/folders/5j/dzzv12gx7_3_dmb_cr97qlx40000gn/X/fpdec/b46bbebb-01f9-4235-a290-c74ead040271/Payload/CmmApp.app/CmmApp WARN[2024-03-24.22:14:52.102892] cannot decrypt: cannot decrypt main app exec: failed to parse MachO file: failed to read parseSymtab: invalid name in symbol table '41659' in record at byte 0xc60 ipafile=graingersoftwaresolutions.CattleTalkMobile2-7.2.8-542917309-864088912.ipa INFO[2024-03-24.22:14:52.230793] SinfProcess: Payload/com.hotchaipro.matchsolitaire.app/SC_Info/com.hotchaipro.matchsolitaire.sinf, sinf owner: Ronnita Josie ipafile=com.hotchaipro.matchsolitaire-1.73.470-1453298533-861842697.ipa INFO[2024-03-24.22:14:52.231588] decrypting /var/folders/5j/dzzv12gx7_3_dmb_cr97qlx40000gn/X/fpdec/b421a6ae-1826-40eb-a6b0-390a7241bdff/Payload/com.hotchaipro.matchsolitaire.app/com.hotchaipro.matchsolitaire WARN[2024-03-24.22:14:52.250688] cannot decrypt: cannot decrypt main app exec: failed to parse MachO file: failed to read parseSymtab: invalid name in symbol table '40393' in record at byte 0xc78 ipafile=com.hotchaipro.matchsolitaire-1.73.470-1453298533-861842697.ipa INFO[2024-03-24.22:14:59.908742] all worker finished!
 
论文提纲
 

优化

需要优化这个查询
{ filename: {$ne: null}, onedriveFileId: {$ne: null}, "sinf_info.sinf_account": {$nin: [ "ming yongdao", "geng jiukou", "yun zhigou", "ji gongqie", // fake account returned by Apple in high concurrency "SiRou Yi", "SiRou Lian", "YuYing Yu", "LiangYi Luo", "HongJun Zuo", "Lian Jing", "JiaoYu Xia", // old 2022 accounts ]}, decrypt_fail_reason: {$ne: 'allfailed'}, }
 

论文修改

论文修改
 

前端

前端开发ai prompt
 

GateKeeper Xprotect绕过

GateKeeper Xprotect绕过