基于MonkeyDev实现不越狱修改钉钉位置打卡和签到
本文将介绍如何基于MonkeyDev工具实现不越狱的情况下修改钉钉应用的位置打卡和签到功能。MonkeyDev是一款强大的iOS开发工具,它允许开发者无需越狱就能对应用进行hook操作,改变其内部行为。我们需要按照以下步骤安装MonkeyDev: 1.可以参考以下教程安装MonkeyDev: - [简书教程](https://www.jianshu.com/p/8ecbafb8abc0) -或者访问MonkeyDev的GitHub仓库wiki:https://github.com/AloneMonkey/MonkeyDev/wiki第二步是获取砸壳后的钉钉APP: 1.如果没有越狱手机,可以通过PP助手直接下载钉钉的ipa包。 2.如果有越狱手机,可以使用Clutch等工具对App Store上的钉钉进行砸壳。具体教程参见:[简书教程](https://www.jianshu.com/p/979fe886e28e)。在这一步中,确保越狱手机已经开启了SSH通道。接下来,对砸壳后的钉钉进行hook操作: 1.使用Xcode创建一个新的MonkeyApp项目,然后在Finder中找到该项目。 2.将通过PP助手下载的ipa包放入新建项目的目标APP目录下。 3.针对非越狱的iPhone设备运行项目。由于Bundle ID不一致,首次登录会失败。将项目的Bundle ID改为"com.laiwang.DingTalk",再运行即可成功登录。 4.解决权限问题:如果Xcode提示无法打开文件,需修改`info.plist`中`Executable.file`的值为`$(PRODUCT_NAME)`,然后清除并重新运行。核心的hook操作是在项目中的xxxDylib.m文件下进行: 1.我们首先尝试对苹果的CoreLocation框架进行hook,以修改钉钉的定位信息。然而,这种方法并未成功。 2.接下来,我们使用class-dump工具分析钉钉的ipa头文件,发现钉钉使用了高德地图服务。了解到高德地图有防止虚拟定位的机制,其中有一个`detectRiskOfFakeLocation`方法会检查是否使用了虚拟定位。 3.对`detectRiskOfFakeLocation`方法所在的所有类进行hook,尝试绕过高德地图的检测。以下是部分hook代码示例: ```objc //省略其他类的hook代码... CHDeclareClass ( CLLocation ) CHOptimizedMethod0 ( self , CLLocationCoordinate2D , CLLocation , coordinate ) { return CLLocationCoordinate2DMake ( 22.5955580000 , 114.0056150000 ); //设置目标地理位置} CHConstructor { CHLoadLateClass ( CLLocation ); CHClassHook ( 0 , CLLocation , coordinate ); } ```请注意,hook方法的具体实现可能会因为钉钉版本的更新而需要调整。实际操作时,请根据最新的钉钉版本和头文件进行分析和适配。本文介绍了如何使用MonkeyDev在不越狱的情况下修改钉钉的位置打卡和签到功能,主要涉及MonkeyDev的安装、APP的砸壳、hook技术以及对高德地图防虚拟定位机制的规避。这种技术虽然可以用来模拟位置,但应当注意,擅自修改应用程序的行为可能违反平台政策,甚至触犯法律,因此在实际操作时需谨慎对待。
4.87MB
文件大小:
评论区