DubheCTF 2024 re 复现
DubheCTF reVMT有非常多的反调试,因此直接使用x32dbg+sharpOD过反调,中间发现一个类似Key的东西 输入aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,运行到这key变了,且输出,好像发现我patch过程序了 key肯定是这俩中的一个 这个有点像密文 这个函数是个加密算法 cyberchef试了几种加密算法发现是SM4直接出了 DubheCTF{VMT_H00K_4ND_$3H_15_U53FUL} 12345from gmssl.sm4 import CryptSM4, SM4_DECRYPT, NoPaddingsm4_dec = CryptSM4(padding_mode=NoPadding)sm4_dec.set_key(b'Pyu0Z8#bC5vqUFgt',...
DASCTF 2025上半年赛-re
DASCTF 2025上半年赛-re鱼音乐直接解Exe后pyc反编译得到 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071# uncompyle6 version 3.9.2# Python bytecode version base 3.8.0 (3413)# Decompiled from: Python 3.6.12 (default, Feb 9 2021, 09:19:15)# [GCC 8.3.0]# Embedded file name: main.pyimport sys, osfrom PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QLabel, QVBoxLayout, QFileDialog, QMessageBoxfrom...
RCTF 2024 wp [复现]
RCTF 2024 wp [复现]2048 2048游戏,分数达到1000000即可获得flag。 每轮将获得分数为输入的sorce,上限为当前得分,初次上限为1w,那么每次成功分数翻倍的情况下用不了几次即可到达100w分: RCTF{you_are_2048_master} bloker_vm字符串追踪到sub_411A10 密文给出了,sub_41100F是个RC4加密,那我们其实可以猜出来这个流程了 RC4->移位->异或 RC4->异或->移位….组合测一下其实也可以出 先看看能不能直接调试出吧 12345678910111213141516171819rc4_key = "thisisyoursecretke"enc = [ 0x80, 0x05, 0xE3, 0x2F, 0x18, 0x2F, 0xC5, 0x8C, 0x25, 0x70, 0xBC, 0x05, 0x1C, 0x4F, 0xF2, 0x02, 0xE5, 0x3E, 0x02, 0x2F, 0xE5, 0x11, 0xA3,...
第一届OpenHarmony CTF专题赛RE题解
第一届OpenHarmony CTF专题赛RE题解easyreabc-decompiler反编译如下 .abcD的效果好像更好,对比下 magic为base64解出来:4d4b84c22f434cc8cda6dd4703af89dab83 hint1在index文件中 自解密部分,这块实际上就是首先+上自己的长度,然后反转,逐字符-i在反转 12345678910111213141516171819202122def reverseStr(s): return s[::-1]def decode_hint1(hint1): # Step 1: 构造 r10 hint_len = len(hint1) r10 = ''.join([chr(ord(c) + hint_len) for c in hint1]) # Step 2: reverse r10 rev_r10 = reverseStr(r10) # Step 3: 构造 r43 r43 =...
SCTF 2024 Re wp [复现]
SCTF 2024 Re wp...
京麒CTF 2025 热身赛 wp
京麒CTF 2025 热身赛 wpre1rust,缺少符号表,很难看 使用bindiff恢复符号表,首先需要配置rust环境 Rust语言开发环境搭建详细教程_rust环境搭建-CSDN博客 参考rust恢复符号表 | clev1L’s blog 恢复了一点点吧 根据可疑字符串定位到 关键部分 v29是 1v29 = *(_WORD *)v16; 将内存地址 v16 处的前两个字节解释为一个 unsigned short(即 16 位无符号整数),赋值给 v29。 123456789101112131415161718192021222324252627enc = [0x0, 0xA1, 0xFB, 0x53, 0x1C, 0xFA, 0xF0, 0x1B, 0x6, 0x40, 0xD4, 0x8C, 0x16, 0xF4, 0x90, 0x27, 0x42, 0xB9, 0x8B, 0xF, 0x2, 0xD7, 0x31, 0xB7, 0x26, 0x12, 0x6, 0x7E, 0xAE, 0xDF, 0xDA, 0x68,...
Magisk学习简介
认识Magisk源自更换/更新/升级面具版本的保姆级教程 -...
记录Frida spawn模式hook失败的问题(禁用usap)
记录Frida spawn模式hook失败的问题(禁用usap)Failed to spawn: unexpectedly timed out while waiting for signal from process with PID 11662 发现了这个 查了下 usap64 是 Android 启动应用时的一个预分配的 Zygote fork 子进程,它 不是目标应用进程本身,而是为加速启动准备的模板进程。如果 Frida 在 spawn 模式下无法等到目标进程真正起来,而中间卡在 usap64,就会导致: 需要禁用 getprop|grep usap 如果 getprop xxx.usap 返回 true如果 getprop xxx.usap 返回 true setprop xxxx.usap false 然后 getprop xxxx.usap 将返回 false然后 getprop xxxx.usap 将返回 false Use spawn by your own way用自己的方式使用 spawn 保险一点 再setprop...
记录一次安装Frida14.2.18的坑和解决方法
记录一次安装Frida14.2.18的坑和解决方法 首先提醒下,我是成功配好了14.2.18,但是我的安卓版本是13,运行frida-server会重启,可能是版本过高,需要降级… 吾爱破解安卓逆向教程中的objection需要用Frida14.2.18 然后正常pip install会报错 这时可以去,手动下载egg frida · PyPI frida-14.2.18-py3.8-win-amd64.egg 我是conda虚拟环境中安装 12conda create -n frida14 python==3.8conda activate frida14 直接运行下面命令不行 1easy_install frida-14.2.18-py3.8-win-amd64.egg 只能先 1pip install setuptools==50.3.2 这时显示安装成功了但是还是显示16.6.6(我之前安装的版本) 是因为我们没安装frida-tools 123pip3 install frida==14.2.18 -i...
Android逆向18-Unicorn
Android逆向18-Unicorn来自吾爱破解-正己 https://www.52pojie.cn/thread-1701353-1-1.html 开源地址 Unicorn 是一个由新加坡南洋理工大学团队在2015年开源的CPU模拟器框架,它支持多种架构,包括X86/X64/ARM/ARM64/MIPS等。Unicorn 的主要特点是: 多架构支持:它能够模拟不同架构的CPU指令,这使得它在跨平台分析和测试中非常有用。 高性能:Unicorn 通过使用JIT(Just-In-Time)编译技术,将模拟的指令翻译成宿主机的本地指令,从而提高了执行效率。 丰富的接口:Unicorn 提供了多种语言的绑定,包括Python、Java、C#等,使得在不同编程环境中都能方便地使用。 Hook和拦截功能:Unicorn 允许用户在模拟执行过程中设置Hook,拦截和处理特定的指令或内存访问,这对于逆向工程和动态分析非常有用。 专注于CPU模拟:与一些既模拟CPU又模拟操作系统的模拟器不同,Unicorn...