首页
社区
课程
招聘
[讨论][分享]给大家分享一下这几年学习Android逆向遇到的环境问题吧,希望大家不要在这上面浪费时间(文章一直更新,也期待大家留言补充)
发表于: 2022-11-21 14:26 9682

[讨论][分享]给大家分享一下这几年学习Android逆向遇到的环境问题吧,希望大家不要在这上面浪费时间(文章一直更新,也期待大家留言补充)

2022-11-21 14:26
9682

adb驱动

首先我们电脑连接手机就是要使用adb驱动,
图片描述
那么这个adb驱动是什么呢,在哪里呢
当我们下载Android studio的时候我们会下载一个sdk的目录:
图片描述
我们的adb驱动就是在这个目录下的
然后当我们刷机的时候,这个驱动最好是经常更新到最新版本的,不然你会在刷机过程在遇到各种各样奇奇怪怪的问题,更新的地方在Android studio的这个位置:
图片描述
我这里把我用的刷机网站记录一下吧,这个是需要付费的,想白嫖的xdm私信我,我冲完钱了:镜像地址,google官方也有的其实,如果想刷入su,就得下载twrptwrp

动态调试java层

这里非常简单,就是用ak反编译出一个项目,然后导入android studio中,但是你在Android studio中动态调试的时候需要导入一个smalidea插件
(安装插件File->Settings->Plugins->install plugin from disk->选择下载的zip包),没有这个插件我记得也有一些错误,导入的时候我记得是直接导入压缩包就行,不用解压
导入时直接导入这个project就可以了:
图片描述
这个是smalidea链接:smalidea
这里其实没有什么大问题,但是调试so的时候就多了
我这里把文章写详细一点吧,不在引用其他帖子了,之前收藏的好多帖子都被删除找不到了
首先用ak反编译一下这个apk文件: ,然后找到project
图片描述
(这里插一句,用完android killer 就关了,要不占用端口)
将这个poject导入Android studio:
图片描述
图片描述
然后加一个8700的remote:
图片描述
然后挂起来:
图片描述
用moniter记录端口:24121
图片描述
还是用完moniter就把他关了,免得占用端口:
然后端口转发:
图片描述
然后找到需要下断点的位置:
图片描述
就能开始调试了:
图片描述
点击这个小虫子也可以:
图片描述
这样就可以调试了

动态调试so层

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
C:\Users\86139\Desktop\adb>adb devices
 
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
  List of devices attached
  04e3926509d38d77        device
 
 
C:\Users\86139\Desktop\adb>adb install E:\2022.07.apk+re\ctf\apk\easy-dex\easy_dex.apk
1839 KB/s (597480 bytes in 0.317s)
        pkg: /data/local/tmp/easy_dex.apk
Success
 
C:\Users\86139\Desktop\adb>adb shell
shell@hammerhead:/ $ su
su
root@hammerhead:/ # cd data/local/tmp
cd data/local/tmp
root@hammerhead:/data/local/tmp # ls
ls
as
frida
re.frida.server
root@hammerhead:/data/local/tmp # chmod 777 as
chmod 777 as
root@hammerhead:/data/local/tmp # ./as
./as

再开一个cmd窗口:

1
2
3
adb forward tcp:23946 tcp:23946
 
adb shell am start -D -n com.a.sample.findmydex/android.app.NativeActivity

图片描述
提前下好断点:
图片描述
图片描述
然后用jdb挂接一下:

1
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700

这里经常出现一些问题,输入上面那个命令之前,一定要先打开moniter,
图片描述
当你使用moniter看端口的时候,就会出来一些问题了,由于这个moniter是早期Android studio的工具(如果找不到早期版本的ddms的xdm私信我就行,之前的链接我找不到了),所以他支持的jdk的版本比较低,我这里使用的是jdk8,在往后的就不行了,之前的我没试验过,还有就是调试的时候关闭Android studio和Android killer,他们会占用端口:
这里我展示一下我配置的环境变量吧:
图片描述
图片描述
这里就是只有用ddms的时候换成jdk8就行了,其他的时候,我这里使用的android11的版本,所以还是用as自带的jdk的版本,要不编译的时候会出现问题:
图片描述
然后执行完上面的命令之后:
图片描述
图片描述
图片描述
还有就是ddms打开不显示应用进程的问题,我们可以这样解决
(修改ro.debuggable = 1):

1
2
3
4
adb shell #adb进入命令行模式
su
magisk resetprop ro.debuggable 1
stop;start; #一定要通过该方式重启

frida环境

首先第一个问题就是frida的版本和objection版本不匹配的问题,这里参考一下这个大佬的文章,找到了几个可以使用的frida+objection:

frida+objection

我使用的是这个对应的版本

1
2
3
4
5
6
7
8
9
10
11
12
pip install frida==15.2.2
发布时间:2022 07 21,是到20220804为止的最新版
 
pip install frida-tools==11.0.0
20220804为止的最新版
 
Objection安装的前置条件:
python版本 > 3.4
pip版本 > 9.0
 
pip install objection==1.11.0
20220804自动匹配的版本

然后我们如果想在windows下使用不同版本的frida版本我提供一种这样的方法吧:
首先用pycharm新建一个工作空间:
图片描述
然后再工作空间的这个路径下安装frida,然后以后要是想使用这个版本的frida直接把路径切换到这里就可以了:
图片描述
我们还可以编写一个这样的bat脚本文件,放在C:\Windows\System32这个目录下,下次使用的时候直接从命令行窗口打开就行了
图片描述
图片描述
图片描述
如果想使用不同版本的frida直接按照上面的步骤来就行了

然后就是要编写js脚本了

这里我们首先需要安装一下nodejs,这个东西的作用就是帮我们进行代码自动补全,然后切换到我们编写js脚本的目录下面执行这条命令:

1
npm i @types/frida-gum

然后就会生成这三个文件
图片描述
我们不要动他们就ok了,然后这样就可以编写js脚本了

虚拟机一定不要删快照!!!!!!

图片描述

修改ro.debuggable

1
2
3
4
adb shell #adb进入命令行模式
su #切换至超级用户
magisk resetprop ro.debuggable 1
stop;start; #一定要通过该方式重启

ps:本篇文章持续更新,遇到问题就记录一下,也希望大家多多留言记录问题,免得在这上面浪费时间


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2023-6-23 23:15 被以和爲貴编辑 ,原因:
收藏
免费 8
支持
分享
最新回复 (13)
雪    币: 2428
活跃值: (10698)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
收藏收藏
2022-11-21 14:48
0
雪    币: 859
活跃值: (945)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
友好啊
2022-11-21 16:33
0
雪    币: 10070
活跃值: (4471)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享,收藏了有空研究下
2022-11-22 12:26
0
雪    币: 3785
活跃值: (3942)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
感谢分享!
2022-11-22 13:58
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
6
你瞒我瞒 收藏收藏[em_63]
感谢感谢
2022-11-22 14:07
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
7
TrumpWY 友好啊
互相分享
2022-11-22 14:08
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8


最后于 2022-11-22 14:09 被以和爲貴编辑 ,原因:
2022-11-22 14:09
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
chengdrgon 感谢分享,收藏了有空研究下
一起互相分享吧
2022-11-22 14:10
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
10
fengyunabc 感谢分享!
互相帮助大佬
2022-11-22 14:11
0
雪    币: 14633
活跃值: (17729)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
11
楼主牛逼!!!
2022-11-22 17:46
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
12
pureGavin 楼主牛逼!!!
大佬的认可
2022-11-22 18:19
0
雪    币: 14
活跃值: (208)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
收藏了,frida这个版本老是处理不好,一些二开的需求的版本又不一样,刚好试试
2023-1-30 11:00
0
雪    币: 6036
活跃值: (7603)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
14
July丶孤羽 收藏了,frida这个版本老是处理不好,一些二开的需求的版本又不一样,刚好试试
确实啊师傅还有就是不同版本的frida的命令还不一样
2023-1-30 17:59
0
游客
登录 | 注册 方可回帖
返回
//