本次解题思路是以我校的校赛的部分题目为来源(文章发出来的时候校赛已经结束,所以不用担心泄密的问题,为了保护文件,我就不提供校赛网站网址了)
BabySighin.exe
文件链接:
链接: https://pan.baidu.com/s/1bHruZBudsa44JAfq-VhE-g?pwd=w3j4
提取码: w3j4
这个是reverse的第一道题目
我们下载之后可以知道,这个题目经过了pyinstaller的加工处理(由py文件转变为了exe文件),所以我们要进行反向操作-即将exe文件通过解包的形式进行处理变为py文件的形式
经过加个处理
我们得到了一个py文件
具体方法
首先,你得有pyinstxtractor.py文件
下载链接我放在这里了
链接: https://pan.baidu.com/s/1sp1hj2FxAXBG5hX0FXsTRA?pwd=4f7f 提取码: 4f7f
将文件下载了之后,记得在所在文件夹的位置的地址栏上方输入cmd
这个需要下载一个环境来实现
在弹出来的方框上输入以下内容:
pip install uncompyle6
先进行安装
其次,确保你下载的exe文件和pyinstxtractor.py文件
然后,输入命令
Python pyinstxtractor.py BabySignin.exe
我们就会得到以下的文件夹,只要能出现以下的界面就说明运行成功了
打开文件夹,我们得到如下的pyc文件
这个时候就需要用到另外一个工具了,将pyc文件转为py文件
Pycdc.exe文件,这个是之前学长给我们的,具体的逻辑我也不是很明白
注意,pyc文件如果是直接进行打开的话会发现根本就打开不了
只能通过pyc操作之后进行处理,但是只能识别出原先py文件的代码
我们现在发现
def getstr():
data = 'h+dkhBHncQLzc6P/nRhfnOp3l4oMc38OnOx0tAlvpBlInP9/tAkNsQkx8i4x8i5X'
string1 = '0123456789abcdefghijklmnopqrstuvwxyz+/ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
bytes = base64.b64decode(data.translate(str.maketrans(string1, string2)))
result = bytes.decode()
return result
我们发现了这里是base64加密的范畴
但是如果我们要是仔细观察的话会发现
这个是base64的改表
使用赛博厨子的方法进行
得到上方的例子
所得flag为:
FCTF{W3lc0me_tO_FCTF2024_H@ve_fun_Reve3se!!!!!!}
解题完毕