- 博客(24)
- 收藏
- 关注
原创 神庙逃亡(Temple Run)IL2CPP 逆向实战:从 APK 到 Frida 实现角色无敌
本文以 Unity IL2CPP 游戏《神庙逃亡(Temple Run)》为例,完整记录从 APK 解包、提取 libil2cpp.so 与 global-metadata.dat,到使用 Il2CppDumper 还原 C# 结构,并在 IDA 中精准定位死亡逻辑函数,最终通过 Frida 调用游戏原生无敌接口实现角色“准无敌”的全过程。
2026-01-18 20:41:26
1788
原创 IDA Pro 远程调试指南:gdbserver / armlinux_server 全流程实战
本文详细介绍了 IDA Pro 远程调试 Linux ARM / Android 程序 的完整流程,包括:如何判断目标程序所需的 gdbserver / armlinux_serverIDA 自带 dbgsrv 使用说明Input file、启动/附加调试的填写方法常见坑与排错技巧
2026-01-15 11:15:02
969
原创 Ubuntu 桌面版 Wireshark 抓包权限不足问题解决指南
在 Ubuntu 桌面环境中使用 Wireshark 抓包时,经常会遇到“Couldn't run dumpcap in child process: 权限不够”的错误。本文详细分析了问题原因,解释了 Wireshark 与 dumpcap 的权限关系,并提供了官方推荐的一步步解决方案,包括安装配置、用户组设置以及 dumpcap 授权。通过本文操作,普通用户即可安全地使用桌面图标抓取网络流量,无需 sudo。
2026-01-14 16:16:24
415
原创 Linux 下安装与运行 checkra1n 全流程指南(含依赖修复与系统检测)
本文详细介绍了在 Linux 系统下安装 checkra1n 的完整流程,包括:如何通过官方 APT 仓库安装 checkra1n依赖问题排查与手动安装 libtinfo5 与 libncurses5系统信息检测方法(uname -a),确保下载正确版本验证安装是否成功以及运行命令使用方法适用于 Ubuntu、Debian、Linux Mint 等系统,同时提供实战经验,帮助读者快速搭建 iOS 越狱与逆向研究环境。
2026-01-04 10:38:47
957
原创 Android安卓全面解析 ADB(Android Debug Bridge):命令、工具与实用技巧
本文深入介绍了 ADB(Android Debug Bridge) 工具,涵盖其安装、配置、常用命令及高级技巧,旨在帮助开发者和逆向工程师有效地与安卓设备交互。通过掌握ADB,你可以执行如安装应用、调试、设备管理、文件传输、屏幕录制等任务,同时深入分析安卓系统的工作原理。本文不仅适合 Android 开发者,也为进行安卓逆向分析的人员提供了丰富的命令参考和实战经验。无论是自动化测试还是逆向破解,ADB 都是不可或缺的利器。
2026-01-03 12:16:10
1182
原创 一次完整的 Unity Mono 安卓游戏逆向:Frida Hook 绕过碰撞死亡判定
本文完整记录了在 Android Unity Mono 游戏中,通过 APK 分析 → 判断游戏架构 → Hook libmono.so → 精准拦截死亡判定 的实战过程。文章从游戏解包、C# 脚本确认,到 Frida 动态附加进程、Hook mono_runtime_invoke 函数,详细展示了如何通过 Runtime 拦截关键函数 Bone::OnCollisionEnter 实现人物碰撞不死亡的效果。无需修改 APK,无需重打包,可实时调试和观察函数调用。本文的方法适用于 Unity Mono 手游
2025-12-28 12:23:41
1895
原创 从x64dbg的机器码反查 IDA / Ghidra:精准定位伪代码的方法
在逆向分析过程中,调试器与反编译器之间的代码对应关系往往难以准确对齐,尤其在 ASLR、编译优化等因素影响下,单纯依赖地址或汇编文本极不稳定。本文以 机器码(Opcode) 作为唯一稳定锚点,详细介绍如何在 x64dbg、IDA 与 Ghidra 之间进行双向代码定位:从 x64dbg 的汇编指令反查 IDA / Ghidra 中对应的 C 语言伪代码以及从 IDA / Ghidra 的反编译结果精准跳转回 x64dbg 的调试位置该方法在 Crack、Patch、算法还原、授权校验分析等场
2025-12-25 18:40:34
1074
原创 在 Debian/Ubuntu 上遇到 externally-managed-environment 安装错误并解决 —— 安装 frida-tools 的实战
当你在 Debian/Ubuntu(或基于它的发行版)上运行 pip install frida-tools 并看到类似下面的错误时:error: externally-managed-environment这是因为系统 Python 启用了受管理环境(参见 PEP 668),不允许直接用 pip 往系统 Python 全局安装第三方包,以防破坏系统依赖。以下为几种安全、常用的解决方案,并给出操作步骤和示例命令。
2025-10-18 14:24:39
702
原创 Linux文件系统
Linux 文件系统是一个多层面的结构,由三个基本层组成。从根本上来说,逻辑文件系统充当用户应用程序和文件系统之间的接口,管理打开、读取和关闭文件等操作。除此之外,虚拟文件系统有利于多个物理文件系统的并发操作,提供标准化的兼容性接口。最后,物理文件系统负责磁盘上物理内存块的有形管理和存储,确保高效的数据分配和检索。这些层共同形成一个有凝聚力的架构,协调 Linux 操作系统中数据的组织和高效处理。
2024-11-23 13:46:28
1039
翻译 原星链Starlink路由器的分析和逆向工程
该路由器的核心是流行的 QualcommIPQ4018SoC:四核 ARM Cortex A-7、802.11ac WiFi 5GHz 和 2.4 GHz 支持,均为两个通道。此外,该 SoC 还集成了加密引擎和带有硬件 NAT 和流量引导的交换引擎。
2024-11-15 19:41:34
1887
原创 通过系统调用的原始 Linux 线程
Linux 在线程方面拥有优雅而漂亮的设计:线程不过是共享虚拟地址空间和文件描述符表的进程。进程产生的线程是主“线程”父进程的附加子进程。它们通过相同的进程管理系统调用进行操作,无需一组单独的线程相关系统调用。它的优雅程度与文件描述符的优雅程度相同。
2024-11-14 14:52:11
1145
原创 C++ 中的宏用法
我仍然看到很多地方#defines(在 C 和 C++ 中都有),而且我几乎可以肯定在大多数地方,这些并不是真正需要的。有时,我还了解到有一种方法可以用模板或其他构造来表达/替换宏,所以我最终决定列出我遇到的用例,其中用其他东西替换宏是有意义的,以及我不知道有任何替代方案。
2024-11-12 21:31:41
1554
原创 Linux 上实用的无 libc 线程
问题是无法避免使用一些汇编。clone和clone3系统调用都没有与 C 兼容的线程语义,因此您需要使用每个体系结构的一些内联汇编来掩盖它。本文将重点介绍 x86-64,但基本概念应该适用于 Linux 支持的所有体系结构。glibcclone(2)包装器在原始系统调用之上安装了一个与 C 兼容的接口,但我们不会在这里使用它。
2024-11-11 17:28:50
1038
原创 Windows超薄读写锁
不透明枚举提供了额外的类型安全性:它们具有整数的属性,包括琐碎的破坏,但属于不同的类型,编译器禁止将其与其他整数混合。我们不能意外地交叉条件变量和锁定参数——这是我的主要担忧。除了零初始化之外,我们实际上并不关心这些变量的值,因此枚举器是不必要的。(警告:GDB 无法显示不透明枚举,这有点令人恼火。)
2024-11-09 17:03:43
499
1
原创 Windows 动态链接取决于活动代码页
几十年来, Windows 路径一直采用WTF-16编码,但可移植可执行文件的导入表中的模块名称是八位字节。如果名称包含 ASCII 以外的值(技术上超出规范),则动态链接器必须以某种方式将这些八位字节解码为 Unicode 才能构建查找路径。有多种方法可以做到这一点,最明显的是进程的活动代码页 (ACP),这正是发生的事情。因此,链接器加载的特定 DLL 可能依赖于系统代码页。在本文中,我将设计这种情况。
2024-11-09 16:10:43
895
原创 qt c++多语言翻译,我认为qt多语言翻译太麻烦了提到翻译我就害怕,就自己写一个
qt c++多语言翻译,我认为qt多语言翻译太麻烦了提到翻译我就害怕,就自己写一个,其实用一个lan.csv文件, Excel文件编辑一下就行了,新语言就增加一列,新增翻译就往下添加行
2024-03-18 19:19:31
501
原创 qt c++ c语言Linux串口通信服务
qt c++ c语言Linux串口通信服务,串口开线程读写的数据,你可以根据自己的配置修改,接收数据和发送数据加强。内核缓存串口数据,你一次传输100个字符,一次就能接收完,否则你就要循环一百次接收数据,如果循环过快内核来不及缓存,那你接收到的数据就不确定了
2024-03-14 17:53:23
632
1
原创 C++ C语言 qt连接管理wifi界面 代码加wpa_supplicant工具连接,当然代码肯定会报错,我相信你们可以解决。不能解决联系我
C++ C语言 qt连接管理wifi界面 代码加wpa_supplicant工具连接,当然代码肯定会报错,我相信你们可以解决。不能解决联系我
2024-03-08 16:42:18
1375
3
原创 c++ qt 智能指针auto_ptr,unique_ptr,shared_ptr,weak_ptr这些指针的原理只有一个,我就不花里胡哨了
c++ qt 智能指针auto_ptr,unique_ptr,shared_ptr,weak_ptr这些指针的原理只有一个,我就不花里胡哨了
2024-03-08 16:11:59
505
1
原创 Linux ARM嵌入式系统 U盘挂载与中文文件名显示配置
在Linux系统中,U盘插入后会以设备节点的形式出现在 /dev/ 目录下,如 /dev/sda、/dev/sdb 等。每个设备节点后续的数字(如 123)代表U盘的不同分区。此外,除了U盘,其他存储设备如内存卡、Flash存储等也会以类似方式显示。通过 mount 命令可以挂载这些设备,使其能够在文件系统中访问。
2024-03-08 14:39:44
620
1
原创 Qt C++ 解析十六进制字符串:\xE4\xBD\xA0 为什么能变成“你”
在嵌入式平台遇到的,Qt C++ 解析十六进制字符串:\xE4\xBD\xA0 为什么能变成“你”。在 Qt / C++ 开发中,经常会遇到字符串中混杂 \xE4\xBD\xA0 这类十六进制转义序列的情况,尤其在日志解析、协议解析、逆向工程和数据清洗场景中非常常见。本文通过一个实际可用的 Qt C++ 示例,演示如何将字符串中的 \x?? UTF-8 十六进制序列正确还原为中文字符,并支持中英文、数字、特殊符号混合解析,适合直接用于实际项目。
2024-03-04 18:03:22
803
1
原创 qt防止函数未返回值引起崩溃:使用QMAKE_CXXFLAGS配置编译选项
在C++开发中,未返回值的函数可能导致程序崩溃或不稳定问题,但这些错误通常不会触发警告或报错。通过在qro或qri文件中配置QMAKE_CXXFLAGS += -Wreturn-type -Werror=return-type,可以强制编译器检查函数是否正确返回值,从而在编译阶段发现潜在的逻辑错误,避免运行时的不稳定性和崩溃问题。本篇博客介绍了如何配置以及这种做法的好处。
2024-03-02 14:43:49
540
1
原创 在 Linux ARM 上实现 Qt 支持鼠标热插拔
本文介绍了如何在 Qt 5.9 以上版本中通过修改源码支持鼠标热插拔和解决屏幕触摸点击不准确的问题。在默认的 Qt 环境中,鼠标热插拔的支持并不完备,且在触摸屏设备上可能会遇到点击不准确的情况。本文提供了如何通过扩展 QDeviceDiscovery 类,结合 QFileSystemWatcher 来实现设备的动态监控,同时修改触摸事件的处理机制来提升触摸点击的精度。通过这些源码修改,可以显著改善 Qt 在 Linux ARM 系统上的设备交互体验。
2023-06-25 09:03:03
732
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅