0xGame2024部分Reverse与Crypto
Re
week2
Xor_Random
动调获取随机数直接异或
1  |  | 
Zzz
断点上面扩展了位数,且调试的时候发现输入的v5,v6,v7会被颠倒
1  |  | 
week3
BabyAsm
直接正向输出flag
1  |  | 
Puzzle
9*9的数组,大概率是数独题
手算比较麻烦,建议直接套模板
1  |  | 
求出nextLine之后6个数字一组,10转16之后作为字符加到sb中输出
tea
一开始把密文前后交换,直接解密发现中间错误
1  |  | 
调试发现之后前8位和最后8位进行了加密,也就是说中间24位不变
1  |  | 
ezAndroid
直接搜索secret找到密文
week4
PyPro
python3.12无法完全反编译,要用pydas
知道先aes_ecb再base64
cy好像解不了用脚本解密
1  |  | 
发现密钥是奇数位,15.5个字节,前面补一个0
tea2.0
main一个tea
交叉引用密文发现有tls
发现也是一次tea,但是不用管直接动调获取最后的密文
有个奇怪的点是明明密文有48位,为什么比较的时候只有44位
经过调试发现最后一轮的v1初始值是0
1  |  | 
MineSweeper
先是交换后面异或,另外从资源段加载密文


haha就是KEY
enc从resources.assets中加载
1  |  | 
crack
经过调试发现异或的数一直为6
问gpt发现是sha256
调试发现buf1就是输入的地址,也就是输入特定hash值即可
1  |  | 
JustSoso
getKey在native层
直接在资源段搜索密文
得到key后rc4,有一处魔改
之后再base64
getKey的部分静态有点复杂
直接尝试用objection注入得到rc4的key,android hooking watch class_method com.ctf.justsoso.MainActivity.getKey –dump-return
用frida也行,frida -U -l 1.js -f com.ctf.justsoso
最后解密即可
1  |  | 
Crypto
week1
crt-1
e和phi不互素,先求出e//2对应的m,再开根号,答案就是其中一个
1  |  | 
week2
rc4
前半部分求得四个字符,后半部分注意先fromhex
1  |  | 
RSAIV
因为交互的总时间足够长,challenge2适合yafu手动解后输入
1  |  |