自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 逆向防风控新技术EBP

eBPF是一种运行在Linux内核中的可编程虚拟机机制,最初用于网络数据包过滤,现已扩展到系统监控、性能分析等领域。其核心特点是无需修改内核即可安全执行用户态程序,并能挂载到多种系统事件上进行实时监控。虽然并非专为逆向工程设计,但在动态行为分析、反调试检测、无侵入跟踪等方面非常有用,可配合传统逆向工具获取程序运行时上下文。示例展示了如何用eBPF跟踪execve系统调用,监控进程启动行为。eBPF不能替代传统逆向工具,但可作为Linux环境下动态分析的有效补充手段。

2025-11-21 10:31:28 795

原创 安卓逆向与灰产防御总结

安卓逆向技术与灰色产业密切关联,常被用于非法牟利。典型应用包括破解付费应用、开发自动化黑产工具、窃取敏感数据以及制作钓鱼软件。尽管逆向技术本身中立,但未经授权用于牟利可能触犯《刑法》和《网络安全法》。开发者需采取代码混淆、反调试、加固等措施加强防护。法律明确禁止以牟利为目的的逆向行为,相关操作面临严重法律风险。

2025-11-21 07:30:00 1181

原创 如何将带图像的word导出为md

将Word文档(.docx)转换为Markdown(.md)格式的三种方法:1)使用Pandoc工具,支持图片提取并自动生成相对路径引用;2)通过Python脚本调用Pandoc接口实现转换;3)使用在线转换工具(需注意隐私风险)。推荐使用Pandoc,能保留图片且跨平台,但复杂格式可能无法完美转换。

2025-11-20 21:50:51 950

原创 逆向教程 ARM64寄存器详解

ARM64(AArch64)的寄存器模型包括31个64位通用寄存器(X0-X30)、特殊寄存器(SP、PC等)和32个128位向量寄存器(V0-V31)。通用寄存器中,X0-X7用于参数传递,X29/X30分别作为帧指针和链接寄存器。向量寄存器支持不同位宽访问(B/H/S/D/V),用于SIMD和浮点运算。调用约定(AAPCS64)规定整型参数通过X0-X7传递,浮点参数通过V0-V7传递,返回值使用X0或V0。栈需16字节对齐,特殊寄存器如SP和PC有特定访问限制。

2025-10-24 15:07:07 1442

原创 逆向教程 unity浮点数修改

Unity游戏数据修改技术分析 本文演示了如何通过修改堆栈数据而非源代码来改变Unity游戏逻辑。以一个简单的加法函数为例,原始功能是计算两个输入框数值的和(result=num1+num2)。通过分析汇编代码,发现关键指令是在0xA170B0处的FADD指令执行浮点加法。要修改为result=num1+myNum,可以在内存中定位并修改该指令的操作数,将S1寄存器(存储num2)替换为自定义的myNum值。这种技术适用于无法直接修改源代码的情况,通过操纵运行时堆栈和寄存器数据实现逻辑变更。

2025-10-24 14:53:15 423

原创 frida教程 frida防检测方法

摘要:通过修改frida-server默认端口可规避基于端口的frida检测。具体步骤包括:1)在目标设备启动frida-server并指定自定义端口;2)在本地主机通过-H参数或环境变量配置远程连接;3)使用frida-ps验证连接。需注意安全风险,建议仅在可信内网使用或通过SSH隧道转发端口,避免公网直接暴露frida-server服务。(150字)

2025-10-17 19:07:47 855

原创 逆向教程 android natives初始化优先级

在Android Native开发中,初始化机制的执行优先级为:1) __attribute__((constructor))函数(最高)→ 2) 已废弃的_init()函数 → 3) JNI_OnLoad()函数(最低)。现代Android系统中,__attribute__((constructor))会在so加载后最先执行,而_init()通常不会被执行。JNI_OnLoad在Java加载库后被调用。建议优先使用__attribute__((constructor))进行早期初始化,用JNI_OnLoa

2025-10-17 19:03:23 1427

原创 反编译教程 java 反射与反编译

Java和是两个完全不同的概念,但它们在 Android 安全、逆向工程和代码保护中经常被一起讨论。下面分别解释它们的含义、关系以及在实际中的作用。

2025-10-14 20:04:11 998

原创 反编译教程 java动态加载与反编译

动态加载DEX文件分析:通过加密assets中的DEX文件,运行时解密并加载到内存,提高反编译难度。代码首先从assets读取加密的xiaojianbang.dex,解密后写入应用私有目录,再通过DexClassLoader动态加载。为增强隐蔽性,加载完成后立即删除临时DEX文件。这种技术常用于加固保护,核心在于运行时解密和内存加载,防止静态分析提取原始代码。

2025-10-14 20:03:05 330

原创 Unity 游戏安全与 IL2CPP 逆向分析(二)

《IL2CPP逆向分析与Il2CppDumper使用指南》摘要: 本文介绍了Unity游戏IL2CPP脚本后端的逆向分析方法。IL2CPP会将托管代码编译为C++并打包进原生库,导致直接逆向困难。通过使用开源工具Il2CppDumper,结合global-metadata.dat和libil2cpp.so文件,可以恢复原始类型信息并生成可读DLL。文章详细解析了工具的工作流程和源码结构,包括加载文件、解析二进制、重建元数据和生成输出等步骤。同时提供了具体使用步骤和常见问题解决方案,如处理加密的metadat

2025-10-12 20:12:37 2203

原创 Unity 游戏安全与 IL2CPP 逆向分析(一)

摘要:Unity3D游戏开发中,IL2CPP逐渐取代Mono成为主流编译方案,以提高代码安全性。IL2CPP将C#代码转换为C++并编译为原生库(libil2cpp.so),相比Mono的直接IL代码更难以反编译。但未加密的global-metadata.dat仍可能被逆向工具还原类型结构。文章分析了Unity项目结构、IL2CPP的工作原理及其安全性特点,指出其防护效果依赖元数据加密、代码混淆等安全措施。(149字)

2025-10-12 12:27:52 2250

原创 逆向教程 寄存器详解

通用寄存器是CPU中用于临时存储数据、地址或中间结果的高速存储单元,具有用途广、访问快的特点。不同架构的寄存器数量和名称不同,如x86-64有RAX、RBX等16个64位寄存器,ARM64有X0-X30等31个寄存器。通用寄存器可用于算术运算、参数传递、保存返回值和中间结果等操作,能显著提升运算效率。受限于CPU设计,寄存器数量通常较少,但通过灵活使用可优化程序性能。

2025-10-09 22:03:03 1019

原创 逆向教程 堆栈详解

主流架构(ARM/x86/x86-64)的堆栈(stack)默认从高地址向低地址生长,压栈(push)使栈指针减小,弹栈(pop)使其增大。这是由操作系统和ABI约定的通用规范,而非CPU强制要求。内存布局中,栈位于高地址区向下扩展,堆位于低地址区向上增长,两者相向而行。这种设计被Linux、Windows等主流系统广泛采用,但在特殊场景中可能存在例外。

2025-10-09 21:53:52 1193

原创 逆向教程 绕过frida反调试

本文介绍了一种通过魔改Frida(Rusda版本)绕过应用反调试的方法。主要内容包括:1)使用魔改版Frida彻底移除特征字符串;2)手机端配置(CPU架构检测、服务端部署);3)PC端环境配置(版本匹配检查);4)连接设备并执行Hook脚本的完整流程。关键点在于使用Rusda的预编译版本或自行编译,确保与本地Frida版本严格匹配,并通过自定义脚本拦截目标应用的检测逻辑。该方法避免了传统字符串Hook的繁琐,提供了一种更彻底的解决方案。

2025-10-06 11:25:26 2023

原创 逆向教程 RPC协议介绍和使

摘要:在安卓逆向工程中,Hook dlopen 是关键操作,用于监控和修改动态库(.so文件)的加载过程。通过拦截dlopen,可实现动态库加载监控、关键函数注入、反调试绕过等功能。常见技术包括LD_PRELOAD、Inline Hook及Frida等工具。应用场景包括分析加密算法、绕过保护机制和动态注入功能。但需注意兼容性、反检测措施及法律合规性。该技术为深入分析和修改应用行为提供了强大支持。(150字)

2025-10-06 11:24:19 1539

原创 安卓逆向为什么需要hook dlopen

摘要:在安卓逆向工程中,Hook dlopen 是关键操作,用于监控和修改动态库(.so文件)的加载过程。通过拦截dlopen,可实现动态库加载监控、关键函数注入、反调试绕过等功能。常见技术包括LD_PRELOAD、Inline Hook及Frida等工具。应用场景包括分析加密算法、绕过保护机制和动态注入功能。但需注意兼容性、反检测措施及法律合规性。该技术为深入分析和修改应用行为提供了强大支持。(150字)

2025-10-03 11:51:37 1615

原创 安卓反编译与保护机制分析

安卓应用安全防护与反编译技术分析摘要: 本文系统分析了Android应用反编译原理与安全保护机制。APK文件由classes.dex、resources.arsc等核心组件构成,可通过解压、dex2jar/JADX反编译工具链进行逆向分析。应对措施包括代码混淆(ProGuard/R8)、字符串加密、反调试检测(/proc/self/status检查)、完整性校验(签名验证/SHA-256校验)等多层防护。特别提出Native层反调试(ptrace)和运行时动态解密等高级技术方案,以及模拟器检测(Build.

2025-10-03 11:47:10 1393

原创 下载早期app版本的办法

如何安全下载APP旧版本?安卓用户推荐使用APKMirror、APKPure等可信第三方网站,注意核对签名和包名。iOS用户可通过"已购项目"下载兼容版本,或使用旧版iTunes获取IPA文件。技术用户可用ADB备份或GitHub开源项目。关键提示:优先选择官方渠道,安装前扫描文件,关闭自动更新以防覆盖。不同平台方法不同,但安全验证必不可少。

2025-10-01 10:41:39 18252

原创 爬虫与 Frida 搭配

摘要:Frida与爬虫结合可解决现代Web/App的反爬难题,如JS加密、接口签名、混淆代码等。Frida通过动态Hook关键函数获取运行时数据(如签名参数、加密token),帮助爬虫构造合法请求。典型场景包括:绕过JS加密、逆向App接口、对抗反调试检测、自动化登录维持会话、分析动态协议(如WebSocket)。该方案特别适用于传统爬虫无法直接获取数据的高防护场景,通过动态注入和函数拦截实现稳定数据采集。

2025-10-01 10:38:16 1538

原创 逆向教程 ARM汇编基础

本文简要介绍了ARM汇编中的函数调用约定,重点对比了ARM32和ARM64架构下的返回值寄存器使用规则。在ARM32中,整数通过R0返回,而ARM64使用X0。文章通过一个加法函数的汇编实现示例(使用w0/w1寄存器传参,w0返回值),演示了ARM64汇编的编写和调用方法,并提供了编译运行指南。最后通过对比表格总结了x86-64、ARM32和ARM64三种架构的调用约定差异,指出ARM调用约定规整的特点:前几个参数用寄存器传递,多余参数压栈,浮点参数使用专用寄存器。

2025-09-30 18:28:16 1472

原创 unidbg教程 模拟测试京东app中的so函数

本文展示了一个使用Unidbg框架模拟京东App的JNI实现类JDJni。该代码主要实现了多个关键JNI方法的hook,包括: 获取静态字段(getStaticObjectField)和对象字段(getObjectField) 调用静态方法(callStaticObjectMethod)和对象方法(callObjectMethodV) 创建新对象(newObject/newObjectV) 重点模拟了BitmapkitUtils、BitmapkitZip等京东特有类的方法调用,处理APK路径、RSA证书解析

2025-09-30 17:14:21 962

原创 unidbg教程 模拟测试起点app中的so函数

文章摘要: 本文介绍了使用Unidbg框架模拟执行Android native加密库libttEncrypt.so的过程。通过创建32位模拟器实例,加载目标so库并调用JNI_OnLoad函数,实现对加密方法的分析。文章详细展示了如何查找符号表、Hook关键函数(如ss_encrypt)、监控参数传递等逆向分析技术,并比较了HookZz、Dobby和xHook三种Hook工具的使用方法。该案例为分析Android native层加密算法提供了完整的技术实现路径,包括内存数据提取、函数调用跟踪和参数监控等关键

2025-09-27 10:58:05 1481

原创 unidbg教程 典型案例代读二

本文介绍了使用Unidbg框架模拟安居客App签名过程的代码实现。通过构建32位Android模拟器环境,加载目标so库libsignutil.so,并解析Java类SignUtil,实现了对native方法getSign0的调用。代码展示了如何初始化Unidbg环境、处理参数转换、调用JNI方法以及资源释放等关键步骤。测试用例演示了输入参数的处理和签名结果的获取过程,为逆向分析移动应用签名算法提供了参考实现。

2025-09-27 10:36:18 1020

原创 unidbg修改so运行逻辑的办法

unidbg 修改so运行代码的两个方法,hook指令和下断点使用回调函数。

2025-09-24 10:25:48 650

原创 unidbg教程 使用案例代读

本文使用Unidbg框架模拟执行snh48 app的加密库libencryptlib.so,主要实现了以下功能: 构建64位Android模拟环境(API 23),加载目标so库并初始化 通过内存分配和指针操作,调用so中的两个关键函数: 0x1EAD0地址函数(疑似MD5初始化) 0x1FA38地址函数(传入输入字符串"12345678"并获取32字节输出结果) 使用Inspector工具输出加密结果 代码展示了如何通过Unidbg在非Android环境下动态分析native代码,适用

2025-09-24 10:07:28 539

原创 逆向教程 frida通用hook教程

本文介绍了一个使用Frida框架Hook Android ART运行时中NewStringUTF JNI函数的脚本,用于监控Java层通过JNI创建UTF-8字符串的行为。脚本通过定位libart.so中的NewStringUTF函数,过滤掉CheckJNi相关函数,在函数调用时打印字符串内容及调用栈信息。使用时需注意不同Android版本符号差异,并确保在Frida注入环境下运行。该方案适用于监控敏感数据、定位字符串来源等安全分析场景。

2025-09-23 08:32:35 1158

原创 逆向教程 万能的frida hook方法

摘要:该Frida脚本封装了两个易用函数,简化原生函数hook过程。print_arg函数智能判断地址类型,安全打印内存内容或数值。hook_native_addr函数提供一站式hook方案,自动记录函数调用前后的参数和返回值,支持指定参数数量,并附带模块信息。两个函数配合使用可实现快速调试,特别适合初学者或需要快速验证的场景,避免了手动处理内存访问和参数解析的复杂性。

2025-09-23 08:30:17 1075

原创 逆向教程frida 如何效率打印函数堆栈

trace_natives工具可快速打印函数调用堆栈,效果如图所示。该工具通过Frida实现,使用命令frida-trace -UF -O 文件路径即可运行,适用于Android应用逆向分析场景。项目开源地址为https://github.com/Pr0214/trace_natives,能有效提升native函数调用的追踪效率。

2025-09-22 08:03:23 1134

原创 逆向教程 frida如何hook 难以hook的函数

该文章主要探讨了如何hook在so加载时执行的构造函数(initArray)。通过分析发现,传统hook方法无法捕获这些在so加载阶段就执行的函数。文章提出解决方案:先hook dlopen函数,在so加载时中断程序执行;然后hook linker64的call_constructors函数,在构造函数执行前完成hook操作。文中提供了完整的Frida实现代码,包括hook_dlopen、hook_call_constructors和hook_initArray三个关键函数,展示了如何替换so中的多个初始化

2025-09-22 07:57:05 983

原创 逆向教程 如何处理hook不到的函数

摘要:文章介绍了如何hook so文件中在加载时执行(main之前)的构造函数(如initArrayTest3)。由于常规hook方法无法捕获这些函数,提出了通过hook dlopen和android_dlopen_ext中断加载过程,再hook linker64的call_constructors函数来拦截初始化流程的方案。文中给出了Frida实现代码,包括查找符号地址、替换初始化函数等关键步骤,解决了so加载时函数hook的难题。该方法适用于需要捕获早期初始化函数的逆向分析场景。

2025-09-20 09:19:13 927

原创 逆向教程 frida获取寄存器对应的值

摘要:本文介绍了使用Frida进行inline hook技术来获取函数执行过程中寄存器值的方法。通过定位so库基地址和偏移量,在函数执行前后打印ARM64架构下x8寄存器的整数值。代码示例展示了如何实现这一功能,包括获取模块基地址、计算hook点地址以及使用Interceptor.attach注册回调函数。该方法适用于Android逆向分析场景,可帮助开发者监控函数执行时的寄存器状态变化。

2025-09-18 17:25:25 1148

原创 逆向教程 frida实战教程一

摘要:当使用Frida分析so文件时,若目标函数未在导出表中(如login()显示为sub_1002),通常是由于动态注册导致。可通过Hook libart.so中的RegisterNatives函数来追踪调用堆栈,结合抓包数据定位目标函数。代码示例展示了如何获取RegisterNatives地址并打印类名、方法名、签名、函数指针及所在模块信息,帮助确定未导出函数的位置。该方法适用于动态注册函数的逆向分析场景。

2025-09-18 17:19:17 1068

原创 逆向教程 unidbg调用so中函数完成签名

unidbg可以直接调用app中的so函数,可以不使用模拟器和frida的组合.因此可以节约很多资源,并且部署到服务器中,下面是执行代码,分别对应源码中的add,md5,encode函数。

2025-09-16 10:48:50 1014

原创 逆向教程 frida打印堆栈信息

本文介绍了使用Frida打印函数调用堆栈的方法。通过Process.getModuleByName获取模块符号表,查找目标函数地址后,使用Interceptor.attach进行hook。重点演示了在onEnter回调中使用Thread.backtrace()打印堆栈信息,其中Backtracer.ACCURATE参数提供精确堆栈跟踪(依赖so调试信息),若无调试信息则需改用Backtracer.FAST。代码示例展示了如何hook NewStringUTF函数并输出调用堆栈及字符串参数。该方法适用于逆向分

2025-09-15 19:29:30 1178

原创 逆向教程 frida如何在目标平台写入数据

本文介绍了使用Frida工具向目标平台目录写入数据的方法。通过hook系统函数fopen、fputs和fclose实现文件操作,代码演示了如何获取函数地址、创建NativeFunction对象、分配内存空间存储路径和内容,最终完成文件写入操作。关键点包括:获取libc.so中的函数地址,处理文件路径权限问题(使用应用数据目录),以及正确调用三个文件操作函数。该方法适用于需要在目标进程中进行文件操作的逆向分析场景。

2025-09-15 19:19:08 966

原创 逆向教程 frida读写内存

逆向教程 frida教程

2025-09-13 10:25:19 1021

原创 逆向教程 frida hook dlopen 绕过保护机制

逆向教程 绕过保护机制

2025-09-10 17:41:52 652

原创 逆向教程 frida主动调用的例子

逆向教程 frida

2025-09-07 12:08:49 883

原创 滑块安全设计分析与对抗手段(五)

在之前的POST流程分析中,我们注意到x坐标并没有被直接加密处理,但后续添加的一些值实际上起到了类似加密的效果。该加密算法具有一定的复杂性,并且文件中存在混淆代码,这使得直接理解其逻辑变得困难。因此,我们需要采用特殊的方法来解析这些混淆的部分。

2025-03-13 23:19:10 446

原创 滑块安全设计分析与对抗手段(四)

网络安全

2025-03-13 22:52:00 516

yolov8 新手教程 包含注释和说明

yolov8

2024-10-04

c 新手教程 包含注释和说明

c

2024-10-04

打开注册表 打开注册表教程 包含注释和说明

打开注册表

2024-10-02

安卓开发 安卓开发新手教程 包含注释和说明

安卓开发

2024-10-02

yolov11 yolov11最新教程

yolov11

2024-10-02

python call 新手教程包含注释和说明

python call

2024-09-29

as2协议 新手教程 包含注释和存档

as2协议

2024-09-29

txt txt快速创建新手攻略 包含注释

txt

2024-09-29

echarts可视化教程

echarts可视化教程(七)—— 工具箱组件与详情提示框组件

2024-09-28

蓝牙新手教程 包含注释和说明

蓝牙

2024-09-28

实用脚本工具 游戏脚本新手教程

实用脚本工具 游戏脚本新手教程

2024-09-28

labview labview新手教程 包含注释和说明

labview labview新手教程 包含注释和说明

2024-09-28

堆排序 堆排序新手教程 包含注释和代码

堆排序

2024-09-26

嵌入式开发 嵌入式开发开发教程 包含注释和代码

嵌入式开发 嵌入式开发开发教程 包含注释和代码

2024-09-26

des算法 des算法新手教程注释和代码

des算法

2024-09-26

模拟退火算法 模拟退火算法教程 包含数据和代码

模拟退火算法

2024-09-26

遗传算法 遗传算法新手教程 包含注释和代码

遗传算法

2024-09-26

yolo v10 yolo v10新手教程 包含注释和说明

yolo v10 yolo v10新手教程 包含注释和说明

2024-09-26

spring高手之路24 新手教程包含注释和说明

spring高手之路24

2024-09-24

御网杯 御网杯新手教程 包含说明和注释

御网杯

2024-09-24

FPGA开发 FPGA开发新手教程包含注释和说明

FPGA开发 FPGA开发新手教程包含注释和说明

2024-10-13

峰会报告 包含注释和说明 适合新手入门 新手入门首选

峰会报告 包含注释和说明 适合新手入门 新手入门首选

2024-10-12

软考备考资源 包含注释和说明

【软考】备考资源 包含注释和说明

2024-10-12

示波器实验 新手教程 包含注释和说明

示波器实验 新手教程 包含注释和说明

2024-10-12

计算机网络期末复习 包含注释和说明

计算机网络期末复习

2024-10-11

python 新手教程 包含注释和说明

python

2024-10-11

小猿口算 新手教程 包含注释和说明

小猿口算

2024-10-11

r语言数据分析案例 r语言新手教程 包含注释和说明

r语言数据分析案例

2024-10-08

c语言 c语言新手教程 包含注释和说明

c语言

2024-10-08

python python新手教程

python

2024-10-08

c语言文件读写操作代码 新手教程 包含注释和说明

c语言文件读写操作代码

2024-10-08

c语言文件读写操作代码 包含注释和说明

c语言文件读写操作代码

2024-10-07

oracle和mysql区别 包含说明和注释

oracle和mysql区别

2024-10-07

matlab 新手说明 包含说明和注释

matlab

2024-10-07

yolov11 新手教程 包含注释和说明

yolov11

2024-10-05

c 新手教程 包含注释和说明

c

2024-10-05

python 新手教程 包含注释和说明

python

2024-10-05

UE4/UE5开发 UE4/UE5开发新手说明

UE4/UE5开发 UE4/UE5开发新手说明

2024-10-05

毕设项目 毕设项目新手说明 包含注释和说明

毕设项目 毕设项目新手说明 包含注释和说明

2024-10-05

yolov11 新手教程 包含注释和说明

yolov11

2024-10-04

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

TA关注的人

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