吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11547|回复: 66
收起左侧

[Android 原创] Android逆向钉钉打卡和签到的笔记

  [复制链接]
五个木 发表于 2020-8-3 21:02
本帖最后由 五个木 于 2020-8-4 11:25 编辑

还不太熟悉我们的编辑器,写的不好的地方和排版不好的地方,多多包含和执教~~

#实现以下功能:
1.钉钉自定义位置打开(非第三方虚拟定位方法)
2.钉钉自定义WIFI BSSID
3.钉钉自定义拍照图片


#准备工作
逆向的钉钉apk版本:com.alibaba.android.rimet_4.6.3_497.apk
逆向工具:apktool_2.3.4.jar
用到的命令:
1.反编译:java -jar apktool_2.3.4.jar d xxx.apk
2.编译:java -jar apktool_2.3.4.jar b 文件夹  
3.编译成功后在dist文件中生成编译后的apk4.签名:jarsigner -digestalg SHA1 -sigalg SHA1withRSA -verbose -keystore 密钥.key -signedjar  app-release.encrypted.apk com.alibaba.android.rimet_4.6.3_497.apk 签名别名

#磨一磨刀
在逆向的过程中,需要不断的调试,以下是为了日志输出调试的smali代码

//输出string类型日志 test Log
const-string v1, "0.0"
const-string v2, "钉钉:getEntry_111111"
invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

//输出boolean类型日志 test Log 钉钉日志
const-string v1, "0.0"
invoke-static {p1}, Ljava/lang/String;->valueOf(Z)Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

//test boolean
invoke-static {v12}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v5
invoke-static {v5}, Lcom/langzu/baozha/ddutil/DDUtil;->testLog(Ljava/lang/Boolean;)V

//输出int类型日志 test int
invoke-static {v10}, Lcom/langzu/baozha/ddutil/DDUtil;->testLog(I)V

//输出字符串拼接整型日志 test Log
const-string v1, "0.0"
const-string v2, "钉钉:定位经纬度————31 31 31 getErrorCode:"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v1, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

//toast输出 test toast
const/4 v2, 0x1
const-string/jumbo v3, "欢迎使用爆炸版钉钉~~"
invoke-static {p0, v3, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v2
invoke-virtual {v2}, Landroid/widget/Toast;->show()V



钉钉模块注册涉及的文件 hdl.smali

.class public final Lhdl;


日志报文解析 service为hdl.smali中的模块名,action为模块中的方法名,例子:
service=internal.request, action=lwp

钉钉数据请求日志输入 涉及的文件:

.class public Lcom/alibaba/lightapp/runtime/monitor/RuntimeTrace;


修改trace方法 打印日志 test Log 钉钉日志

invoke-static {v1}, Lcom/langzu/baozha/ddutil/DDUtil;->testLog(Ljava/lang/String;)V



#开始向我们的目标前进

一. 植入工具类 DDUtil.smali
这个是比较重要的一个类,自己写的原生项目,反编译后获取到的工具类。实现的功能是:将自定义的定位数据,自定义的WIFI BSSID数据,自定义的拍照图片数据 传递给钉钉。
如有朋友需要,可以上传该文件供大家下载

二. 自定义wifi bssid修改

修改涉及文件:

.class public Lcom/alibaba/lightapp/runtime/plugin/device/Base;
.class Lcom/alibaba/lightapp/runtime/plugin/device/Base$1;



1.定位代码并替换

Landroid/net/wifi/WifiInfo;->getBSSID


#修改成下面获取wifi代码

invoke-static {}, Lcom/langzu/baozha/ddutil/DDUtil;->getMybssid()Ljava/lang/String;
move-result-object v0



2.定位代码并替换

Landroid/net/wifi/WifiInfo;->getSSID
Lcom/langzu/baozha/ddutil/DDUtil;->getMyssid()Ljava/lang/String;



例子:
//修改wifi

invoke-static {}, Lcom/langzu/baozha/ddutil/DDUtil;->getMyssid()Ljava/lang/String;
move-result-object v5



//修改wifi

invoke-static {}, Lcom/langzu/baozha/ddutil/DDUtil;->getMybssid()Ljava/lang/String;
move-result-object v5




三. 自定义定位修改
修改AndroidManifest.xml高德定位com.amap.api.v2.apikey
修改涉及文件:

.class public Lcom/alibaba/lightapp/runtime/plugin/device/Geolocation;


修改dispatchContinualLocationResult2H5方法
修改入参 p1为true p2为自定义定位信息
//test method 设置定位参数

invoke-static {}, Lcom/langzu/baozha/ddutil/DDUtil;->getAmapLocation()Lcom/amap/api/location/AMapLocation;
move-result-object p2


//test 修改为true

const/4 p1, 0x1



自定义定位修改

自定义定位修改


签到 地点微调 设置
修改涉及文件

.class public Lcom/alibaba/lightapp/runtime/plugin/biz/Map;


修改方法

.method private navigatorToLocationForCustom


//test 修改 地点微调 经纬度

invoke-static {}, Lcom/langzu/baozha/ddutil/DDUtil;->getLongitude()D
move-result-wide p2
invoke-static {}, Lcom/langzu/baozha/ddutil/DDUtil;->getLatitude()D
move-result-wide p4



签到 地点微调 设置

签到 地点微调 设置


四.启动设置Activity
1.修改AndroidManifest.xml 定位到 com.alibaba.android.rimet.biz.SplashActivity

<!-- 通过scheme启动app -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="baozha"
android:scheme="dingtalk" />
</intent-filter>



启动设置Activity

启动设置Activity


2.修改文件

.class public Lcom/alibaba/android/rimet/biz/SplashActivity;



onCreate方法中

//test toast
const/4 v2, 0x1
const-string/jumbo v3, "欢迎使用爆炸版钉钉~~"
invoke-static {p0, v3, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v2
invoke-virtual {v2}, Landroid/widget/Toast;->show()V

启动设置Activity

启动设置Activity

//test method 初始化
invoke-virtual {p0}, Lcom/alibaba/android/dingtalkbase/DingtalkBaseActivity;->getIntent()Landroid/content/Intent;
move-result-object v4

//test method 初始化
invoke-static {p0}, Lcom/langzu/baozha/ddutil/DDUtil;->initBaozha(Landroid/content/Context;)V

test method wifi赋值

invoke-static {v4}, Lcom/langzu/baozha/ddutil/DDUtil;->setConfigInfo(Landroid/content/Intent;)V



启动设置Activity

启动设置Activity


五.签到自定义拍照图片配置
1.修改

.class public Lcom/alibaba/laiwang/photokit/picker/edit/activity/picedit_activity;


修改onCreate方法

//修改拍照图片(v13  # "imagePath")

invoke-static {v13}, Lcom/langzu/baozha/ddutil/DDUtil;->getConfigImgUrl(Ljava/lang/String;)Ljava/lang/String;
move-result-object v13



自定义拍照图片配置

自定义拍照图片配置


//test 修改图片方向为0 不做旋转 注意修改地方

const/4 v10, 0x0



自定义拍照图片配置

自定义拍照图片配置


//test 修改surfaceview_resize为false 注意修改地方

const/4 v12, 0x0



自定义拍照图片配置

自定义拍照图片配置


六.考勤打卡自定义拍照图片配置

1.修改AndroidManifest.xml文件中的Activity的配置
com.alibaba.dingtalk.facebox.camera.activity.CameraActivity2 和 com.alibaba.dingtalk.facebox.camera.activity.PiceditActivity2
删除不同进程的配置

android:process=":tools"



2.修改文件

.class public Lcom/alibaba/dingtalk/facebox/camera/activity/CameraActivity2;


修改方法

.method static synthetic a(Lcom/alibaba/dingtalk/facebox/camera/activity/CameraActivity2;Landroid/net/Uri;)V



test 修改考勤打卡图片uri

invoke-static {p1}, Lcom/langzu/baozha/ddutil/DDUtil;->getCinfImgUri(Landroid/net/Uri;)Landroid/net/Uri;
move-result-object p1



打卡拍照图片配置

打卡拍照图片配置


#附件
DDUtil.zip (7.63 KB, 下载次数: 106)
下载解压获取文件DDUtil.smali



免费评分

参与人数 9吾爱币 +8 热心值 +7 收起 理由
jockin + 1 + 1 这个B ,留给你装
快乐交友 + 1 热心回复!
cenyinquan1979 + 1 + 1 热心回复!
a3324503555 + 1 + 1 我很赞同!
北笙ぐ + 1 + 1 谢谢@Thanks!
horse5700 + 1 钉钉没加固? 没有安全机制? 就这么轻轻松松搞定?
wykdz + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lyg21883 + 1 用心讨论,共获提升!
叮当东东当当 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

china08 发表于 2020-8-4 07:33
大神呀,谢谢分享
叮当东东当当 发表于 2020-8-4 01:17
看了半天,大佬真厉害。现在有什么公开的植入类吗?感觉这是一个很有用的方向。
david020 发表于 2020-8-4 00:35
oranges 发表于 2020-8-4 00:36
这个就挺强的了
j542936 发表于 2020-8-4 00:49
有没有成品的XP文件
hd5222668 发表于 2020-8-4 04:59
单位每天需要钉钉打卡,这个很有意义
列明 发表于 2020-8-4 06:57
厉害!直接将位置和图片及Wi-Fi写进app。
亻尔忄董白勺 发表于 2020-8-4 07:24
厉害,求成品
snakeyuna 发表于 2020-8-4 08:20
感谢大神分享思路,求成品
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 22:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表