SM4加密原理解析
参考文章:SM4算法过程密码学基础——SM4算法 SM4算法介绍SM4 是一种中国国家密码算法标准,广泛应用于无线局域网产品中的数据加密保护。它是一个分组对称加密算法,类似于 AES 算法,但结构和细节不同。 基础概念概览 项目 描述 算法类型 对称加密算法 分组长度 128 比特(16 字节) 密钥长度 128 比特(16 字节) 轮数 通常为32 轮 主要结构 Feistel 类似结构(实际上是非经典 Feistel) 用途 国密标准中的数据加密,WAPI 无线局域网等 整体流程概览 密钥扩展(密钥调度):输入 128bit 的密钥,生成 32 个轮密钥(每个 32bit)。 分组加密过程: 将 128bit 明文分成 4 个 32bit 的字(X0, X1, X2, X3); 每一轮: 使用轮密钥和前四个字进行非线性变换,生成一个新的字; 滑动更新 4 个字; 加密结果为最后 4 个字的逆序连接(Y0= X35, Y1= X34, Y2= X33, Y3=...
Flutter与so文件动调
Flutter与so文件动调这是2024-CtfNewStar的Week5 Ohn_flutter!!!一个Flutter的安卓题目,这里只讲如何恢复符号表和so文件动调,具体WP请看CtfNewStar Flutter是谷歌的移动UI框架,Flutter 使用编译型语言 Dart 开发,代码会被编译为原生机器码(而非通过 JavaScript 桥接),运行速度接近原生应用。 工具准备blutter 环境配置 前置知识Flutter 应用的结构Flutter 应用的核心文件通常包括: libapp.so(Android)或 App.framework(iOS):包含 Dart 编译后的原生代码。 flutter_assets/:存放资源文件(图片、字体、配置文件等)。 isolate_snapshot_data 和 vm_snapshot_data:Dart 虚拟机的快照数据(用于启动应用)。 libflutter.so(Android):Flutter 引擎库。 恢复符号表配置好blutter环境以后,打开x64 Native Tools Command...
详谈RC5加密
参考文章: RC5 RC5 分组密钥算法 C语言实现 背景与历史RC5是Ron...
L3HCTF2025
TemporalParadox拿到这道题目,我运行程序后发现报错 检查了一下我没缺少动态库就没管了,直接静态分析 主函数里面有两个分支,当程序在特定的时间点v58 > 1751990400 && v58 <=...
OLLVM简单理解
OLLVM简单理解OLLVM是什么?OLLVM 是一个基于 LLVM 编译器框架的开源代码混淆工具,旨在通过多种混淆技术增强程序的安全性,使逆向工程(反编译、反汇编)变得更加困难。 OLLVM 的核心功能OLLVM 通过修改 LLVM 的中间表示(IR),在编译阶段对代码进行混淆,主要支持以下技术: 控制流平坦化(Control Flow Flattening) 将程序的控制流图(CFG)转换为 状态机 结构,使分支和循环逻辑变得难以分析。 指令替换(Instruction Substitution) 将简单的算术运算(如 +, -, *****, /)替换为更复杂的等效表达式。 虚假控制流(Bogus Control Flow) 插入 永远不会执行 的代码块(基于恒真/假条件),干扰逆向分析工具。 字符串加密(String...
Ptrace的简单实现(出题小计)
Ptrace的简单实现(出题小计)参考文章: 威力巨大的系统调用——ptrace 系统学习vm虚拟机逆向 偶然间看到一个有关ptrace的题目,对ptrace有点兴趣,于是研究了一下Ptrace的简单实现,下面是我写的一个简单的逆向Ptrace题目(Ptrace+VM) 一.Ptrace的父子进程的实现1.父进程(father)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ptrace.h> //提供ptrace系统调用的接口#include <sys/types.h> //定义系统相关的数据类型 #include <sys/wait.h> ...
初探Windows驱动逆向
初探Windows逆向参考文章链接: Windows驱动快速入门 Windows 驱动之IRP Windows驱动程序逆向工程方法 Windows内核驱动程序静态逆向工程的方法论 Windows驱动开发(三)—— 驱动和应用层通信的几种方式 前置知识动因分析 执行驱动程序分析时,收集以下信息很重要: 识别DriverEntry并确定 IRP 调度处理程序。 确定驱动程序是否附加到另一个设备以过滤/拦截其 I/O 请求。如果是这样,目标设备是什么? 确定DeviceName. 识别所有 IOCTL 代码及其相应的功能。确定他们使用什么缓冲方法。 尝试了解所有部分是如何组合在一起的。 Windows 驱动之IRP什么是IRP:I/O request...