一、环境
1、自行安装
[color=]adb
或者
[color=]SDK
(其实也用的里面的adb功能,SDK太大了,所以建议非安卓开发用户只安装adb就行了),adb安装教程网上很多,考验自己的自学能力!主要用adb将PC与真机/模拟器连接起来进行调试!
2、自行安装配置
[color=]JAVA
环境
二、工具
1、真机:一般
[color=]安卓机
即可(
[color=]不关心root与否
),这里我使用的是Redmi K40(Android 11)
2、数据线1条
3、Win7及以上 PC机
三、软件
1、PC版模拟器:任意厂家安卓模拟器(这里我使用的是MuMu模拟器)
2、安卓版模拟器:VMOS(会员版)
3、PC版安卓修改器:AndroidKiller_v1.3.1(这个主要用来修改软件
[color=]AndroidManifest.xml
里可调试权限
[color=]android:debuggable="true"
),下载地址
4、MT管理器(实现同第3条修改,但是
[color=]需要会员
)
5、NP管理器(
[color=]无需会员
实现第3条修改)
6、
[color=]主角:JEB 版本:
jeb-demo-4.2.0
7、待分析APP--debug.apk:https://wwi.lanzoup.com/iGJzi012bscf
四、JEB安装及激活
1、下载地址:https://pan.baidu.com/s/168RjxkVL655ydz0Fwt2Kvw?pwd=vbup
2、解压压缩包,再解压
[color=]jeb.zip
后,将
[color=]fix文件夹
下的
[color=]jeb.jar
复制并替换
[color=]到
[color=]jeb\bin\app
文件夹下。
J[V@P@ZOX57K~79RFVT{Y}L.png (36.13 KB, 下载次数: 0)
下载附件
2022-3-6 12:11 上传
3、激活:移动好后双击jeb/jeb_wincon.bat打开jeb,此时会弹出激活注册界面,选择Manual Key Genaration,复制许可证数据。如果双击jeb_wincon.bat不能打开jeb,需要检查一下自己java环境是否配置好!
2.jpg (27.01 KB, 下载次数: 0)
下载附件
2022-3-6 12:17 上传
3.jpg (62.46 KB, 下载次数: 0)
下载附件
2022-3-6 12:20 上传
得到许可证数据后,复制下面Python代码到python编译器里,推荐到https://tool.lu/coderunner/ 这个在线代码网站上运行,代码格式选择Python,把许可证数据粘贴到[Python] 纯文本查看 复制代码licdata = ""的引号里,运行后即可得到KEY值。输入到上图的许可证密匙后即可激活JEB[Python] 纯文本查看 复制代码#https://bbs.pediy.com/
#!/usr/bin/env python
import os, sys, struct, time, binascii, hashlib
RC4_Key2= 'Eg\xa2\x99_\x83\xf1\x10'
def rc4(Key, inData):
Buf = ""
S = range(256)
K = (map(lambda x:ord(x), Key) * (256 / len(Key) + 1))[:256]
j = 0
for i in range(256):
j = (S + K + j) % 256
S, S[j] = S[j], S
i, j = 0, 0
for x in range(len(inData)):
i = (i + 1) % 256
j = (j + S) % 256
S, S[j] = S[j], S
Buf += chr(S[(S[j] + S) % 256] ^ ord(inData[x]))
return Buf
def Long2Int(longdata):
lo = longdata & 0xFFFFFFFF
hi = (longdata >> 32) & 0x7FFFFFFF
return hi, lo
def KeygenSN(LicenseSerial, MachineID):
mhi, mlo = Long2Int(MachineID)
lhi, llo = Long2Int(LicenseSerial)
hi_Key = (mhi - lhi + 0x55667788) & 0x7FFFFFFF
lo_Key = (mlo + llo + 0x11223344) & 0xFFFFFFFF
Z0, = struct.unpack('
4.png (60.54 KB, 下载次数: 1)
下载附件
2022-3-6 12:29 上传
4、设置中文:在菜单栏里Edit->Language->中文(中文),关闭软件重新打开即可为中文界面。
五、导入调试APP
1、在导入前,用第三步中的安卓修改器,修改一下
[color=]AndroidManifest.xml
里可调试权限
[color=]android:debuggable="true"
5.jpg (148.88 KB, 下载次数: 0)
下载附件
2022-3-6 12:42 上传
编译后签名APP,把APP导入到JEB中,直接默认配置,点
[color=]确定
6.png (71.48 KB, 下载次数: 1)
下载附件
2022-3-6 12:44 上传
当出现这个弹框时,选择“是”
7.png (50.88 KB, 下载次数: 1)
下载附件
2022-3-6 12:46 上传
然后JEB就加载好了APP,主要用到了下面圈出来的一些功能!
8.png (113.26 KB, 下载次数: 0)
下载附件
2022-3-6 12:50 上传
实用技巧
112.jpg (178.97 KB, 下载次数: 1)
下载附件
2022-3-7 18:03 上传
18.png (51.05 KB, 下载次数: 1)
下载附件
2022-3-6 13:57 上传
如果要查看的代码太长,无法看到后面的代码,你会发现这个JEB竟然没有横向滑条??怎么办?有办法,按住
[color=]shift键+鼠标滚轮
,即可代替横向滑条前后查看了,你试试,回来会感谢我的
调试时需要在一些代码处下断点,快捷键是
[color=]Ctrl+B,如本次需要调试的APP下断点处为
9.png (110.32 KB, 下载次数: 0)
下载附件
2022-3-6 12:54 上传
六、实战调试
1、真机调试
把debug.apk安装到安卓机上,这里我使用的是Redmi K40(Android 11),安装后打开APP,当输入正确的密码后下面标签2显示“
[color=]破解成功
”,当然,我这个APP有bug,即使输入正确密码123456也会显示“破解失败”哈哈
10.jpg (29.17 KB, 下载次数: 0)
下载附件
2022-3-6 12:58 上传
然后手机里面打开设置,对着安卓版本狂点几次打开“
[color=]开发者模式
”,然后在开发者模式里面打开“USB调试”
11.jpg (95.67 KB, 下载次数: 0)
下载附件
2022-3-6 13:03 上传
好了,现在用数据线把手机和电脑连接起来,
[color=]当弹出“是否允许电脑调试手机”之类的提示一定要选择允许!!
此时手机打开debug.apk这个APP,然后在JEB中点那个绿色瓢虫开始调试,当出现下面这个弹框时说明已经连接好了,这个时候选择“
[color=]附上
”
12.png (28.37 KB, 下载次数: 1)
下载附件
2022-3-6 13:07 上传
13.png (119.86 KB, 下载次数: 0)
下载附件
2022-3-6 13:09 上传
出现这些信息时说明已经开始调试了
但是有时候会出现下面这个情况
14.png (35.32 KB, 下载次数: 0)
下载附件
2022-3-6 13:12 上传
这是因为没有打开APP的缘故,有两个办法解决,方法一是手动打开调试的安卓APP,方法二用adb shell am start -D -n 包名/主入口点Activity来启动调试APP
好了,接下来我们随便输入数据,让JEB能断下来!
15.png (142.95 KB, 下载次数: 0)
下载附件
2022-3-6 13:30 上传
111.jpg (276.21 KB, 下载次数: 0)
下载附件
2022-3-7 17:58 上传
,但是在调试过程中,我手机没有root,修改数值不起作用,root的朋友可以试试。但即使不能修改,也可以通过调试来观察代码的走向,来辅助静态修改!!
2、模拟器调试
其实模拟器和真机调试过程一模一样,你会真机了就会模拟器了,无非就是JEB连接模拟器的问题。
如我用的MuMu模拟器,首先打开cmd命令框,输入
[color=]adb connect 127.0.0.1:7555
,即可连接成功。然后要打开模拟器的开发者模式下的
[color=]USB调试权限
!其他PC版模拟器类似!只是端口不一样,如这里端口为7555
image.png (2.63 KB, 下载次数: 1)
下载附件
2022-3-6 14:06 上传
这里总结了一些常用的PC版模拟器连接方法!其他的自行搜索!
MuMu模拟器:
[color=]adb connect 127.0.0.1:7555
夜神模拟器:adb connect 127.0.0.1:62001
雷电模拟器:adb connect 127.0.0.1:5555
逍遥安卓模拟器:adb connect 127.0.0.1:21503
天天模拟器:adb connect 127.0.0.1:6555
海马玩模拟器:adb connect 127.0.0.1:53001
3、VMOS调试:它是手机上的安卓模拟器,创建好模拟器后打开虚拟机设置,选择“高玩设置”(睾wan??hh,没事没事,咱们继续),勾选上“网络ADB”即可用adb连接VMOS了,调试过程同真机调试部分。
[color=]不过VMOS是需要收费的!
19.jpg (94.11 KB, 下载次数: 0)
下载附件
2022-3-6 14:20 上传
20.jpg (64.75 KB, 下载次数: 0)
下载附件
2022-3-6 14:22 上传
七、完结
以上就是用JEB进行Smali动态调试的全部过程,相对于Android Studio动态Smali调试来说,我认为JEB更加方便,无需其他额外的插件,同时他的劣势也很明显,工程大了容易卡死,有时调试断点断不下来,还是比较轻量化的一个工具吧!同时他的smali转java代码优化方面也需要提高,有些代码参数看的一头雾水,不过我也没有资格说什么优缺点,开发者才是巨佬。总的来说JEB还是一个非常优秀的工具了,当然,他的价格也不菲啊!一个月好多刀呢