钉钉GPS远程打卡
1.现在很多朋友遇到这样的困扰,一个月中总有那么几次,堵车,然后迟到,扣工资。 本文是帮你解决 钉钉GPS远程打卡。 让你以后再也不会迟到了。
2.源码已经上传到 Github :https://github.com/xhzth7091/DingTalkOnlyGPS
3.hook定位打卡,最简单最直接的就是直接hook APP的定位功能,这也就是要实现虚拟定位,因为钉钉的打卡页面是H5的,那么势必要调用原生的定位,那么肯定用到了locationManager:didUpdateLocations,在Hopper里搜索一下:
4.然后把搜索到的方法,使用Theos,全部hook一遍,例如:
%hook AMapLocationCLMDelegate
- (void)locationManager:(id)arg1 didUpdateLocations:(id)arg2 {
%log;
%orig;
}
%end
5.然后打开控制台,在钉钉里点击考勤打卡,然后注意控制台的输出,看哪个方法打印出来,最后打印是AMapLocationManager这个类
6.好了,那么就可以下手修改我最终的目的 定位的经纬度,下载MonkeyDev 以后,创建一个新工程,把脱壳以后的钉钉的放到工程里,把下面代码的经纬度修改成你自己的经纬度:
@class AMapLocationManager;
CHDeclareClass(AMapLocationManager)
CHOptimizedMethod2(self,void, AMapLocationManager, locationManager, id, arg1,didUpdateLocations,id,arg2){
CLLocation *location = [[CLLocation alloc] initWithLatitude:纬度 longitude:经度];
arg2 = @[location];
CHSuper2(AMapLocationManager, locationManager, arg1,didUpdateLocations,arg2);
}
7.bundleId改成com.laiwang.DingTalk,不然运行钉钉,会弹出非法客户端弹窗。钉钉应该是对bundleId进行了检测
8.由于钉钉包有270多M,所以没有上传,钉钉版本是4.3.0,大功告成