如何研究Android手机上已安装的一个app

1.手机上安装了一个app,如何得到它的包名?

手机连接USB调试,打开该app,windows命令行下敲 adb 命令:

adb shell dumpsys activity | findstr ResumedActivity

linux下,把findstr换成grep即可。
如下图效果,不但可以看到包名,还可以看到当前Activity名。
在这里插入图片描述

2.如何得到app安装路径?

如果还不知道包名,那先通过第一步获取包名。
然后通过包名得到安装目录也是两行命令的事:

  1. 进入shell:

adb shell

  1. pm命令得到安装路径

pm list packages -f | grep 包名

如下图效果:
在这里插入图片描述

3. 如何得到安装包?

如果不知道安装路径,先按上面的两步骤得到安装路径。
然后按如下用命令把文件复制出来即可。
如果当前还是在shell环境下,则先退出shell环境:

exit

然后adb pull 安装包路径 保存路径,比如

adb pull /data/app/com.test.demo/base.apk .
注意最后有个点号,表示保存到当前目录。

如下图:
在这里插入图片描述

4.如何反编译一个安装包?

老牌反编译工具:apktool、dex2jar、jd-gui。
apktool:得到资源文件等。
下载地址:https://ibotpeaches.github.io/Apktool/

dex2jar:把dex文件转换成jar包。
下载地址:https://sourceforge.net/projects/dex2jar/

jd-gui:查看Jar包代码。
下载地址:http://java-decompiler.github.io/

官网下载太慢。如果不想一个个下载,可以点这里,一次下载这三个工具包。

下面是反编译实践:

1)apktool的使用

把想要反编译的apk放到apktool同级目录,然后文件管理器地址栏输入cmd回车打开命令行,输入以下命令:

apktool d apk名字

这样稍等片刻,此目录下就会生成一个apk同名目录。里面的文件就是反编译出来的资源文件等了。
在这里插入图片描述

2)dex2jar的使用

先把apk文件后缀改为.rar或者.zip,然后解压,得到dex文件。(当然不改后缀也可以解压。改后缀只是为了让系统识别出它是个压缩包。)
在这里插入图片描述
这样得到的这几个文件,跟上面通过apktool反编译得到的文件目录还是很类似的。
接下来,我们将通过dex2jar工具,把dex文件转换成jar包。首先将dex文件放到dex2jar目录下,如下:
在这里插入图片描述
然后地址栏输入cmd打开命令行,输入以下命令;

d2j-dex2jar.bat classes.dex

在这里插入图片描述

然后就会看到目录下多了个文件:
在这里插入图片描述
这就是已经转换好的jar包了。

3)jd-gui的使用

这个工具使用很简单,直接双击打开exe文件,然后用它打开刚才得到的jar包即可。
在这里插入图片描述
效果如下:
在这里插入图片描述
当然这个apk没有做好混淆,所以代码看的比较清楚。如果混淆过的话,看到的代码都是abc之类不知所云的。所以我们开发Android做好混淆很重要。

5.如何抓包分析其网络请求?

抓包工具有很多,在这里我们使用Charles。下载地址:https://www.charlesproxy.com/download/

如果打开后提示激活,可以填如下激活信息,我试了是可以用的:

Registered Name:https://zhile.io
License Key: 48891cf209c6d32bf4

Charles的使用:
首先确保手机和电脑处于同一局域网内。如果不确定的话,手机和电脑连接到同一个WiFi即可。
1.查看电脑的ip地址
命令行输入命令 ipconfig,回车:
在这里插入图片描述
如图红框里的就是我们想要的电脑IP地址。

2.修改手机网络,使用代理。

手机的WiFi列表里,长按正在连接的WiFi,修改网络 -> 代理改为手动,然后服务器主机名填入电脑IP地址,服务器端口填8888(Charles默认),然后连接。

这样就成功设置了代理,可以用charles抓包了。

3.操作手机APP,发起网络请求,然后在Charles上查看数据:

注意这种基本抓包操作只能看到Http请求的数据,如果是HTTPS的请求,抓到的数据看起来是乱码。

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值