【NSSCTF逆向】【2023题目】《stream》《a_cup_of_tea》

总览

stream RC4 base64 exe解包 pyc反编译
a_cup_of_tea tea

题目 stream

解法

拿到题目是一个exe,先用exeinfo打开看看

可以看到这个程序使用python写的,又是exe。
所以就是常规的思路,exe解包到pyc文件,再对pyc文件进行反编译
先是解包 用pyinstxtractor.py

里面找到它
再来反编译他
原本想用uncompyle6的,但是可能是因为用的是高版本,支持不到。
所以用的是pycdc
用powershell打开

可以看到py源代码了
分析一下这个程序

流程就是输入一个text,然后程序里面有个key,先将这个key进行rc4加密,然后用加密后的key和text逐位进行一个处理,在进行base64的加密。
由此逆向思路就是先把密文给base64解密,再将这个加密后的key与解密后的密文进行逐位处理(主要是异或,所以可以直接逆)。出来的就是flag。


得到flag。

总结

经验

  1. pycdc的用法
  2. pyinstxtractor的用法
  3. rc4直接逆
  4. decode 将字符解码(应该是需要配合base64加解密使用)

题目 a_cup_of_tea

解法

这道题目拿到手是一个exe,拿exeinfo看看

无壳64位 ida看看
进入主函数
可以看到框框里面的东西一个就是关键的加密函数了(print,input已经重命名)点开来看看

点开来看看,确实是一个tea的加密算法。
结合以前学过的知识,这个tea需要相反过来。那就比较好些。
但是碰到了什么问题估计,这里的v3,v2,v4命名可能有点问题

看了别人的wp,知道了这里其实是0x12345...,这样的形式。
比较不解的是传入的这个参数取【1】后为啥是这样的。。
还是解题先,有了key,有了buf2的密文,解密就比较容易了,直接写
(还在想为啥是0x12345678,就直接贴wp了)

总结

  1. tea基本算法
posted @ 2023-07-10 21:31  Corax0o0  阅读(170)  评论(0编辑  收藏  举报