为什么80%的码农都做不了架构师?>>>   

背景

钉钉打卡类App原理都是通过位置模拟骗过钉钉的定位代码。懒得去分析钉钉的定位功能,所以逆向了一款成熟的Xposed Plugin*钉钉打卡(dingPass)*看看它是如何做到的。

这个Xposed Plugin可以在Xposed官网上搜到。

准备

必不可少的工具:

  • jadx
  • apktool
  • 一台已经Root并且安装了Xposed的手机
  • 将钉钉打卡(dingPass)下载下来

逆向

通过jadx将钉钉打卡(dingPass)反编译为Java源码。通过Xposed Wiki可知Xposed Plugin如何编写,那么我们也就知道通过哪些关键字快速定位到关键Call,如:IXposedHookLoadPackage,handleLoadPackage,de.robv.android.xposed等。

通过IXposedHookLoadPackage搜索到了这个插件的的Hook代码:

这段Hook代码中有一部分还未成功反编译为Java代码:

通常jadx不可能完美的将dex全部反编译为Java源码,所以才会有这样的问题。这个时候就需要通过apktool将apk反编译为smali汇编,然后还原成Java代码。

找到反编译后的.smali,可以看到代码可读性非常差,这个时候需要缩窄一下查找范围,找到关键代码,搜索Java代码中出现的关键字:requestLocationUpdates,找到下面的代码:

经过分析上面的代码发现实际代码在d$14.smali文件中,进入这个文件,通过 关键字再次定位关键代码:

经过分析,r0的值来源于**d.a()**方法的返回值。

使用上面分析结果修复Java代码。

实现

新建一个新的Andorid项目,通过Xposed教程编写插件,然后将上文中还原好的Hook代码拷贝到项目中,编写完成后运行即可。

转载于:https://my.oschina.net/ibuwai/blog/3026370

Android位置模拟并实现 —— 逆向钉钉打卡Xposed Plugin相关推荐

  1. Android开发-使用高德地图SDK实现仿钉钉打卡的功能

    前 言 LBS(基于地理位置服务)是当前移动互联网大部分应用不可或缺的功能,基于地理位置服务的Android平台的开发是主要用于Android系统作为载体,我们可以利用定位出的位置进行许多丰富多彩的操 ...

  2. 怎么用python编写个apk_【android】如何利用python做Android项目自动化构建,并一键实现构建结果发送到钉钉通知以及通过二维码下载apk或者其他处理等功能...

    今天我们来谈一谈用python做Android项目自动化构建的过程.我们知道在常规的Android开发过程中,开发人员打包的时候需要在Android Studio当中进行,或者通过gradle命令,但 ...

  3. 阿里钉钉Android实习面试也太太太太难了吧,对算法的要求堪比字节

    本人研究生在读,在2月26日找了师兄内推阿里钉钉团队,28号接到了约1面的电话.幸好我提前准备了一个多月的样子,刷面试题.刷LeetCode(面了之后才觉得自己刷少了),对于我这样一个实习生来说题目还 ...

  4. android字节转m,阿里钉钉,字节抖音 Android 面经分享!

    原标题:阿里钉钉,字节抖音 Android 面经分享! 微信改了推动机制,真爱请星标本公号 公众号回复加入BATcoder技术群BAT 原文链接:https://cloud.tencent.com/d ...

  5. android仿钉钉头像,仿钉钉群聊头像的实现

    今天是七月份的上海在周末难得的无雨天气,小编原本计划继续去周边游的.怎奈何,上海地表体感温度直接飙到37度左右,太热了.与其去被烤,还不如宅在家,看看直播看看博客来的直接来的凉爽.说起博客我早就想写篇 ...

  6. android采用MVP完整漫画APP、钉钉地图效果、功能完善的音乐播放器、仿QQ动态登录效果、触手app主页等源码...

    Android精选源码 一个可以上拉下滑的Ui效果,觉得好看可以学学 APP登陆页面适配 一款采用MVP的的完整漫画APP源码 android实现钉钉地图效果源码 一个使用单个文字生成壁纸图片的app ...

  7. 钉钉微应用怎么进入_钉钉微应用如何打开本地app (Android)-问答-阿里云开发者社区-阿里云...

    老李归来 2016-01-28 10:14:09 Re钉钉微应用如何打开本地app (Android)经测试,免登认证已成功,执行 dd.device.launcher.checkInstalledA ...

  8. Java可以hook微信吗,Hook实现Android 微信、陌陌 、探探位置模拟(附源码下载)

    Hook实现Android 微信.陌陌 .探探位置模拟 最近需要对微信,陌陌等程序进行位置模拟 实现世界各地发朋友圈,搜索附近人的功能,本着站在巨人肩膀上的原则 爱网上搜索一番. 也找到一些 代码和文 ...

  9. Android项目Jenkins配置(自定义参数构建,构建完成后360加固+自动下载签名+多渠道配置,自动乐固加固+签名,自动上传蒲公英,自动上传OSS,自动发送钉钉消息,自动发送企业微信应用)

    Mac,window,unix,Linux等系统安装Jenkins服务就不说了... 直接上干货 编译后shell脚本参考 #推送钉钉群curl 'https://oapi.dingtalk.com/ ...

最新文章

  1. libgdx学习记录9——FreeType,ttf中文显示
  2. 高通Android平台硬件调试之Camera篇
  3. Python自动化运维——文件内容差异对比
  4. WCF系列(五) -- 也谈序列化(下)
  5. checkbox checked属性值
  6. python——学习笔记3
  7. 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
  8. sql 不等于符号_SQL 必备知识 - 第一弹
  9. 怎样让开源项目看起来“高大上”
  10. java鼠标左键拖拽事件_探索神秘的js拖拽事件
  11. ARM指令集(数据处理指令)
  12. 矩阵乘法c语言 2*3,2*3和2*2矩阵乘法公式
  13. python打印日历_用Python打印某年日历
  14. Qt之Q_OBJECT
  15. php进行Markdown解析
  16. python交易是什么意思_py交易是什么意思 py交易是什么梗
  17. 洛谷P2664 树上游戏 【点分治 + 差分】
  18. Java秒杀系统实战系列~数据库级别Sql的优化与代码的调整
  19. 数据挖掘十大经典算法(详解)
  20. Docker指定网桥和指定网桥IP

热门文章

  1. 做软件,中国人不比别人差 专访微软中国研究院院长:张亚勤
  2. 谈谈对于外链SEO的独特见解!
  3. 网站内容链接优化SEO工具
  4. Netron展示pytorch模型结构
  5. DOTNET中GC原理
  6. SpringBoot 整合【Mybatis-Plus实现分页查询】
  7. LoRa节点开发:6、代码详解修改发射和接收信道(频率)
  8. 企业即时通讯软件FreeEIM飞鸽传书
  9. 电脑重启bootmgr_bootmgr丢失如何解决
  10. 全面深入学习OLE技术