逆向TikTok破解锁区案例源码(支持重签名后登陆)
我是陈晓 · 20浏览量 · 发布于2020-11-15 +关注

作者378804441,源码DWTikTokHook,早就略有耳闻TikTok会有锁区,结合一些 知乎上的文章 如 : https://zhuanlan.zhihu.com/p/181691137

某宝上tiktok电话卡 还有在某宝上贩卖的TikTok国外电话卡就能基本确定,TikTok就是通过获取 MCC(移动国家码)和 MNC(移动网络码) 进行锁区的了。 整体思路定了,就开始着手开始搞起。

先获取一下本机的 mcc,mnc 码看一下

获取的结果 然后度娘一下全球运营商 mcc,mnc大全。 (我用的是 http://ultra.chinasnow.net/opcode 这个网站查询的)

先获取的日本的一个运营商码 然后照葫芦画瓢, hook掉 获取运营商各个信息的get方法。然后用hook神器 theos编写代码并进行注入。

hook代码查看源码即可

最后发现果然这样就可以播放了

突破运营商锁区后可观看tiktok 然后我们就可以预埋一些自己想看的地区运营商的信息,扩展出一个切换地区列表功能了。 具体的区域可以自己任意预埋上去

我们还可以将tiktok进行重签名后分发给别人未越狱的设备进行安装。 但这里有个坑,那就是当你重签名 bundleId发生改变后,tiktok将无法登陆。 我怀疑他们是做了bundleId合法性校验。 然后我就对 NSBundle 的 bundleIdentifier 方法进行了hook。但每次返回回来的是个版本号,并不是bundleId。 估计他们有做了一些偏移处理。 接着找。最后定位到 TTInstallSandBoxHelper 类的 + (id)bundleIdentifier; 方法。 然后对该方法同样进行 hook处理,强制返回 tiktok 原来的bundleId。这样重签名后修改了bundleId后的 app也可以正常 使用登陆,查看留言,进行留言,关注,发帖,下载等功能了。

目前这个版本插件切换区域后需要重启一下 app,没有做实时生效功能,等有时间的把这个坑填一下。

非越狱手机注入动态库重签安装

  • 砸壳市场下载TikTok app

  • 先从自己xocde项目上跑出一个合法的 描述文件(在 ipa里面有 embedded.mobileprovision) 备用

  • 先处理一下 描述文件 (用下述俩条命令 获取 entitlements.plist)

    • security cms -D -i xxx/embedded.mobileprovision > embedded_full.plist

    • /usr/libexec/PlistBuddy -x -c 'Print:Entitlements' embedded_full.plist > entitlements.plist

  • 开始处理dylib

    • optool install -c load -p "@executable_path/TikTok_hook.dylib" -t xxx/xxx.app/xxx

    • libsubstrate.dylib 我放在 libsubstrate_dylib文件夹下了。这里有个深坑,很多上古文章推荐的 libsubstrate.dylib 很老很老了。iOS9以上 使用他依赖动态库注入的话必崩。

    • 替换动态库依赖 install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib TikTok_hook.dylib

    • dylib 目录: TiktokHookTheos/.theos/obj/debug/TikTok_hook.dylib

    • 通过 otool -L TikTok_hook.dylib 命令查看 dylib注入是否依赖着 CydiaSubstrate

    • 如果依赖着 CydiaSubstrate 通过 下面命令将 依赖路径修改为libsubstrate.dylib (越狱注入动态库依赖 CydiaSubstrate库,但非越狱手机没有。所以需要修改一下 注入库依赖 )

    • 通过 optool 注入工具 进行二进制注入

    • 将TikTok_hook.dylib和libsubstrate.dylib 复制进 xxx.app里面

  • 开始签名

    • 签名时候别嫌麻烦,所有framework都要进行一遍重签名。

    • 跨进程扩展都要删除掉 (在plugins 文件下)

    • codesign -f -s "iPhone Developer: xxx(xxx)" xxx/xxx.app/TikTok_hook.dylib

    • codesign -f -s "iPhone Developer: xxx(xxx)" xxx/xxx.app/libsubstrate.dylib

    • 需要将 TikTok_hook.dylib 和 libsubstrate.dylib 重签名

    • codesign -f -s "iPhone Developer: xxx(xxx)" --entitlements entitlements.plist xxx/xxx.app

  • 打包ipa

    • zip -ry xxx.ipa Playload/


相关推荐

flutter实现常用特效的案例效果代码

产品交流 吴振华 · 44浏览 · 2020-10-28 16:44:58
ObjectForm一个简单但功能强大的Swift库

产品交流 itnanba · 342浏览 · 2020-04-13 06:48:02
Baraba 用ARKit和AVFoundation跟踪人脸功能

产品交流 itnanba · 282浏览 · 2020-04-13 06:21:46
用分离ios AOT编译案例

产品交流 itnanba · 287浏览 · 2020-04-13 02:27:14
注册登录、判断输入框特效案例

产品交流 冷月葬花魂 · 180浏览 · 2020-03-31 16:03:03
用NSProxy实现消息分发功能案例

产品交流 冷月葬花魂 · 169浏览 · 2020-03-20 15:14:13
加载中

0评论

评论
我是一名在上海一家互联网公司上班,专注技术开发工作等。
  • 源码信息
  • 所需 1 点数
  • 源码作者:匿名作者
  • 源码大小:485.588 KB
  • 运行环境:未知
小鸟云服务器
文章月排行榜