封面.jpg (111.6 KB, 下载次数: 0)
下载附件
2023-1-10 19:14 上传
在前一篇Android逆向破解某力定位打卡中是通过hook的方式修改坐标数据实现打卡。目前持久化hook有两种,一个是xposed系列,一个是frida-gadget。
如果你的朋友刚好也是使用这个软件打卡,ta可能没有和你一样的环境了,毕竟不是人人都是root环境,为了规避虚拟机检查多开检查造成的问题,建议不要用多开。也就是我想让一个普通的非root用户也能修改位置打卡,这里的目的是上班的时候因为不可抗拒原因无法打卡要迟到了,这样就一个挽救的机会。
修改APP植入目的地坐标
操作环境:
win10
jadx
Android Killer
一台能上网的真机
ver.2.5.9
样本地址:https://wwsk.lanzouy.com/iikQR0judryj,MD5:76f852dc4108e05cdb6f105df26c32a5
尝试重新打包
先把apk拖进killer中反编译,反编译没有遇到错误,尝试重新打包签名,手机卸载原版,安装我们重签名的版本。
QQ图片20230107130216.jpg (63.64 KB, 下载次数: 0)
下载附件
2023-1-10 19:15 上传
现在的apk是我们重新签名过的,登录账号之后首页弹出这个弹窗,无法关闭弹窗,只能点击退出APP,APP做了`签名校验。
处理签名校验
在jadx中搜索检测到你的
20230107130932.jpg (153.94 KB, 下载次数: 0)
下载附件
2023-1-10 19:16 上传
搜索到一个结果,你也可以从killer中搜索,但是需要转ununique编码。
20230107131451.jpg (603.5 KB, 下载次数: 0)
下载附件
2023-1-10 19:16 上传
已经定位到代码的位置,现在就看看什么地方检查了签名和弹出弹窗。
关键的类名和代码块:
20230107131743.jpg (528.4 KB, 下载次数: 0)
下载附件
2023-1-10 19:17 上传
显示弹窗的条件是if (new q(this, b。bAe)。check())判断不成立,这里开发者居然还打了log,也就是这个时候logcat也能看到这个签名的检查状态,真是要挨板子!其实我心里(谢谢你)。
如果是讨论hook的环境,聪明的你肯定知道直接hook:check方法直接返回true完事了,但是我们本篇是讨论修改apk,需要修改代码的。进去check方法看看。
20230107132208.jpg (406.99 KB, 下载次数: 0)
下载附件
2023-1-10 19:17 上传
聪明的你应该有破解方法了吧,就是最常用的翻转判断,我们自己的签名肯定是和原来他判断对不上,直接把条件翻转。
打开q类的smali找到check方法:
carbon_check.png (431.28 KB, 下载次数: 0)
下载附件
2023-1-10 19:19 上传
重新合成打包签名, 警告的弹窗没有了。
但是现在定位失败了, 原因: 我们重签名, 高德地图SDK是根据包名和签名来检查定位初始化的, 重签之后肯定失败。
20230108171245.jpg (163.22 KB, 下载次数: 0)
下载附件
2023-1-10 19:18 上传
继续查看日志, 看到熟悉的位置的log
SDKWebViewFragment: call back registerMethod=phone.location.get,result={"code":15002,"method":"","msg":"定位失败"}
call back registerMethod就是a方法打印的baseSDKResult的Java bean对应的值。
nm方法的入参就是这段json, 我们直接修改nm的入参字符串为一个正常的json就可以破解了。
插入经纬度数据
在上一篇中已经找到了重要的位置:SDKWebViewFragment。a方法
carbon_nm.png (517.88 KB, 下载次数: 0)
下载附件
2023-1-10 19:20 上传
现在修改SDKWebViewFragment的a方法里面的nm入参
找到a方法:
。method public a(Ljava/lang/String;Lcom/delicloud/app/jsbridge/entity/result/BaseSDKResult;)V
可以全局搜索。
20230108172646.jpg (142.17 KB, 下载次数: 0)
下载附件
2023-1-10 19:18 上传
开始分析修改smali: 修改位置打卡的重点地方!
20230108173313.jpg (421.96 KB, 下载次数: 0)
下载附件
2023-1-10 19:20 上传
这是地址模板, 如果你想修改就替换你自己的地址就ok了, address, latitude, longitude里面的数据可以修改, 其他的不要动!
"{\"code\":0,\"data\":{\"address\":\"广东省xx市xx区xx路666号\",\"latitude\":23.233333,\"longitude\":113.2333333,\"name\":\"xx大厦\"},\"method\":\"\",\"msg\":\"成功\"}"
这个时候建议清理一次APP缓存, 或者完全卸载之前安装的APP再打包安装最新修改的。
修改之后如果直接覆盖之前的, 可能无效果, 之前的定位缓存失败有记录, 要过一段时间才会清理上一次定位缓存。
上面的定位位置就是公司的位置了, 这个时候再打开App,显示可以打卡了。
如果你设置了自动打卡,可能会直接进入这个页面
QQ图片20230107130207.jpg (82.61 KB, 下载次数: 0)
下载附件
2023-1-10 19:22 上传
QQ图片20230107130213.jpg (66.54 KB, 下载次数: 0)
下载附件
2023-1-10 19:22 上传
这样直接写入公司的坐标数据,随时随地都能打卡。
总结
这个APP适合练手入门, 包含了去签名校验, 修改寄存器数据等基本操作。
重点是要分析出定位的逻辑, 然后去修改数据达到改定位效果。
在前一篇Android逆向破解某力定位打卡中有动态分析和具体代码分析的地方,如果没看过,可以打开看整个流程。
温馨提示:不得用于非法用途
温馨提示:不得用于非法用途
温馨提示:不得用于非法用途