RCTF 2025 RE wp
RCTF 2025 RE wpchaos RCTF{AntiDbg_KeyM0d_2025_R3v3rs3} chaos2 有花指令 全patch了 patch要注意下 如main中 不仅红框部分需要nop,绿框也需要 再修改下函数边界即可(不会的话可以问我),然后UCP即可 恢复逻辑,是个rc4 main调用 EnumUILanguagesA 触发所有反调试回调,随后通过 rc4_init / rc4_apply 对 128 字节密文表解密并输出 flag。 0x401440在模块中搜索标记 0x12345678,找到后记录其后 0x80 字节的地址(0x402818),这里存放 RC4 key,初始为 flag:{Th1sflaglsG00ds}。 每个反调试函数都在未检测到调试器时把 key 的一个字节修正成正确值,使其最终变成 flag:{ThisflagIsGoods}: check_PEB_BeingDebugged (0x401090) 把 key[8] 从 ‘1’ 改成 ‘i’。 check_ProcessDebugPort...
某习惯app的脱壳分析与破解
某习惯app的脱壳分析与破解参考了下面的博文学习 某习惯app的Signature分析与vip破解 | twogoat/showmakerの小站 需要app名联系我 几种常见的脱壳相关工具反编译: Jdax:https://github.com/skylot/jadx 同时支持命令行和图形界面,能以最简便的方式完成apk的反编译操作。 jd-gui:http://jd.benow.ca/ 类似jadx Dex2jar:http://sourceforge.net/projects/dex2jar/files/ 类似jadx ApkTool :https://bitbucket.org/iBotPeaches/apktool/downloads/ ApkTool 的最重要的两个作用是解包和打包 ; 解包 : 拿到 APK 文件 , 如果按照 zip 格式解压出来 , xml 文件都是乱码 ; APK 文件打包时 , 会将 xml 文件进行压缩转为二进制文件 , 以减小体积 ; 解包时 , 必须使用 ApkTool 解包工具 , 将二进制数据格式的...
某节拍APP逆向+XPosed模块编写
某节拍APP逆向+XPosed模块编写看文章无意看到了https://twogoat.github.io/2025/04/09/%E8%AE%B0%E6%9F%90%E8%8A%82%E6%8B%8D%E5%99%A8app%E7%9A%84%E4%B8%80%E6%AC%A1%E7%AE%80%E5%8D%95%E7%A0%B4%E8%A7%A3/,这个想着android还没怎么深入实战下,因此写了个这玩意儿 想知道是哪个软件可以联系我 只含java层逆向,软件中含pro字样吗 ctrl+shift+f搜一下搜到isPro,判断是否是pro会员 123456789101112131415function main(){ Java.perform(function () { var UserCache = Java.use("com.eumlab.prometronome.baselib.util.UserCache"); // Hook isPro() ...
华为杯第四届中国研究生网络安全创新大赛 Megrez RE WP
“华为杯”第四届中国研究生网络安全创新大赛 Megrez RE WP本次研究生赛我们排名第6,解出8题成功晋级这是与我相关的一些题目 ReverseYJS-GoEncIDA 打开,直接转到main函数看逻辑 main_main中的逻辑校验 如图,并且选择前16位作为key main_encryptWithAES看出来为AES加密,并且为CBC模式 最后进行Base64编码 密文为base64的串交叉引用即可找到 key在这里做了变换 exp: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051import base64from Crypto.Cipher import AESKEY_SOURCE = bytearray(b"MySecretKey123451234567890abcdef/proc/self/auxv")STATE_BYTES = bytes([ 0xAA, 0xBB,...
NSSCTF 2025 re wp
NSSCTF 2025 re wpez_teaez_tea不ez 没改附件版本: 动调有几个地方需要绕过 对isDebuggerPrensent进行交叉引用,对isDebuggerPrensent的绕过方法基本是改zf标志位,此外还有一个地方绕过需要把0x70改成0x71修改寄存器 此题别用patch方法,因为上面那个0xcccc貌似是crc校验 同时看到这有个exit也交叉引用下 这里也有个exit 绕过后经过动调发现,这个方法会对key进行修改,我们可以断再fmt这个方法上就可以发现dst的地址是key的地址 这块如何修改的key? 是tea_encrypt_wrapper这个方法的机器码值+78然后patch到了key 另一种发现hook的方法,当你写了解密脚本发现不对,可以到处交叉引用看看 可以返现这个方法被神奇的其它地方交叉引用了 最后写解密脚本 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647delta =...
IDA e语言逆向初探-以一道CTF题为例
IDA e语言逆向初探-以一道CTF题为例题目附件可以留言找我拿 IDA易语言反编译插件E-Decompiler - 吾爱破解 - 52pojie.cn e语言逆向,安装这个插件然后运行IDA分析 转到可疑函数 url解码后是HXB{YAO-YAO-QIE-KE-NAO} 假的 还发现 这几个串 交叉引用过去 有点像校验了 sub_404196应该是加密函数 有点像rc系列的加密,不知道是不是Rc4,可以猜测它为流加密的算法 如果是流加密的算法最好的解密方式就是再跑一边,看看动调能不能出 x32dbg打开,直接断点到这个大函数调试 调试可能有反调试,注意开下sharpod这个插件 基于假设我们可以试试看直接把密文patch回去 可以看到我输入的123 下面在ebp-4的地方是密文 在内存中修改为下面那段,注意的是patch记得别把最后的00字节给删了 要修改的字节粘贴进去这个串 一开始patch错了patch的第一个字符是88,后面也没保存结果所以是HXB{HAHA-HEHE-HEIHEI-HUOHUO-XIXI} 12345enc =...
WMCTF 2025 re wp
WMCTF 2025 re wpcatfriend 校验逻辑 12345678910111213141516171819#!/usr/bin/env python3import struct# (value, destination offset in the 43-byte buffer)chunks = [ (0x61357B4654434D57, 0), (0x312D623266386533, 8), (0x663661342D643763, 16), (0x64302D653938622D, 24), (0x6234613166326333, 32), (0x7D63356234613166, 35),]buf = bytearray(43)for value, offset in chunks: buf[offset:offset + 8] = struct.pack('<Q', value)flag =...
强网杯初赛 2025 RE tradre
强网杯初赛 2025 RE tradrebutterflyAI直接秒了 要求输入/输出文件各一个参数,然后把输入文件完整读进内存。 追加 2 字节把原始长度写在缓冲区末尾(但这些额外字节不会写出)。 以 8 字节为一块做“编码”: 先与常量 MMXEncod 做字节级 XOR; 把每个 16 位的两个字节互换; 把 64 位视作整数左旋 1 bit; 再加回同一个常量(字节级加法,模 256)。这样剩余的零头(不足 8 字节)保持原样。 写到输出文件,同时生成 %s.key 文件,只包含文案 “MMXEncode2024 coding file: %s\n”——并没有保存任何真正的密钥。 输出里看见的 encode.dat 就是转过一遍的结果。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#!/usr/bin/env python3"""Recover the original...
简析一道白盒AES逆向题
简析一道白盒AES逆向题要附件可以找我 是个apk文件,java层没啥 直接看so层 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455bool __fastcall sub_F7B8(__int64 a1, __int64 a2, __int64 a3, __int64 a4){ int8x16_t *v6; // x21 unsigned __int8 *v7; // x19 __int64 n16; // x8 _BYTE *v9; // x9 unsigned __int64 v10; // x11 char v11; // w12 _BOOL8 result; // x0 int v13; // w9 unsigned __int64 n31; // x12 unsigned __int64 n0x1E; // x11 int v16; // w14 int v17; // w13 ...
DASCTF 2024.8 wp re
DASCTF 2024.8 wp reMaze三维迷宫,两个迷宫切换,TLS中塞了点东西,识别出来之后再写个路径算法即可 TLS中一段字节与程序的一段xor来恢复逻辑 140001A60(watchdogThreadMain)前面的一段逻辑用于反调试 我们可以修补到这: 执行0x90 ^ key[i] 12345678910111213import ida_bytesPATCH_ADDR = 0x140001B16PATCH_HEX = ( "8b05184a000039050e4a000074648b05064a00008905044a0000" "833d0949000001750ac744242002000000eb08c7442420010000" "008b4424208905eb480000833de448000001750e488d059b4400" "004889442428eb0c488d05cd4600004889442428488d05c14600" ...




