钉钉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,大功告成

猜你喜欢

转载自blog.csdn.net/xhzth70911/article/details/91504770