游戏逆向初探
游戏逆向初探参考视频:线上培训 -先知社区 Unity3DUnity将来时:IL2CPP是什么? - 知乎 Unity3D 是一个由 Unity Technologies 开发的 跨平台游戏引擎,主要用于制作 2D 和 3D 游戏、交互式模拟、虚拟现实(VR)、增强现实(AR)以及其他实时三维内容。 Unity3D 是一个 游戏引擎(Game Engine),简单来说,它是一个“做游戏的软件框架”。 使用 C# 编写逻辑控制(如人物移动、AI、UI响应等)。 Unity3D 中的 Mono 和 IL2CPP 是两种不同的脚本后端,它们负责将 C# 代码编译并运行在目标平台上。它们的主要区别在于编译方式、性能、兼容性、安全性等方面: 平台支持与兼容性: Mono: 支持广泛的平台,但在一些特定平台或架构上受限: iOS:不再被允许。Apple 禁止在 iOS 上使用 JIT 编译(安全原因)。因此 iOS 发布必须使用 IL2CPP。 WebGL: 由于浏览器沙箱限制,无法进行 JIT 编译,因此 WebGL 必须使用 IL2CPP。 某些主机/嵌入式平台:...
DASCTF 2023 10 wp
DASCTF 2023 10 wpauuuu3通过解析autoit动态脚本语言执行命令,先安装这个工具 https://github.com/nazywam/AutoIt-Ripper 在Scripts文件夹中找到autoit-ripper.exe程序,按照语法输入得到script.au3文件 得到的au3文件分析加密的流程: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Func ENC ( $DATA , $KEY ) $DATA = Binary ( $DATA ) Local $DATALEN = BinaryLen ( $DATA ) If $DATALEN = 0 Then Return "" ElseIf $DATALEN < 8 Then $DATALEN = 8 EndIf Local $OPCODE =...
Angr 学习
Angr 学习文章参考:angr初探 | moyaoxueの小屋和Angr入门和Angr:一个具有动态符号执行和静态分析的二进制分析工具-腾讯云开发者社区-腾讯云 Angr简介angr是一个支持多处理架构的用于二进制文件分析的工具包,它提供了动态符号执行的能力以及多种静态分析的能力。项目创建的初衷,是为了整合此前多种二进制分析方式的优点,并开发一个平台,以供二进制分析人员比较不同二进制分析方式的优劣,并根据自身需要开发新的二进制分析系统和方式。 也正是因为angr是一个二进制文件分析的工具包,因此它可以被使用者扩展,用于自动化逆向工程、漏洞挖掘等多个方面。 angr 官方文档 angr_ctf项目GitHub - jakespringer/angr_ctf angr_ctf则是一个专门针对angr的项目,里面有17个angr相关的题目。这些题目只有一个唯一的要求:你需要找出能够使程序输出“Good Job”的输入,这也是符号执行常见的应用场景。 本系列教程是angr的入门教程,将通过做angr_ctf中的题目的形式来介绍angr。 Angr初探Angr...
CTF逆向常见加密算法总结
CTF逆向常见加密算法总结流密码系列 只要识别出流密码,我们就可以选择动态调试获取密钥流或者直接把目标密文 patch 进去拿输出就可以了 这句话参考自 Sink 的 https://iseal.ac.cn/2022/12/18/%E9%80%86%E5%90%91%E4%B8%AD%E7%9A%84%E5%B8%B8%E8%A7%81%E5%AF%86%E7%A0%81%E7%9A%84%E8%AF%86%E5%88%AB%E2%80%94Sink/ RC4比较常见,原理不赘述,可以看我的RC4&RSA | Matriy’s blog RC4常见时会有一个初始化256个的S盒操作 解密代码 12345678910111213141516171819202122232425262728293031key = list('RC4_1s_4w3s0m3')content = [0xA7, 0x1A, 0x68, 0xEC, 0xD8, 0x27, 0x11, 0xCC, 0x8C, 0x9B, 0x16, 0x15, 0x5C, 0xD2, 0x67,...
花指令详解
花指令详解参考文章: 逆向分析基础 — 花指令实现及清除_jmp花指令逆向-CSDN博客 花指令是企图隐藏掉不想被逆向工程的代码块(或其它功能)的一种方法,在真实代码中插入一些垃圾代码的同时还保证原有程序的正确执行,而程序无法很好地反编译, 难以理解程序内容,达到混淆视听的效果。 简单的说就是在代码中混入一些垃圾数据阻碍你静态分析 常用的两类反汇编算法: 线性扫描算法:逐行反汇编(无法将数据和内容进行区分) 递归行进算法:按照代码可能的执行顺序进行反汇编程序。 最简单的花指令: 123456789101112131415161718//源码#include<stdio.h>#include<windows.h>int main(int argc, char* argv[]){ int a = MessageBox(NULL,"Hello","main",MB_OK); int b,c,d,e; //这部分为花指令部分 __asm{_emit 0xe8} ...
IDAPython脚本(7.5以上)
IDAPython脚本(7.5以上)IDAPython是很强大的功能. 但是在7.5支持python3之后很多函数都改变了. 所以从头开始学一下. IDAPython官方函数文档: IDAPython官方文档函数查询 IDC函数官方文档查询: IDC函数 IDA版本与版本之间的差异化函数查询: IDA版本函数差异化 指令相关 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162from idaapi import *from ida_dbg import *from ida_bytes import *# 返回目标地址指向的指令的前一条指令的地址# 参数一是查找的开始地址,参数二是往前查找的最小地址(在范围内)prev_1 = prev_head(0x00007FF6A1AA2577, 1)prev_2 = prev_head(0x00007FF6A1AA257a,...
ios逆向初探
ios逆向初探ios 信息iOS的越狱(Jailbreaking)是指通过绕过Apple设备上的操作系统限制,从而获得对设备操作系统更深层次的访问权限的过程。这通常是为了能够安装和运行未经Apple认证的第三方应用程序和修改系统设置,提供更大的自由度。 iOS砸壳是指通过技术手段解密和破解iOS应用程序的加密保护,以便绕过App Store的审查机制,查看应用的内部代码,或修改其行为。 解密IPA文件:iOS应用程序通常以IPA文件格式存在,其中包含了应用的二进制文件、资源和相关数据。这些文件在发布到App Store之前,Apple会对其进行加密处理,以防止逆向工程和破解。砸壳的目的是通过绕过或破解这种加密,提取出应用的二进制文件。 绕过代码签名:iOS应用程序在执行时需要通过Apple的代码签名验证,确保应用来自合法开发者且未被篡改。砸壳通常包括绕过这个签名机制,使应用可以在越狱设备或非App Store渠道上运行。 ios一般逆向流程 一般来说流程为...
MoeCTF 2025 wp
MoeCTF 2025学习逆向一年了,重温Moe speed动调即可 1234enc = [0x6D,0x6F,0x65,0x63,0x74,0x66,0x7B,0x4A,0x75,0x73,0x74,0x5F,0x64,0x79,0x6E,0x40,0x6D,0x69,0x63,0x5F,0x64,0x33,0x62,0x75,0x67,0x67,0x31,0x6E,0x67,0x7D]for i in range(len(enc)): print(chr(enc[i]),end="") moectf{Just_dyn@mic_d3bugg1ng} reversemoectf{open_your_IDA_and_start_reverse_engineering!!} base catch假的xor实则凯撒密码 12345678910111213def solve(): s2 = "zbrpgs{F4z3_Ge1px_jvgu_@sybjre_qrfhjn}" decrypted_s2 =...
TSCTF 2022 wp
TSCTF 2022 wpbaby_xor12345enc = [18, 20, 7, 17, 4, 110, 10, 58, 25, 124, 32, 14, 122, 6, 123, 22, 100, 8, 6, 48, 4, 22, 34, 117, 27, 0, 36, 18, 40, 4, 105, 42, 57, 67, 43, 85, 13, 60, 5, 83, 19]for i in range(0, len(enc)): print(chr(enc[i] ^ i ^ 0x46),end='')# TSCTF-J{W3lC0M3_2_ReVEr$E_xOr_1s_$O0o_e2} baby_upx1234567891011121314151617181920212223# 给定的 dword_140004480 数组dword_140004480 = [ 175, 172, 236, 175, 231, 345, 222, 508, 367, 493, 492, 478, 181, 367, 181,...
*CTF WP
*CTF WPGoGpt随机种子用34 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859// solve.gopackage mainimport ( "encoding/base64" "fmt" "log" "math/rand" "time")func main() { src := []byte("cH@t_GpT_15_h3R3") // 复现 main_shuffle:使用 seed=34,使用 math/rand 的 Rand.Intn 做 Fisher-Yates r := rand.New(rand.NewSource(34)) // 做 Fisher-Yates(与题中循环等价) // 创建一个可写的副本并打乱 buf := make([]byte,...




