- 博客(67)
- 收藏
- 关注
原创 刷机同时刷 root
需要首先将 root/**/BINs 的文件覆盖到版本文件夹的 xxxpkg 下,然后运行 .sh 脚本。按照机型名称执行 .sh 脚本文件,通过 fastboot 命令传送镜像文件然后重启就可以。
2025-07-15 11:40:27
214
原创 git 配置 default editor
git 有一个 test editor 的选项,如果测试的话,会按照配置的命令启动一个子进程打开临时文件,然后等子进程退出的时候检测文件有没有被修改。这次手动配了一个 custom editor,搞明白 git 是怎么找 editor 的了。之前是直接用的集成选项里的 VSCode,配置都是预先配置好的。要理解 vscode 的两个启动命令对应的不同模式。
2025-07-14 11:03:15
223
原创 配置鸿蒙 fastboot
fastboot 是一种基于 USB 的底层通信协议,设备进入 fastboot 模式时,会以特定的“USB 设备身份”(通过 Vendor ID、Product ID 等标识)与电脑通信。都需要首先安装驱动。但是 windows 集成了 google 的驱动,并且绝大多数厂商会遵顼 Google 开发标准使用兼容的 Vender ID 和 Product ID。,其 Vendor ID(厂商标识)和 Product ID(产品标识)大多被纳入行业通用标准,或与安卓 ADB 驱动共享基础框架。
2025-07-09 09:57:39
390
转载 转载:ZIP 文件结构解析
本文介绍了ZIP文件的基本结构,分为三部分:数据存储区、中心目录区和目录结束标识。数据存储区包含压缩文件的内容和基本信息,以50 4B 03 04开头;中心目录区记录文件目录信息,以50 4B 01 02开头;目录结束标识标记目录数据结束,以50 4B 05 06开头。通过分析flag.zip示例,详细说明了各分区的字段含义,如文件头、CRC校验码等。文章还指出不同工具可能对字节顺序的显示存在差异。
2025-07-06 17:13:00
29
原创 ByteCTF2021 ByteDroid1 WP
简单的路径穿越,题目做了一个 webview 的缓存机制,如果是。开头的 url path,就从本地文件系统读文件。会自动 decode url path,题解是用。但是没有检查穿越,并且。
2025-06-30 10:45:50
89
原创 ByteCTF2021 MediumDroid WP
官方 wp: https://shvu8e0g7u.feishu.cn/docs/doccndYygIwisrk0FGKnKvE0Jhg这个题给的 wp 不完整,启动的调用部分需要自己写。
2025-06-27 16:06:54
671
原创 华为交换机 USG6311E 新建 vlan
只要创建数个隔离的 vlan interface,便可以发现 Route-Routing Table 下自动配置了广播地址,子网网关(自身 if),子网网段的路由。DS-Switch 的菜单比较笨,必须通过标题栏上面的三个点打开才有选项;必须点开配置-策略才能看到 VLAN ID 的配置。随后把虚拟机的网卡丢到该端口组里,理论上可以在 ARP 里看到 ip 和 mac,与 VCenter 相同。在后面的 esxi 里找到 DSwitch -> 新建分布式端口组,设置相同的 VLANID,其他默认。
2025-06-26 22:14:20
153
原创 ByteCTF2021 EasyDroid WP
官方 wp: https://shvu8e0g7u.feishu.cn/docs/doccndYygIwisrk0FGKnKvE0Jhg。
2025-06-25 16:55:02
377
原创 ByteCTF2021 BabyDroid WP
官方 wp: https://shvu8e0g7u.feishu.cn/docs/doccndYygIwisrk0FGKnKvE0Jhg。
2025-05-24 14:23:31
320
原创 Dockfile 构建过程 RUN 一行命令配置清华镜像
docker:3.12.7 镜像使用的是 debian 系统,比 ubuntu 更轻量。ubuntu是debian派生出来的系统,二者都使用 apt 作为包管理工具,但是二者的镜像列表文件路径不同。需要根据系统类型选择不同的命令。
2025-05-19 22:04:09
356
原创 雷电模拟器安装 KitsuneMagisk (原 Magisk-delta)
在 2025 年,Magisk delta 这个分支的安装可能有极强的时效性,因为仓库的重要维护者弃坑 / 没时间精力,最佳实践随时会变。
2025-05-19 15:00:59
1295
原创 CTFd CSRF 校验模块解读
实现上传头像功能的时候遇到了 403,隐约感觉到可能是 csrf 的问题,但是嫌麻烦一直懒得翻源码里的校验逻辑,反而让自己怀疑是 mime type 有限制,走了弯路。机缘巧合发现了 csrf 的校验位置,总算是通了。
2025-05-11 16:09:01
235
原创 CTFd 文件上传模块解读
CTFd 的 utils.uploads 模块提供了文件上传功能,支持多种存储后端(如 S3 和文件系统)。用户可通过配置 UPLOAD_PROVIDER 切换存储方式。模块的核心功能由 upload_file 函数实现,负责将文件上传到指定后端,并在数据库中创建或更新文件元数据。upload_file 支持多种文件类型(如标准文件、挑战文件、页面文件),并自动处理文件路径和哈希计算。模块还定义了 BaseUploader 基类,提供了存储、上传、下载、删除等基本操作,FilesystemUploader
2025-05-10 16:54:51
235
原创 Burpsuite 伪造 IP
可以用于绕过 IP 封禁检测,用来暴力、绕过配额限制。也可以用来做 ff98sha 出的校赛题,要求用 129 个 /8 网段的 IP 地址访问同一个 domain。
2025-03-31 14:16:46
299
原创 ubuntu 创建新用户
其中 .bashrc 在 interactive shell 的情形下会执行 .profile。在 .profile 里给 PATH 添加本地环境 ~/.local/bin。给实验室服务器建用户,会担心除了基本的用户创建以外有没有别的没考虑到的。问了一下似乎没有,就按最基础的来就可以。自动创建的 home 包含 `.bashrc`, `.profile`.
2025-03-27 14:04:12
382
原创 论文阅读:LLift. Enhancing static analysis for practical bug detection: An llm-integrated approach.
静态分析工具常常要权衡精确性和 scalability。论文考虑到了一种编码 pattern,即 ubi 之后,有 path constraint 剪枝掉出错的分支,如下图。LLM 方面,
2025-03-24 03:01:00
976
1
原创 论文阅读:DefectHunter.A Novel LLM-Driven Boosted-Conformer-based Code Vulnerability Detection Mechanis
传统漏洞检测方法耗时费力;基于机器学习的方法在复杂数据集上难以捕捉高维特征(?这是什么);基于深度学习的方法不能捕捉足够的特征信息(?自注意力机制能处理长距离信息,但是没法捕捉结构信息(structural information?因此,本文提出 DefectHunter 工具,同时提取语义和结构。DefectHunter 使用 Conformer 机制,将自注意力机制和 CNN 融合,用来同时捕获局部位置特征和基于内容的全局交互。
2025-03-23 02:49:34
627
5
原创 论文阅读:Attention is all you need
当前用来解决 seq2seq 问题的模型通常包含 CNN 和 RNN,并且整体架构通常形如 encoder-decoder。并且,时下(2017) 的 SOTA 结果通常会在 encoder 和 decoder 之间用 attention 联系起来。本文提出一个新的结构,transformer,仅依靠注意力机制,可以有效对长距离进行建模,是 CNN, RNN 的有力平替,实验表明效果好,并行度高,收敛快。
2025-03-21 02:19:41
893
1
原创 win10/win11 解决 Ctrl+.(Ctrl+oem_period) 热键冲突
按照这篇博客,网易云音乐会把热键配置到系统热键里抢占掉。1. 在 vscode 的 Keyboard Shortcuts 设置里发现单独按下 ctrl 或者 oem_peroid 有反应,合起来没法检测到,估计是被抢占了。系统自带的中文输入法,有一个切换中英问句点的快捷键,占用了 Ctrl+oem_period,导致 vscode 接收不到该组合。在系统的语言设置里把他关了就好。4. surf the Internet 随机刷到了一个说要配置输入法热键的,扫了一眼发现上图的 Ctrl+句点,解决。
2025-03-19 15:39:47
460
原创 Facebook Infer (fbInfer) 快速上手
写的比较清楚了,提供 binary 和 docker image,仅支持 linux。官方给了个在线的,不过不知道为啥我跑不起来一点,可能是网的问题。
2025-03-18 01:12:02
330
原创 论文阅读:LibHunter. Xie. How Does Code Optimization Impact Third-party Library Detection for Android App
LibHunter 这个工具名称和之前的论文冲了前人的 TPL 版本检测工具声称对混淆有抵抗力,但缺少对代码优化的考虑。本文系统调研了优化策略会如何影响现有的 TPL 版本检测工具,并根据调研结果,开发了LibHunter,可以抵抗主要的代码优化方法,并且也抗混淆和代码优化。
2025-03-07 15:40:17
676
5
原创 快速理清 Attention 注意力和 Encoder, Decoder 概念
之前一直以为 Attention 和 RNN 没关系是凭空蹦出来的新概念;以为 Transformer, Encoder, Decoder 这几个概念是绑在一起的。并不尽然。
2025-03-05 17:19:05
738
原创 补丁供应链案例:CVE-2024-7254. Protobuf. Google
查看 github advisories 列表,定位到 patch 的 java 版本是 3.25.5,打开到 25.x 分支。事后发现相关修复最早出现在 2024 年 7月,merge 到 25.x 分支是 9 月 19,与 advisories 的时间引证。这个库的 issue 和 comment 里没有直接写 cve 编号,不太好找相关的 pr 和 commit,在网上搜到了一篇博客,提到了问题来自这个 parser,并在 reference 里给了个 commit 的 link。
2025-03-05 11:39:15
498
原创 论文阅读:PHunter. Xie. Precise and Efficient Patch Presence Test for Android Applications against obfs
因此,补丁存在测试(PPT)的必要性就体现出来了,通过比对目标程序和 pre-/post- patch reference 的相似度,可以进行更细粒度的比对。现在确定了 target 的一个候选方法,需要沿方法的程序路径,进行细粒度检测比对补丁存在性。我们首先要定义,给定的两个路径之间,在三个维度上的相似性,然后再在两个方法的层面上,把两个路径列表的元素两两匹配,取最好情况。进入第二章,首先在 2.1 介绍了应用混淆的现状,然后 2.2 介绍了 TPL 检测和 PPT 的现存方法。论文说这种场景很常见。
2025-03-04 02:48:48
989
1
原创 2014-DefCon22: Hack All The Things: 20 Devices in 45 Minutes
这个 oral 来自 GTVHacker 团队。这项工作用 UART(tx/rx), eMMC, 命令注入三种方法直接连接到板载芯片,和芯片搭载的软件系统通信或修改存储,获取 root可以把 UART, Rx/Tx 接口理解成平行于 USB 接口的一种设备接口,或者网口。这是一种通信协议,需要芯片里实现类似驱动的软件,决定连接握手后发送什么信息。
2025-03-02 15:26:28
573
原创 联想 SR590 服务器 530-8i RAID 控制器更换损坏的硬盘
新硬盘此时应当处于 JBOD 状态,也就是不在任何 RAID 组里,直连系统。在 drive management 选择 make unconfigured good 让这个盘回到可配置状态,再在同样位置再设置为 dedicated hot spare 并选择 array0作为dedicated 对象。似乎旧版硬件会默认新盘是给系统的新 blk,不符合预期的自动恢复。进到系统发现 RAID 控制器还在报警,可能是因为重建中。开机后系统会暂停在 IPMI 启动后,进系统前,提示你配置 RAID 控制器。
2025-02-25 20:24:28
1279
原创 Attanger: Zotfile 插件在 Zotero7 的平替
里广泛使用的插件,但是作者弃坑了。zotero 官方最近在力推 zotero7,而 ZotFile 又不支持 7,这就让用户很难办(摊手)。ZotFile 的 issue 里有相关的讨论,在 24 年下半年,大家找到了一个平替。的插件(by @MuiseDestiny),是一位国人开发者。
2025-02-14 18:50:14
1173
1
原创 got, plt
以防丢失,记录一下linux 下的动态链接是通过 PLT, GOT 实现。我们考察 test.c, test.o, test 来说明首先通过查看反汇编,考察 glibc 的printf。在 .o 文件 call printf 的时候地址先用(有符号数 -4) 代替,交由链接器处理。.text段的权限是 rx,在这里填写的地址运行时无法修改。所以,链接器需要生成一个跳转代码段(即 plt 的一项),作为中介跳转到动态库(.data)
2025-02-13 03:25:51
469
原创 android 动态库加载机制
省流:android 不兼容 glibc,而是写了一套独立的 c 运行时库 (bionic libc),为移动设备和 google 自己推的东西做了大量优化。在这套工具链里,aosp 实现了一个兼容 bionic libc 的链接器,放到系统中代替 ld。Android动态库的加载原理,真的理解了吗?一文带你游览动态库的加载流程,从 Java 到 C++,一步一步探索知识的 - 掘金。开始,执行流通过 jni 跳转到了 c 函数。好像有点跑题了,我都忘了在哪看到的。,往里跟踪的其他 c 文件。
2025-02-08 00:34:37
538
原创 理解链接动态库:二进制的调库
弱链接允许在编译阶段声明某个符号为“可选”的(或说“弱”),这样在运行时即使目标动态库中不存在该符号,程序也不会链接失败。机缘巧合仔细了解一下才发现二进制的调库原来跟 python, js 这种语言的依赖引用是很像的,把库以二进制 dll/so 的形式放在 path 下面,让系统能找到,然后用路径和名称调用符号就行了。)自动读取 ELF 文件中的依赖信息,并加载所有必需的动态库。在编译和链接阶段已经将动态库的依赖信息写入到可执行文件中,运行时,操作系统的动态链接器会自动加载这些库并解析其中的符号。
2025-02-07 23:08:15
448
原创 回退 android studio emulator 的版本
最近用 frida 需要一个完全跑 arm64 的手机 os,因为雷电实时转义 arm 到 x64 的方案本质上还是 x64,会导致 frida 有 bug。其实就是把原来的 emulator 文件夹删了(备份),把新的解压,再把原来文件夹里面的 xml 复制过来,改一下最下面的模拟器版本就好。原本是在 x64 机器上也能匹配到 arm64 的,现在只能在 native 原生 arm 的机器上才能匹配。该 patch 导致该函数返回 NULL,触发报错。的镜像,尝试用 27 的镜像,又报错。
2025-02-07 01:40:27
925
3
原创 frida 通过 loadLibrary0 跟踪 System.loadLibrary
AOSP 实现 loadLibrary 的代码在 libcore/ojluni/src/main/java/java/lang/System.java,该实现调用了 Runtime 的 loadLibrary0 函数,后者不是 callerSensitive 的,frida 可以 hook。由于 apk 从 java 层开始启动,过早地 hook 原生代码会找不到函数。是一个 callerSensitive 的方法,其内部利用反射机制,从 JVM 的调用栈 callStack 获取 caller 的类。
2025-02-06 23:25:52
299
原创 PTRACE_TRACEME 与反调试
是 Linux 的经典反调试手段,因为系统限制调试是独占的,一个进程只能有一个 debugger。静默跟踪:父进程可通过 PTRACE_SEIZE(非侵入式跟踪)或直接忽略跟踪事件,避免触发信号暂停,使子进程看似未被调试。即使父进程不进行任何实际跟踪操作,该插槽已被占用,导致外部调试器无法通过常规手段附加。利用时间差:在子进程调用 PTRACE_TRACEME 前,父进程或外部程序能快速附加调试器,仍可拦截子进程。设置标记不代表子进程立刻就会被中断,必须收到停止信号时才会被父进程捕获。
2025-02-06 17:09:02
1236
原创 frida 入门
上面依赖中出现的gum是 frida 的动态插桩核心库Gum的意思。Gum用 C 开发,支持访问整个内存空间。考虑到 hook 的代码变化会很频繁,frida 又提供了一套脚本语言的 apiGumJS,为用户省去构建流程,缩短逆向开发时的反馈周期。在运行时,Gum和GumJs被打包成共享库注入到目标进程内。自定义脚本在用户进程中,通过 ipc 跨进程代理变量访问。这一打包、注入、双向通信的工作由frida-core完成。frida-core。
2025-02-03 23:39:52
952
原创 XCTF - IllIntentions wp
这道题本身逻辑不复杂,有一个和三个二级 Activity。主 activity 是空白页面,注册了一个 Receiver,在接收到特定 Action 后会根据参数选择一个 activity 启动。每个 activity 内部会调用 jni 计算一个字符串,从返回值拿到结果,最后将该字符串用 broadcast 广播成一个 Intent。例如,IsThisTheRealOne 的成员函数有 jni 的接口,和一个 OnCreate 入口函数。
2025-01-29 15:17:08
779
原创 XCTF Illusion wp
ndk(jni) 题。题目逻辑很简单,用户输入一个字符串,传递给 native checkFlag 函数验证。如果 encode 结果和预定义 ref 字符串相同就是 flag。需要反解输入,但由于这是个逐字符加密的算法, 逐字符打表破解就可以。(打表再反过来求解不如直接暴力调用 encode 函数,因为同一个位置有不同解)我让 gpt 在 python 复现了 encode 的逻辑,值得注意的是,ida 的反编译结果不完整。可以从传参不完整看出来(没看出来就寄了)
2025-01-28 16:32:14
420
原创 二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2
XCTF 的 apk 逆向-2 题目 wp,这是一道反编译对抗题。
2025-01-27 18:35:24
1182
原创 ida-python 解决 idapython3_64.dll: can‘t load file
结合 dll 的名字并在网上搜了下,这个 dll 属于 ida-python 插件。于是显然这个插件跑不了,console 里只能执行 IDC 语句不能跑 python 脚本。需要重新配环境。
2025-01-27 02:46:14
1367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人