自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (1)
  • 收藏
  • 关注

原创 [Frida集成篇]安卓10系统内置frida相关工具实战教程

1. 前言 frida工具在逆向工程中用的越来越多。平时我们在安卓端需要把frida server或者frida-inject等工具通过adb push放到手机。然后去启动。有时候需要修改frida server的启动端口,那就需要先手动输入命令去结束当前正在运行的frida server,然后重新使用新端口启动。或者偶尔数据线突然断开了,又的重新电脑终端执行命令去启动。这种操作起来非常繁琐麻烦。为了简化frida-server或者frida-inject的操作,可以通过将frida-s....

2021-04-12 12:19:55 1758 3

原创 A_005.手机Pixel 3刷入自编译的Android 12系统ROM

如果手机进入fastboot模式之后,手机界面中的"Device State:"后面的文字为"locked"说明手机还未解锁。在以上刷入工程镜像的操作中,点击"flash-all.bat"之后自动完成了刷机工作。由于Aosp源码中编译出来的最终镜像是各种.img后缀的文件镜像。**说明:**后续操作刷的是安卓11的镜像演示,安卓12的操作是一样的,只需要把对应的镜像名改为下载的安卓12的镜像。比如Ubuntu虚拟中参考命令如下如下:**通过对比之后,需要将如下编译目标中的文件拷贝到工程镜像刷机包目录替换。

2023-07-19 19:30:00 2491 1

原创 Java反射修改类的静态字段信息

【代码】Java反射修改类的静态字段信息。

2023-07-17 17:00:24 1088

原创 A_004.Aosp12源码中编译Pixel 3手机ROM

由于此处的测试机为pixel 3,对应系统源码设备代号为:blueline,所以选择:3. aosp_blueline-userdebug进行编译。执行以上两个脚本之后,会显示一个文本协议,需要按*"Enter"键拉到底部,然后输入"I ACCEPT"的信息之后才能提取成功。安卓Aosp源码中支持很多个设备的镜像编译,在编译之前需要配置对应设备依赖的驱动文件。点击页面中的"Link"下载对应的驱动文件包,并分别解压到源码根目录。Google已为Aosp源码中支持的设备提供了对应的驱动文件支持。

2023-07-16 21:55:02 1345

原创 A_002.基于WSL2环境的Aosp12源码开发环境搭建

源码开发环境组成:Windows 11系统、WSL子系统ubuntu20.04、Source Insight 4.0。可以参考该博客安装破解版Source Insight:https://bbs.pediy.com/thread-215669.htm。在WSL子系统启动的情况下,可以通过在电脑端输入:\\wsl$访问到wsl子系统ubuntu。参考如下图示:Windows端连接访问WSL子系统ubuntu之后,进入目录找到源码下载的位置。比如我当前下载源码目录的路径:\\wsl$\Ubuntu-20.0

2023-07-13 22:00:00 1021

原创 A_003.adb常用命令使用介绍

adb命令是调试控制手机过程中用的比较多工具。在电脑终端中执行adb --help可以查看当前支持的adb命令。当在命令行执行程序相关命令的时候,程序尝试连接到主机上的ADB服务器,如果找不到ADB服务器,程序自动启动一个ADB服务器。ADB服务器启动之后会和手机设备的adbd后台服务进程建立连接后。adb client就可以向ADB servcer发送服务请求;ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口监听设备的连接和拔除。

2023-07-13 21:45:00 1031

原创 A_001.Window 11使用WSL2下载Android 12系统源码

Windows 11 64bit 系统。

2023-07-10 22:47:42 1281

原创 玩转Android10源码开发定制(二)之基于Pixel 3手机超级详细演示fastboot刷机

如果手机进入fastboot模式之后,手机界面中的"Device State:"后面的文字为"locked"说明手机还未解锁。在以上刷入工程镜像的操作中,点击"flash-all.bat"之后自动完成了刷机工作。在该界面中使用手机"音量键-"切换功能选项,直到出现图中"Unlock the bootloader"字样,然后按下电源键确定操作。通过对比之后,需要将如下编译目标中的文件拷贝到工程镜像刷机包目录替换。手机usb连接电脑之后,通过如下adb命令使手机进入fastboot模式。参考命令如下如下:**

2022-11-19 22:10:16 2336 2

原创 玩转Android10源码开发定制(二)之基于Pixel 3手机超级详细演示recovery刷机

本节主要内容:Android主要刷机方式:(1).下载platform tools包(​2).配置adb和fastboot命令到系统环境变量将下载的platform tools压缩包解压,然后将adb和fastboot所在的路径添加到电脑系统环境PATH变量。配置成功之后在终端输入命令查看是否成功。如下执行命令参考:3.下载Pixel 3安卓11官方工厂镜像刷机包Google官方手机对应的各个系统版本的工厂镜像都可以在以下网址找到,工厂镜像网址:https://developers.google.cn

2022-11-19 11:01:40 2199

原创 玩转Android10源码开发定制(五)之源码目录说明及模块源码路径定位

命令之后,可以通过hmm命令查看源码开发过程中提供的各种命令。安卓源码中主要提供了如下命令。cgrep命令: 在源码 C/C++文件中执行搜索。ggrep命令: 在源码Gradle文件中执行搜索。gogrep命令: 在源码Go文件中执行搜索。jgrep命令: 在源码Java文件中执行搜索。resgrep命令: 在源码res/*.xml文件中搜索。mangrep命令: 在源码AndroidManifest.xml文件中搜索。

2022-11-19 10:29:58 1737

原创 [Frida集成篇]FD_02.基于frida-inject脚本持久化开发实战

frida-inject脚本持久化的方案App开关文件目录以及脚本存储文件目录selinux配置封装和超级Root权限后台进程通信的java Api接口以及封装访问脚本相关目录文件的Java接口系统源码中添加App启动的时候执行frida-inject命令的逻辑代码开发控制App实现对第三方App 持久化的配置。

2022-11-08 08:52:29 1761

原创 [Frida集成篇]FD_01.三种方案实现Frida脚本持久化研究

frida-gadget持久化研究frida-gumjs脚本持久化研究frida-inject脚本持久化研究。

2022-11-08 08:48:16 3485

原创 [Frida集成篇]FC_01.ida server内置以及App控制启动、停止和配置端口

集成到手机系统进程中添加启动、停止的逻辑代码开发控制实现控制停止、启动、端口修改。

2022-10-26 21:09:56 1720

原创 [Frida集成篇]FB_03.开发控制App实现对App使用frida-inject工具

Android(l).linux原有的进程通信方式如管道、消息队列、共享内存、套接字、信号量、信号。比如Zygote进程的IPC采用的是Socket机制;比如adbd进程采用了socket通信机制。(2).安卓扩展的通信方式主要是Binder通信。比如进程主要是使用Binder来完成跨进程间的通信。由于通过修改adbd源码,adbd运行以后拥有了超级Root权限。所以我们可以将他当成一个su程序,只是App不能像正常的su程序那样执行su命令来调用其他shell命令。

2022-10-26 16:11:39 1585

原创 [Frida集成篇]FB_02.基于tcp通信实现类似su功能的调用

在超级权限进程中创建监听连接基于通信实现一个简单的类似程序的调用功能。

2022-10-25 13:00:07 1677

原创 玩转Android10源码开发定制(二)之刷机操作简述

本文只讨论的刷机模式只针对lineageOs编译的系统进行刷机。Android刷机方式主要分为线刷方式和recovery模式刷机。:该方式需要手机处于fastboot模式。Fastboot是一种底层刷机模式,该模式下可以刷入基带、bootloadr以及Android系统的各个分区镜像。如果手机已经无法开机了,也可以通过进入fastboot模式进行线刷救活。:该方式需要刷入第三方recovery,需要手机进入recovery模式。recovery模式下可以进行系统备份或升级、恢复出厂设置等操作。

2022-10-25 11:20:19 1622

原创 [Frida集成篇]FB_01.内置frida-inject到手机系统

是frida中提供的可以直接放到手机端执行注入js脚本到App程序进行hook的工具。也就是说使用命令可以脱离PC端执行注入了。平时我们用frida进行App注入的时候,多半都是PC端安装frida工具,然后把放到手机端。手机端启动开启端口监听,PC端的frida工具通过端口连接到然后相应的命令去让执行相应的操作。将工具下载以后通过adb push命令放到手机,比如放到路径"

2022-10-24 19:05:44 2237

原创 玩转 Android10 源码开发定制(一)源码下载

测试设备: oneplus 3/3T设备代号:oneplus3Android 系统版本:10.0开发环境:Windows10 64bit+VMware+ubuntu虚拟机版本:VMware Workstation 15 Player版本 Ubuntu18.04内存至少 12G RAM硬盘空间至少 200GB。

2022-10-24 18:58:52 1641

原创 [Frida集成篇]FA_07.编译官方fridaserver或者strongFrida并替换系统内置版本

主要是通过patch代码的方式,为frida官方源码进行一些修改,抹除一些关键特征,为Android构建反检测版本的。

2022-10-24 18:37:51 1667

原创 Linux内核开发中字符串转换相关函数

【代码】Linux内核开发中字符串转换相关函数。

2022-10-18 15:49:44 2407

原创 [Frida集成篇]FA_06.不用刷机情况下升级或者降级系统中的fridaserver

由于在不断的更新中,可能有时候需要升级或者降级手机里面内置的。如果重新拷贝到源码里面编译刷机就显得比较麻烦。由于我们开发的手机系统运行已经拥有了超级权限。所以可以通过命令来升级或者降级手机系统中的。

2022-10-13 18:56:20 1536

原创 [Frida集成篇]FA_05.App中编写控制fridaserver启动和停止的代码逻辑

"已经添加了相关控制属性。

2022-10-08 10:36:55 838

原创 玩转Android10源码开发定制(二)之adb常用命令使用介绍

adb命令是调试控制手机过程中用的比较多工具。在电脑终端中执行adb --help可以查看当前支持的adb命令。当在命令行执行程序相关命令的时候,程序尝试连接到主机上的ADB服务器,如果找不到ADB服务器,程序自动启动一个ADB服务器。ADB服务器启动之后会和手机设备的adbd后台服务进程建立连接后。adb client就可以向ADB servcer发送服务请求;ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口监听设备的连接和拔除。

2022-09-22 11:07:27 1976

原创 TelephonyManager中NETWORK_TYPE_xx含义详细解释

Android系统中可以通过TelephonyManager提供的方法getNetworkType获取当前手机移动网络类型。以下是定义的各种网络类型的详细含义说明。

2022-09-19 15:38:45 751

原创 google手机连接wifi后提示“无法连接互联网“的原因和解决方法

经常使用谷歌的手机测试,发现它连接WiFi后总会提示"无法连接互联网",原因是先去访问了谷歌的服务器:http://clients3.google.com/generate_204来探测网络是否连通,由于国内网络防火墙的原因访问不了,所以就提示"无网络连接"。可以通过adb命令修改验证网络是否连通的服务器地址。

2022-09-18 08:18:46 19761 3

原创 [Frida集成篇]FA_04.开发system权限的App并内置到手机系统

内置到手机系统开发权限的并内置到手机系统。

2022-09-16 14:39:02 1138

原创 [Frida集成篇]FA_03.添加自定义属性控制fridaserver启动和停止

本节主要内容:在Android源码中添加自定义属性配置App读取/设置自定义属性的selinux策略将fridaserver启动方式代码改为属性控制为了通过安卓系统的属性控制fridaserver启动和停止,将加入如下属性:2.系统中添加属性2.1 系统中新增属性在文件"build\tools\buildinfo.sh"中添加以下属性,添加之后属性如下:2.2 为新增的属性配置selinux标签由于新增的属性需要在后续开发的具有System权限的App中设置和获取。如果不配置系统App的selin

2022-09-14 06:49:00 735

原创 A_03.Aosp11源码开发环境搭建

+。

2022-08-16 09:14:06 970

原创 A_02.Aosp11源码编译

安卓11源码编译环境配置pixel 3手机源码驱动文件配置安卓源码中编译Pixel 3设备手机镜像。

2022-08-12 08:41:29 1563

原创 Ubuntu 20.04系统添加swap交换空间

由于经常使用虚拟机中安装Ubuntu系统下载编译开发安卓源码,经常遇到编译安卓源码过程中内存不足的情况,导致编译安卓源码失败。由于不能再给虚拟机分配更多的物理内存,只能考虑增加ubuntu swap交换分区来解决内存不足的情况。............

2022-08-09 22:29:39 1851

原创 A_01.Aosp11源码下载

安卓源码repo工具下载过程中会在源码根目录下面生成.repo缓存目录。源码下载完成之后,可以将.repo删除释放更多空间处理。以下使用du命令查看.repo目录占用情况。由于下载源码需要很长时间。为了防止这种情况,适应挂机下载的需求。为了以后开机启动之后安装的repo工具立即生效,将repo工具路径加入.bashrc文件中。以上命令显示.repo占用48G的空间,可以使用rm命令删除相应的目录。由于直接使用google官方下载源很难下载,以下使用清华源下载安卓源码。脚本,就可以挂机下载源码了。......

2022-08-09 10:27:20 1394

原创 [Frida集成篇]FA_02.配置fridaserver为后台进程

frida后台运行

2022-07-18 22:10:44 599

原创 [Frida集成篇]FA_01.内置fridaserver可执行程序到手机系统

内置frida工具到安卓10系统

2022-07-12 11:52:57 744

原创 Riru&Edxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程

说明:本文操作在Windows 平台实现。一、Magisk源码下载在终端执行如下git命令下载Magisk源码。E:\workspace\androidstudio\EdXposedProj\20210109>gitclone--recurse-submoduleshttps://github.com/topjohnwu/Magisk.git以上命令执行完成之后,pcre模块会下载失败。是由于Magisk子模块"pcre"是从"https://android.googleso...

2021-04-17 11:05:08 1744

原创 Riru&Edxposed学习研究(三)免Magisk使用adb命令安装Edxposed

最近研究了一下magisk刷riru和edxposed的脚本,萌生了是否不需要Magisk,直接其他安装好的文件进行adb push 进去,实现Edxposed安装。经过研究实践,安装成功,将操作记录分享一下。一、前期准备 手机设备需要满足如下条件:1.手机adb拥有root权限,可以通过执行adbroot命令2.手机系统版本>=8.03.本文讨论的riru不是最新版本的,是基于替换libmemtrack.so完成zygote注入的版本 ...

2021-04-17 11:03:56 2808

原创 Riru&Edxposed学习研究(二)手把手编译Riru和Edxposed工程源码

一、准备工程源码从以下网址下载Riru工程,下载地址:https://github.com/RikkaApps/Riru从以下网址下载Edxposed工程源码,下载地址:https://github.com/ElderDrivers/EdXposedRiru和Edxposed工程源码下载好之后,用android studio打开,等待加载完成。二、工程源码编译1.Riru工程源码编译 Riru工程编译有两种方式。一种是用gradlew命令编译;另一种是使用a...

2021-04-17 11:02:12 2651 1

原创 Riru&Edxposed学习研究(一)手把手安装Edxposed

一、前期准备测试手机设备准备环境:手机型号:oneplus3系统版本:Android10手机提前刷入twrp recovery镜像。关于如何刷twrp可以参考如下文章:安卓10源码学习开发定制(2)刷机操作之Recovery刷机演示Magisk刷机包准备:Magisk下载地址如下:https://github.com/topjohnwu/Magisk/releases此处我选择Magisk v21.1版本,下载地址:https://github.com/t.

2021-04-17 10:58:49 8333

原创 安卓10源码开发定制(37)DexClassLoader加载流程分析

一、前言 在安卓app加固、插件化开发过程中,DexClassLoader用的比较多。像现在的各种类Xposed的框架在加载外部插件的时候,也使用了DexClassLoader来进行动态加载模块,然后反射调用插件配置的入口方法。 在8.0系统以后,新增了一个InMemoryDexClassLoader。和DexClassLoader都是继承于BaseDexClassLoader。本章节只分析DexClassLoader,下一章分析InMemoryDexClassLoader...

2021-03-19 10:57:54 957

原创 安卓10源码开发定制(36)系统截屏流程之surfaceflinger服务处理流程分析

一、surfaceflinger启动 surfaceflinger作为显示系统非常重要的服务。在init启动之后init进程通过解析surfaceflinger.rc配置文件进行启动。surfaceflinger.rc文件路径如下:frameworks\native\services\surfaceflinger\surfaceflinger.rc 该文件内容如下:service surfaceflinger /system/bin/surfaceflinger c...

2021-03-19 10:54:14 1052

原创 安卓10源码开发定制(35)系统截屏流程之JNI层分析

一、前言 在上一篇安卓10源码开发定制(34)系统截屏流程之Java层分析已经分析了系统截屏中Java层的流程。本篇将接着上篇分析系统截屏在JNI层的流程。二、截屏JNI层流程分析1.SurfaceControl.java类中的jni接口 SurfaceControl.java中定义了native方法来提供屏幕截图操作。如下所示: private static native ScreenshotGraphicBuffer nativeScreensho...

2021-03-19 10:52:00 706

安卓logcat输出内核日志android studio工程源码

编译该工程源码生成kernellogd程序,通过adb push到手机,然后执行kernellogd 之后,就可以打印输出内核的调试日志信息

2021-01-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除