博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android位置模拟并实现 —— 逆向钉钉打卡Xposed Plugin
阅读量:7098 次
发布时间:2019-06-28

本文共 793 字,大约阅读时间需要 2 分钟。

  hot3.png

背景

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

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

准备

必不可少的工具:

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

逆向

通过jadx将钉钉打卡(dingPass)反编译为Java源码。通过可知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

你可能感兴趣的文章
论坛迁移日记——discuz X2.5 迁移详细教程
查看>>
vs2010中的ADO控件及绑定控件
查看>>
GPS坐标转百度地图并且加载地图示例.支持微信端访问
查看>>
nginx 配置白名单
查看>>
iOS开发助手、ipa上传工具、苹果APP快速上架辅助工具Appuploader
查看>>
Rstudio编辑界面美化设置
查看>>
重写对象ToString方法
查看>>
备忘: C++中的 vector 容器
查看>>
smt中查看图片与视频缩略图中,如何获得小视频的长度。
查看>>
图片(img标签)的onerror事件
查看>>
2013应届毕业生“百度”校招应聘总结
查看>>
CentOS系统启动流程
查看>>
SQLite数据库_实现简单的增删改查
查看>>
批量查询 xml的方式 还一种是表变量
查看>>
Java7/8 中 HashMap 和 ConcurrentHashMap的对比和分析
查看>>
Java 实现多线程切换等待唤醒交替打印奇偶数
查看>>
1077. Kuchiguse (20)
查看>>
HotSpot模板解释器目标代码生成过程源码分析
查看>>
c99标准 数据类型
查看>>
一维最大子数组和(续)
查看>>