文章总结: 文档记录了UniCTF比赛Writeup,涵盖WEB、Crypto、Misc及RE板块。核心涉及PDFXXE利用、全角SSTI绕过、SSRF与内网渗透、JWT爆破及云元数据窃取。Crypto包含统计分析、NTRU破解与Z3求解。Misc涵盖工控流量分析与DNS隐写。RE包括多项式求解、SM4解密及Unity内存补丁技术。 综合评分: 90 文章分类: CTF,WEB安全,逆向分析,二进制安全,内网渗透
 as f:
f.write(full_dec)
break
</code></pre>
<p><img decoding=)
RE4-r_zip
定位核心循环:在 compress::main 中,通过 while(1) 循环以及对字节高位的判断(b1 & 0x80),我们锁定了这是一个类 LZ77 的滑动窗口压缩算法
标记位:0x80 (最高位) 用于区分“原始数据”和“压缩引用”。
距离 (Distance):由第一个字节的低 7 位和第二个字节的高 4 位拼接而成。
长度 (Length):由第二个字节的低 4 位决定。
def decompress_custom(input_file, output_file):
with open(input_file, 'rb') as f:
data = f.read()
out = bytearray()
i = 0
while i < len(data):
b1 = data[i]
if b1 & 0x80:
# 处理 匹配对 (Distance + Length)
if i + 1 >= len(data): break
b2 = data[i+1]
# 根据汇编逻辑还原 v34 (dist) 和 v33 (len)
# v34 = (b1 & 0x7F) << 4 | (b2 >> 4)
# v33 = b2 & 0x0F
dist = ((b1 & 0x7F) << 4) | (b2 >> 4)
length = b2 & 0x0F
# 从当前输出的末尾向前找
start_pos = len(out) - dist
for _ in range(length):
out.append(out[start_pos])
start_pos += 1
i += 2
else:
# 原始字节
out.append(b1)
i += 1
with open(output_file, 'wb') as f:
f.write(out)
print(f"解压完成,结果已保存至 {output_file}")
print("预览内容:", out[:100].decode(errors='ignore'))
decompress_custom('out1.z', 'flag_recovered.txt')
unictf{miaoyunmengzip}
RE5-原神!启动!
无壳,Unity (IL2CPP) 编写``使用 il2cpp 逆向工具
关键模块:GameAssembly.dll
关键函数偏移:通过分析发现地址 0x448E4E 附近存在抽卡判定逻辑。
test al, al:检查抽卡结果(1为中,0为不中)。
jne:若抽中则跳转至 Flag 解密流程。
解密算法:位于 0x4481E0,解密函数接受一个 MagicKey(通过 RDX 寄存器传递)
x64dbg 调试半天不会 只能写py硬改代码
import pymem
import pymem.process
def hack_flag():
try:
# 1. 连接游戏进程
pm = pymem.Pymem("GenshinImpactWishSimulator.exe")
# 2. 定位模块
module = pymem.process.module_from_name(pm.process_handle, "GameAssembly.dll")
base = module.lpBaseOfDll
# 3. 目标地址:基址 + 0x448E50 (jne 指令的位置)
# 我们直接把 jne (75 2C) 改成 jmp (EB 2C)
target = base + 0x448E50
print(f"GameAssembly.dll 基址: {hex(base)}")
print(f"正在修改地址: {hex(target)}")
# 4. 写入补丁:EB 是无条件跳转,不管抽没抽中都给 Flag
pm.write_bytes(target, b'\xEB\x2C', 2)
print("--- 修改成功!---")
print("现在回到游戏,点击 [单抽],Flag 就会弹出来。")
except Exception as e:
print(f"错误: {e}")
print("请确保游戏正在运行,并且以管理员权限运行此脚本。")
if __name__ == "__main__":
hack_flag()
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:玄网安全 玄网安全 oPis 玄网安全 oPis《UniCTF(部分)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论