BugKu---树木的小秘密逆向题解

主要思路:Pyinstaller编译出的.exe文件反编译出源文件,再进行分析。

这道题是学到了怎么将Pyinstaller编译出的.exe文件反编译出源文件,记录自己写逆向题过程,希望对你有所帮助。

将题目解压,发现是exe文件;

第一步

拖入exeinfope查看对应程序的位数架构;

看到是64位数

第二步

拖入对应位数的ida,ida为以下界面:

第三步

在刚开始的界面按tab键,进行反编译。

开始进行以下操作进行搜索。

搜索flag

可以看到很多Py的,猜测打包成exe文件之前就是python写的。

补充:

在刚看是的第一步就可以看到是PyInstaller v3.6的版本进行的封装。 

第四步 Pyinstaller编译出的.exe文件反编译出源文件

        1.下载 pyinstxtractor.py 

        2.将pyinstxtractor.py工具与我们要反编译的.exe文件放入同一个工作目录下

        3.当前目录终端下,输入python pyinstxtractor.py 文件名.exe

执行代码:

python pyinstxtractor.py easy_reverse.exe

输出:

补充:

注意要装好Python,我装了python,没配置环境导致输入python pyinstxtractor.py easy_reverse.exe 运行不出来。

第五步 定位flag

在cmd中,输入 dir /b  知道在easy_reverse.exe_extracted文件夹下面的文件,可以很显眼地看到123这个文件。

补充:

在网上搜索得知 123为pyc文件,要将pyc文件转换成py文件。

(定位flag要大胆进行猜测)

Uncompyle6 介绍
  Uncompyle6,是一个Python原生的跨版本反编译器,是decompyle, uncompyle, uncompyle2的后继版本。
  Uncompyle6能够将Python二进制文件pyc, pyo反编译为对应的源代码。支持Python 1.0-3.8版本的反编译,拥有较好的逻辑处理和解析能力。

我python的版本是3.11的不能用。

        以下是根据这个网页内容尝试将pyc文件转换为py文件,没有成功。

怎么利用Python3.11将pyc文件反编译成py_编程语言-CSDN问答

第六步 打开123文件

可以得出应该是Base64编码。 

Base64就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+"、"/"一共64个字符的字符集。(另加一个“=”,实际是65个字符)

可以看到base64没有空格,结合运行easy_reverse.exe,是以下界面:

推测flag为     ZmxhZ3tteV9uYW1lX2lzX3NodW11fQ==

base64解码

网站:Base64 编码/解码 - 在线工具 (toolhelper.cn)

flag为   flag{my_name_is_shumu}

补充:

打开123文件,看网上说,可以用winhex打开,还未尝试。

总结:

        主要是学到怎么将Pyinstaller编译出的.exe文件反编译出源文件,在做逆向题可能涉及到编码问题。(密码学)

参考:

Python Uncompyle6 反编译工具使用 与 Magic Number 详解-CSDN博客

Bugku:逆向 树木的小秘密_pyinstxtractor.py-CSDN博客

bugku 树木的小秘密 writeup - 一点也不咸 - 博客园 (cnblogs.com)

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值