Rocket
环境:ubuntu22+racket8.2
似乎是racket内嵌代码运行,但是始终找不到内嵌的代码,最后黑盒测试猜测逻辑是转ascii码然后三次方。
1 | from Crypto.Util.number import long_to_bytes |
ctf{th1s_is_re4lly_beaut1fly_r1ght?}
engtom
给出一个.snapshot 文件,根据文件开头是JRRYF 信息搜索得知是JerryScript引擎的快照文件
编译后的字节码可以保存到快照中,也可以加载回执行。 直接执行快照可以节省解析源的内存消耗和性能成本。 也可以直接从 ROM 执行快照,在这种情况下,还可以节省将快照加载到内存中的开销。
1 | python tools/build.py --show-opcodes=ON --snapshot-exec=ON 编译时候开启选项 |
1 | Byte code dump: |
1 | ans=[1605062385,-642825121,2061445208,1405610911,1713399267,1396669315,1081797168,605181189,1824766525,1196148725,763423307,1125925868] |
ctf{w3_f0und_1t_112ug31vjhe121f21fas}
machine
参考:祥云杯复盘 machine go语言+vm栈混淆 - TLSN - 博客园 (cnblogs.com)
ida恢复一下函数1
1 | import idc |
通过给的code.bin找到相关字符串
但是函数没有被正常反编译,尝试patch
这里全nop掉
得到就是main函数