抓包查看更新请求
- 绕开SSL验证
- 选择PythonDownloadProvider更方便绕开ssl pinning
GET https://master.binary.ninja/expiration?serial=3c4a150cfed23bafd004b96a453a852a
{"ok": true, "message": "License valid until Tue May 16 2023 16:13:59 UTC+0000", "data": 1684253639, "date": 1652762123}
GET https://master.binary.ninja/update?product=Binary%20Ninja&serial=3c4a150cfed23bafd004b96a453a852a&key=51b6a10a7751e746aa9771e12b1e08fb4a83371c9756b5f859f247284786c1ce2a1d961d7973e66b53f8fa8b80b66da12f743ab710e780b2dae4ccfa310d49d260f60a037bd5f182177e983fbccc827ab0615079c7a6b3d800be10c636d1876102e0bf944813044d9b2098eba513420e8dfd722085c9053d2923fef8575df9438e6fe4018ea671fd49c2f2ee9b2c700a6c74fae0bb94cb6aa66b863c4855c8e9def5c819cc93cd73a5160faca5ba2e1feb29e4afa3ac989966880a3ecfe1ed37d95d6159296ad7b0cdd357e7636fdbf9266fce013dde2461e253f2d688b4006fee24a71e7d096bad78aac68958fbad6d83b5b011c8dfc96d432de4ad3de456cd&version=3.0.3233&platform=windows
{"ok": true, "keys": [{"name": "binaryninja-v1", "key": "c5e7e09c50e5d5951141e1a635636f76", "sign": "30820122300d06092a864886f70d01010105000382010f003082010a0282010100adfbdb876bdc7b7e7116550636f6abcdc8292d3cc6e60a22541a94423fa5b835834f1bda1047d661cd3e9d2833acd24b567eceb84e0876a99aa42279822ff849619328b07402def6160d9839fb7e7018576b9286261cab58c6ed9ccca520c52c0e3ec9582da092dbefc4fdc2571f99a7be3af9c1c577e3152054fa70afe696cf8b51b28d53ef1c7421f2c4c56e5a9bf674a0bb8d47b899cf76ce98f6b58a849c9c00eaac727574203757bb56a1f4f34c920151e3584012604d3ef0af979d6b90c97ed470b3c3a4fb39b6c7f333974a800948af40ab16c7139456817ae0696f77d16a0edb36a23608464fb96b789cd9de4be5227be63e216098ef5d12831be0590203010001"}], "url": "https://cdn.binary.ninja/"}
GET https://cdn.binary.ninja/manifest/binaryninja-v1
GET https://cdn.binary.ninja/channel/release
解密逻辑
更新思路
- patch更新服务器地址为我的(bn.misty.moe:2053)
- mac下patch后使用ldid -S -M签名即可运行
- linux下需要patch inline的stack string
新需求:还原回更新前文件
- 我们是patch了之后sign,因此会导致文件的patch位置与签名位置的数据变化
- 直接对比文件不可行,因为文件实际上是由两个FAT arch拼接而成,签名后数据变化,第二个Slice的位置也相应变化
- 方案:使用脚本解析FAT arch,针对于每个FAT arch分别进行比对,按照Page,将数据变化了的page的内容、偏移、大小存储在末尾,作为overlay。