又感觉好久没写WP了,以前总想着把每题的WP写了,但发现实在是太慢了,因为有点强迫症,要写就写详细,一句话带过不如不写,但为了节省时间就没有每个都写了。–9.22
Landing
0x00 Daily Shell Check
无壳64位
0x01 Throw Catch
典型的抛异常Catch异常题目,首先是点进主函数,我们的输入经过异或0x22和+1的处理
1 | int __cdecl main(int argc, const char **argv, const char **envp) |
随后点进func1再进func2,大大的一个throw的操作,那么我们找到catch块即可
于是在主函数的汇编页面找找就可以发现比较异常类型于处理
0x02 GetFlag
那么这题知识点主要就是这个throw catch了,稍微跟了catch块或审一下可以知道是生成密文和base64 Input,然后比较
注意base64是有个+1的操作所以解密base前先-1
(解密的时候忘记最开始的时候还有个+1,于是又学了种base64的写法
GetFlag! Cyber yyds!
cbNET
0x00 Daily Shell Check
Confuser壳加Dotfuscator混淆
0x01 DeShell && Deobfuscation
梭了这个壳,还是第一次见这壳
1 | .\de4dot.exe -d C:\Users\Pz\Desktop\DAS9\cbNET-unpacked.exe // 检查壳类型 |
再拖进dnspy即可
0x02 Translate Program
由于去混淆的不是很完全,到处都是goto所以不是很好理解,最好的办法就是自己翻译一遍
1 | def method_0(input): |
0x03 GetFlag
用官解的递归爆破脚本
1 | import hashlib |
GetFlag!
🍬
🍪
About this Post
This post is written by P.Z, licensed under CC BY-NC 4.0.