Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.
Get Feederwechat2rss.xlab.app
Get the latest updates from 软件安全与逆向分析 directly as they happen.
Follow now 30 followers
Last updated 4 days ago
4 days ago
原创 非虫 2026-05-30 14:43 湖北 木鱼分析沙箱新版本重磅内测来袭木鱼的目标是对安卓与iOS移动系统软件实现全方位的穿透分析,做安全分析从业员样本分析路上的瑞士军刀。沙箱功能APK静态与动态分析XAPK静态与动态分析自动化逆向分析APP网络协议分析APP威胁分析平台沙箱报告 APP基本信息 APP风险打分 APP证书信息 APP概要信息 APP权限 APP组件信息...
20 days ago
原创 非虫 2026-05-14 15:35 湖北 解决一个安卓15/16调试APK运行adb jdwp无输出的问题 这个问题的起源是一个安卓学员发现在一台Pixel6的安卓16设备上,调试debugable的APK程序时,adb jdwp无输出的问题。不能打印jdwp端口,就没办法adb forward转发后开IDA的调试。指令流程 adb install...
21 days ago
原创 非虫 2026-05-13 15:42 湖北 有意思的官方杀同人安卓投屏多窗口融合模式 上一篇《iOS虚拟手机可以玩窗口化融合的越狱插件》在结尾留过一个尾巴,顺手提到安卓平台现在也有了类似的工具,会单独写一篇。这一篇就来还这个愿,只是故事比预想中还要戏剧一点。事情是这样的:X上一个的开发者推主先发了一条推,说自己刚搞完一个"融合模式"的安卓投屏工具,预计下周上线,欢迎大家来玩。结果没过几天,朋友告诉他scrcpy刚发布的4.0版本里加了一个几乎完全一样的功能,叫flex display。一查commit,scrcpy这边的提交功能的时间正在他发推的完不久。这其实是同人圈很熟悉的桥段,"刚做完发完安利,官方就出了一模一样的东西"。只不过这次的"官方"是Genymobile这个团队,他们手里那把scrcpy,已经是安卓投屏事实上的标准。整件事看下来,又好笑又值得复盘,所以才有了这一篇。同人作品AndDrive先聊推主@1ittlecup搞的这个安卓投屏工具,从他给出的截图大致能拼出全貌。工具叫AndDrive(D),介绍写得很直白,无缝连接你的Mac和Android设备。界面上有两个Tab,一个叫"设备管理",一个叫"应用列表",当前选中的是一台Pixel 8,右上角有一个特别醒目的"融合模式"开关。下方搜索框旁边的应用列表里,显示着povo2.0、QQ、Shadowsocks、Shizuku这一类常用app的图标。也就是说,它要做的并不是把整个Android手机屏幕投到Mac上那种传统方案,而是把单个app以独立窗口的形态投出来。每个app就是一个Mac原生外观的窗口,可以拖、可以摆、可以叠,和iOS那边MilkyWayReborn的窗口化思路精神上是一致的,只是平台从越狱iOS换成了原生安卓。按推主的说法,这个工具基本已经做好,准备下周公开发布。从功能反推实现链路,基本可以猜到他在做这几件事:通过adb或者类似通道在手机端启动一个server,接收来自Mac的指令。在Android侧创建虚拟显示,把目标app拉起到虚拟display上,再截取这一块surface的画面。把surface流编码后回传到Mac端,每个虚拟display对应一个Mac窗口。反向把鼠标、键盘、剪贴板事件转发回Android侧,作用到对应的虚拟display。同步Mac窗口的尺寸变化,让虚拟display的尺寸跟着实时调整,做到所见即所得。这五件事,前四件是经典投屏方案的常规操作,scrcpy过去几年里基本都做过。真正卡住所有同类工具的是第五件,让虚拟display的尺寸跟着客户端窗口动态调整,而不是开始一次就锁死,这条路在Android上并不平坦。scrcpy版本4.0scrcpy v4.0是2026年5月12日发布的,作者是Genymobile的rom1v。这一版的changelog长得吓人,从SDL2迁移到SDL3、加了相机变焦和手电筒控制、加了--keep-active、修了一大堆Meta Quest闪烁问题。但站在这次故事的视角,里面最关键的一句只是这一行:Add flex...
22 days ago
原创 非虫 2026-05-12 12:21 湖北 最近比较流行通杀!前面讲过两篇Linux的通杀漏洞,这次轮到安卓了。这一次又是Duck-Detector在搞事,老版本这个检测器C语言编写的,现在新版本使用C++重构开源了,挺值得学习的。Duck这次公开了一个检测方法。可用于全版本Magisk检测,实际它也可以用于对KernelSU与APatch的检测。随后LSPosed沿用同一思路,整理出更精简的DirtySepolicy检测器。与此同时,KernelSU与APatch社区也亮出了反检测的思路与代码。接下来,本篇主要介绍一下这个通杀检测的原理,以及三种过这个检测的方法。文章作者:非虫(fei_cong@hotmail.com)Duck-Detector检测原理这次检测的核心思路,是把探针下沉到app_zygote进程,借助它对SELinux策略的查询能力,跳过传统的包名、进程名与文件路径扫描,直接向内核发问两件事:目标上下文是否存在、目标访问是否被放行。前者通过写入/sys/fs/selinux/context完成,后者则依赖android.os.SELinux.checkSELinuxAccess接口。预加载类是整条检测链路的起点。当currentUid与appInfo.uid不一致,或Native库未能加载时,探针会直接产出一份可解析的失败快照,把"载体失效"与"发现Root痕迹"严格区分开来,避免环境异常被误判为命中。classAppZygotePreload : ZygotePreload {overridefundoPreload(appInfo: ApplicationInfo) {val result...
25 days ago
原创 非虫 2026-05-09 12:11 湖北 iOS虚拟手机可以玩窗口化融合的越狱插件 上一篇《iOS虚拟手机实现能力现状》已经把虚拟手机能跑、能装、能控、能切换环境这几件事讲清楚了。既然底座已经能稳定越狱、能保留状态、还能做自动化。所有的准备工作做好后,下一步要问的,肯定就是有什么好玩的插件?怎么给虚拟手机安装越狱插件?不要急,这一篇就讲这个。本篇介绍的MilkyWayReborn是iOS上一个集多窗口和窗口缩放能力于一体的越狱tweak。它支持在同一块屏幕上,可以同时打开多个App窗口,而不是只能在虚拟手机屏幕的前台、后台和分屏之间来回切换。顺便提一嘴,安卓设备现在也有了类似的工具,有机会我也会在后面的公众号文章中介绍,大家拭目以待吧。项目介绍先看仓库本身。https://github.com/34306/MilkyWayReborn这个仓库是一个越狱插件,包名是com.milkyway.reborn。仓库文档描述它是一个用于在同一屏幕上同时使用多个App的多任务tweak。查看它的control文件,定义是给iOS18和26用的窗口化多任务插件,???是MilkyWay2的现代重写版。这个版本范围对于安卓研究设备的版本号来说,够宽泛也够用了。从工程结构看,它是典型的rootless的Theos包,Makefile里明确写了THEOS_PACKAGE_SCHEME = rootless,目标架构是arm64和arm64e。这意味着它不是传统老式越狱时代那种随便往系统目录里塞文件的玩法,而是按现代rootless越狱的布局来做的。功能源码主干由这几个模块组成:Tweak.x:负责hook系统和场景流程。MWWindowView.m:负责窗口外壳、按钮和拖拽缩放。MWBackgrounderManager:负责管理哪些App要保持前台状态。MWSceneHelper:负责场景唤醒、休眠和查找。MWPassthroughWindow:负责把内容挂到合适的透传窗口里。MWThemeManager:负责窗口样式和控件外观。基本能看出,它是直接插进SpringBoard和Scene系统里,把App变成可以拖来拖去的窗口。iOS虚拟手机越狱要让这个插件跑起来,前提不是安装包,而是先把iOS虚拟手机搞成越狱状态。在前一篇文章里,iOS虚拟手机的越狱路线已经讲过了,核心思路就是走vphone-cli的Jailbreak变体,而不是在系统起来以后再单独找一套传统越狱方案。这个路线会把系统、启动链、用户态工具和bootstrap一起准备好,最后给你一个已经具备/var/jb布局、能装包、能加载Substrate插件的虚拟iPhone。如果你沿用前一篇的虚拟手机构建链,通常就是直接选JB=1这条路:make setup_machine JB=1简单的讲,虚拟手机越狱后,在安装插件之前,先确认这几件事:Sileo或者等价的包管理器能正常打开。mobilesubstrate已经在系统里。/var/jb存在,说明是rootless布局。SpringBoard重启后不会把越狱环境打回原形。你能在虚拟机里装一个最简单的tweak并让它生效。如果这几步没问题,说明虚拟手机已经具备安装MilkyWayReborn的基础条件了。安装越狱插件MilkyWayReborn的安装方式很标准,就是越狱插件的那一套。因为它依赖mobilesubstrate,所以本质上是一个要被注入SpringBoard和目标App的动态tweak。make package先生成.deb包。然后把编译好的包通过SSH丢进虚拟手机,接着使用Sileo或者dpkg...
26 days ago
原创 非虫 2026-05-08 09:48 湖北 又一款通杀全线Linux发行版的0Day漏洞2026年5月7日,又一个Linux本地提权洞公开了,名字叫DirtyFrag。仓库地址是:https://github.com/V4bel/dirtyfrag这个漏洞不是靠单个入口覆盖所有环境,而是把两个同类页缓存写问题串到了一起。第一条链路走xfrm-ESP,能拿到4字节页缓存写;第二条链路走RxRPC,写入值不如ESP自由,但不依赖用户命名空间。两个入口互相补盲区,所以仓库里把它称为Universal Linux LPE。截至2026年5月8日,仓库说明里还没有统一CVE编号。ESP分支已有netdev树补丁,RxRPC分支也有公开补丁邮件,但发行版是否回补仍然要看各自公告。背景DirtyFrag属于DirtyPipe、CopyFail这一类问题:攻击者没有目标文件的写权限,却能让内核在页缓存上写入数据。这里的关键点不是磁盘文件被直接写了,而是PageCache里的那一页被改了。后续进程读这个文件时,读到的就是被污染后的内存副本,直到缓存被丢弃或系统重启。DirtyPipe污染的是struct pipe_buffer,DirtyFrag污染的是struct sk_buff里的frag。名字里的Frag就是这个意思。从影响时间看,仓库README给出的跨度很长。xfrm-ESP分支从2017年1月17日的cac2661c53f3开始受影响,RxRPC分支从2023年6月的2dc334f1a63a开始受影响。两条链合起来,漏洞有效生命周期接近9年。它的共同入口可以拆成三步:攻击者只读打开目标文件,比如/usr/bin/su或/etc/passwd。通过splice()把目标文件的页缓存页零拷贝塞进网络发送侧skb->frags[]。接收侧内核代码认为自己只是在原地做解密校验,结果把解密过程中的STORE写到了攻击者塞进来的页缓存页上。抽象成路径就是:只读文件PageCache 被splice引用到pipe 被splice发送到socket...
27 days ago
原创 shixuan 2026-05-07 11:57 湖北 安卓GKI内核KPM加载器开发踩坑实战本文详细记录了把.o变成.ko在安卓系统上完整加载的全过程探索,一起来感受ELF格式探索的奇妙之旅作者:shixuan经作者授权,文章重排优化后在[软件安全与逆向分析]公众号发布目录1 问题起点与ELF边界有一段用户空间代码需要在内核里跑。正常做法是用内核构建系统进行编译生成ko模块,但那样得维护一套Kbuild,而且代码里的用户空间惯用法改起来很痛苦。于是就冒出一个念头:能不能直接把编译好的二进制文件直接"转"成ko模块?直觉上这应该可行——反正.ko就是ELF可重定位文件(ET_REL),普通的 .o 编译产物也是 ET_REL。格式骨架一样,差的无非是元数据。真的上手之后,才发现坑比想象中多得多。ELF类型和转换边界先理清几个基本概念。ELF 文件有四种类型:类型说明谁处理重定位ET_REL (.o,...
28 days ago
原创 非虫 2026-05-06 10:32 湖北 APatch最新版检测与过检测原理分析本文主要讲解Duck-Detector最新版本引入的对APatch的检测原理的分析,以及APatch官方的过检测思路。作者:非虫(fei_cong@hotmail.com)Duck-Detector的检测逻辑APatch目前只支持ARM64架构,那检测与反检测都是针对安卓这一架构进行。这个检测思路的关键点不在于检测框架调用了什么系统功能或有什么文件特征,而是“同一个系统调用在两种输入下的时间差有多大”。核心检测逻辑大致如下:1. 读取两组输入,一组是128字节的key字符串,一组是仅包含`\0`的key字符串。2. 用ARMv8硬件计时器测两组输入的平均延迟。3. 计算两者差值。4. 如果差值超过3.0微秒,就同时标记`kernel_su`和`apatch`。相关更新的检测代码如下:staticinlineuint64_tget_cntfrq(){// 读取cntfrq_el0,得到计数器频率uint64_t val;asmvolatile("mrs...
about 1 month ago
原创 非虫 2026-04-30 21:26 湖北 最新通杀全线Linux发行版的CVE漏洞解析昨天出了一个新洞:CVE-2026-31431,这个洞太猛了,号称不借助任何外部的工具,可以LPE揽权获取最高权限干翻现在多数的Linux发行版本。今天我试了下Ubuntu22.04与Ubuntu24.04,在打完了最新的补丁的情况???,稳定的本地揽权成功!太强了,看看是什么原理。背景CVE-2026-31431 是一个典型的内核逻辑漏洞,影响范围涵盖了几乎所有主流 Linux 发行版。其核心问题在于 crypto/algif_aead.c 中的状态机处理不当:AF_ALG 滥用:通过...
about 1 month ago
原创 非虫 2026-04-27 09:00 湖北 Linux内核模块编程指南 中文PDF 这最近2个多月的几十次更新变化挺大的,Linux内核模块编程指南 全书的目录有了很大的变化,更新一个全新的版本给大家,方便朋友们学习内核模块开发。点击阅读原文,跳转PDF下载 阅读原文 跳转微信打开
about 1 month ago
原创 非虫 2026-04-26 19:16 湖北 iOS虚拟手机实现能力现状 上一篇《iOS虚拟手机实现原理解析》写作时,vphone-cli还处在很早期的形态, iOS虚拟手机实现能力现状上一篇《iOS虚拟手机实现原理解析》写作时,vphone-cli还处在很早期的形态,仓库大约只有5个commit。那时它更像一个把Apple私有Virtualization.framework能力拉起来的启动工具:用少量Swift/ObjC代码创建PV=3虚拟机,再配合Python脚本和Shell脚本完成固件合并、引导链补丁、DFU恢复、Ramdisk启动和CFW安装。截至2026-04-26分析时,vphone-cli已经不只是“能启动虚拟iPhone”的PoC,而是逐渐演化成了一套围绕iOS虚拟手机构建、修补、安装、运行、自动化、越狱和环境切换的研究平台。本文不再重复上一篇中已经讲过的PV=3硬件模型、私有Entitlements、DFU恢复、SHSH签名、Ramdisk引导和基础CFW安装细节,而是从当前仓库的提交演进和文件结构出发,梳理vphone-cli现在具备了哪些能力,以及这些能力相比早期版本解决了什么问题。1 分析基线分析的仓库为:https://github.com/Lakr233/vphone-cli项目当前最关键的变化可以概括为五点。第一,固件补丁逻辑从早期Python脚本为主,迁移到SwiftFirmwarePatcher模块为主。Python现在主要保留在CFW二进制修补、pymobiledevice3桥接、Ramdisk构建等脚本侧。第二,工具入口从分散脚本变成Makefile统一入口。构建、签名、VM创建、固件准备、固件补丁、DFU恢复、Ramdisk、CFW、越狱安装、Host预检、AMFI绕过辅助和备份切换都集中在make目标中。第三,固件变体从单一路线扩展为Patchless、Regular、Development和Jailbreak四种路径。不同路径对应不同的安全绕过强度、调试能力和越狱能力。第四,虚拟机运行时不再只是显示图形界面和串口,而是通过vphoned和主机侧控制Socket提供文件、应用、钥匙串、剪贴板、IPA/TIPA安装、位置、电池、低电量、触控、按键、截图和自动化测试能力。第五,研究环境从一次性制作转向可复用生命周期管理。VM配置进入config.plist清单,ECID和UDID可以稳定预测,VM状态可以备份、恢复和切换。2 项目变化项目初始提交发生在2026-02-27,主题是“Add vphone CLI,...
about 1 month ago
原创 非虫 2026-04-22 13:24 湖北 电子书分享:安卓系统AOSP技术内幕 这是一本开源的免费电子书,共64个章节,详细讲解AOSP的不同组件。同时这也是一本英文电子书,支持本地浏览器访问。有时间精力的朋友,也可以将其翻译并制作成中文PDF。就是会需要耗费一些时间与Token。以下是图书的目录: chapters organized bottom-to-top through the...