Android逆向调试环境搭建

VSole2021-08-07 10:00:33

前言

市面的Android模拟器大多为游戏而定制,几乎没有使用原生AOSP并提供root和拓展性(可安装xposed之类的)。于是尝试使用Android Studio自带的模拟器:Android Studio Virtual Device (AVD)

环境

Android Studio 4.1.2

Android 7.1.1 x86 (API 25)

macOS Big Sur 11.4 x86_64

搭建

创建虚拟机

在选择设备型号的时候,选不带“Play Store”的即可,之后选择镜像,根据自己的架构选择x86或arm,这里选择的是x86 Images

值得一提的是,Android8.0以上(不含8.0)可能无法安装SuperSU来进行root,可能需要Magisk,而xposed对x86_64的系统支持不是特别好几乎都不支持,而带有Google APIs的镜像并不提供root权限,所以这里选择了Android 7.1.1 x86,理论上也适用于Android 8.0 x86。

获得ROOT权限

选择并下载好镜像后就可以进入系统了,进入系统并不能从Android Studio进入,我们需要用命令进入并附加-writable-system参数:

emulator -avd 模拟器名 -writable-system

接下来我们需要获取root权限:

系统自带的root权限只能从adb调用,并不能给里面的app使用,所以我们利用adb中的root权限刷入SuperSU

首先以root身份运行adb:

adb root
adb remount

之后再进入adb shell,如无意外应该是获得root的shell, 再执行setenforce 0:

adb shell
generic_x86:/ # setenforce 0

之后我们将SuperSU刷机包下x86目录里面的su.pie文件push到/system/bin和system/xbin目录下:

adb push su.pie /system/bin/su
adb push su.pie /system/xbin/su

之后进入adb shell(root),将su文件设成可执行并安装su:

chmod 0755 /system/bin/su
chmod 0755 /system/xbin/su
su --install
su --daemon&

之后退出adb shell,安装SuperSU程序和Xposed Installer:

adb install supersu.apk
adb install xposedinstaller.apk

安装完成后运行SuperSU,点击New User,之后弹出的对话框询问时候更新二进制,点击取消即可正常使用SuperSU了。

安装Xposed

我们已经获取了Root权限,接下来需要安装Xposed。

打开Xposed Installer,点击安装。这里可能会出现无法获取zip之类的错误,科学上网即可。

安装时需要root权限,允许即可,安装完成后重启就会发现xposed已经安装完成了:

一些问题

这个SuperSU的root权限重启就会消失,消失后需要重新走一遍root流程,xposed则不受影响。

总结

于是我们已经顺利搭建好环境了,再安装逆向或脱壳相关的模块就能开展工作了。

adbadb命令
本作品采用《CC 协议》,转载必须注明作者和本文链接
在app应用程序发生异常出现Crash崩溃、ANR阻塞时通常说明应用程序存在一定的问题,这时候需要收集应用日志定位错误位置帮助开发调试修复程序。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用。logcat本身是android的shell的一个命令,可以通过adb shell进入shell后执行logcat命令,也可以通过adb logcat直接运行。
前言市面的Android模拟器大多为游戏而定制,几乎没有使用原生AOSP并提供root和拓展性(可安装xpo
记一次试岗实战项目
2023-05-06 09:12:33
试岗项目项目内容开发一个 xposed 插件,可以在 whatsApp 中导入通讯录功能,输入是手机号,输出是这个手机号对应的id和个人信息,对方还跟贴心的给出了项目预览图,应该是对方近期接到的项目,也可以看出对方没有白嫖我的意思。关键代码定位点开APP随便浏览了一下功能,根据对方给出的预览图,可以知道首先是需要定位这个界面的 onCreat 界面,首先考虑的就是直接搜字符串,比如“邀请使用”这四个字,但是拖入 jadx 一番搜索后什么也没有。
相应的,跳转的时候传入参数未校验,就可能存在风险。?Deeplinks格式一般Deeplinks格式如下:?解析Scheme,判断Scheme属于哪个App,唤起App,传递参数给App由操作系统去完成。
一前言为了帮助更加方便的进行漏洞挖掘工作,前面我们通过了几篇文章详解的给大家介绍了动态调试技术、过反调试技术、Hook技术、过反Hook技术、抓包技术等,掌握了这些可以很方便的开展App漏洞挖掘工作,而最后我们还需要掌握一定的脱壳技巧,进行进一步助力我们漏洞挖掘的效率。本文第二节主要讲述Android启动流程和加壳原理。本文第三节主要介绍整体加壳的实现。本文第四节主要讲当下脱壳点的概念。
由于疫情的影响居家办公,手边只有一个ROOT过的测试机,但是没有要用的各种插件,并且手机还存在其他问题,影响正常使用。 为了做项目,于是get了这个新技能,以下就是相关的操作过程。
App 服务端测试基本就是 Web 安全那一套,但如果抓不到服务器的包?模拟器和测试手机的安卓版本建议在 7 以下,生态较好。
C:\Users\bk\Desktop\天府科技云APP\天府科技云服务平台\天府科技云服务平台.apkC:\Program Files\Java\jdk1.8.0_111\bin\jarsigner.exe?文件将解压出来的classes.dex文件拷贝到dex2jar工具文件夹中执行命令:d2j-dex2jar classes.dex执行完毕后,得到反编译而来的classes-dex2jar.jar文件使用jd-gui.exe或者luyten-0.5.4打开 classes-dex2jar.jar文件,得到360安全加固混淆加密的源代码。应同时使用V1+V2签名)6.应用完整性校检将反编译出来源码中修改图片文件名为test.png进行重新生成apk包,命令如下:java -jar apktool.jar b -f?
Intent一般可被用于启动活动、启动服务以及发送广播等场景。
本篇是《Android逆向入门教程》的第二章第6节,更多章节详细内容及实验材料可通过加入底部免费的【Android逆向成长计划】星球获得!
VSole
网络安全专家