花指令详解
花指令详解参考文章: 逆向分析基础 — 花指令实现及清除_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,...
TPCTF 2023 maze
TPCTF 2023 maze main → sub_403E50 完全是标准 PyInstaller 启动流程,负责读取 _MEIPASS2/_PYI_PROCNAME 环境变量、检查外部归档、并在必要时把内嵌归档解包到临时目录。 sub_406890 / sub_406A90 / sub_406CD0 等函数做的都是解析 CArchive/PKG、加载 PYZ 模块、并把内嵌的 .pyc 解出来交给 PyEval_EvalCode 执行。 sub_403C00 明确调用 PyImport_AddModule(“main“)、PyMarshal_ReadObjectFromString 等接口执行内嵌脚本,真正的谜题与校验逻辑全部在打包进去的 Python 代码里,C...
TSCTF-J 2024
TSCTF-J 2024iPlayIDA直接解码发现不对,函数很少,查看其它函数发现隐藏逻辑在初始化里 12345678910111213141516171819202122232425import base64enc = 'kzMrkZiFDGFLeSz9b4uCL/xPLu1EfVkNQ4kmk46NqwxYmx=='key = [ 0x72,0x1A,0x73,0x36,0x1F,0x3C,0x15,0x31, 0x78,0x3E,0x3D,0x05,0x3C,0x03,0x7D,0x3E, 0x29,0x35,0x17,0x07,0x3A,0x3D,0x20,0x14, 0x30,0x3F,0x2E,0x00,0x32,0x02,0x2E,0x0B, 0x06,0x31,0x0A,0x53,0x03,0x2F,0x3B,0x29, 0x2E,0x3A,0x49,0x16,0x03,0x32,0x37,0x5D, 0x27,0x4F,0x37,0x3F,0x65,0x44,0x06,0x1C, ...
蓝帽杯 2023 justmat
蓝帽杯 2023 justmat矩阵乘法 关键代码: src和src_1都是10*10的矩阵 src会跟我们的输入buf做乘法 src_5也就是src_1是我们的目标值 12345678910111213141516171819202122232425262728293031323334353637383940414243A = [0xfe, 0xb, 0x1d, 0xf6, 0x83, 0xff, 0xe0, 0xb8, 0xdd, 0xb0, 0xc5, 0xde, 0xf6, 0x14, 0x9f, 0xdd, 0xd9, 0x7, 0x2d, 0x6b, 0x19, 0xca, 0x73, 0xfd, 0x87, 0x72, 0x24, 0x4, 0x49, 0x7e, 0xa9, 0xce, 0x91, 0xbe, 0x41, 0x18, 0x60, 0x3f, 0x2b, 0x63, 0x1c, 0xd2, 0x90, 0xe9, 0x8e, 0xba, 0x1e, 0xf3, 0x41, 0xad, 0x2c, 0x3, 0x69, 0xda,...
RC4&RSA
RC4&RSA加密RC4RC4加密算法是一种对称加密算法 RC4于1987年提出,和DES算法一样,是一种对称加密算法,也就是说使用的密钥为单钥(或称为私钥)。但不同于DES的是,RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。 也就是说以流式进行异或,解密时只需相同逻辑即可异或解密 123456789101112131415161718192021222324252627282930key = list('RC4_1s_4w3s0m3')content = [0xA7, 0x1A, 0x68, 0xEC, 0xD8, 0x27, 0x11, 0xCC, 0x8C, 0x9B, 0x16, 0x15, 0x5C, 0xD2, 0x67, 0x3E, 0x82, 0xAD, 0xCE, 0x75, 0xD4, 0xBC, 0x57, 0x56, 0xC2, 0x8A, 0x52, 0xB8, 0x6B, 0xD6, 0xCC, 0xF8, 0xA4,...

