Reverse学习之exe文件转pyc文件和python的反编译

Reverse学习之exe文件转pyc文件和python的反编译

exe文件转py文件 exe - > pyc -> py 详细步骤

exe文件转pyc文件

工具:

pyinstxtractor-ng-main

环境:

Pycharm专业版2023
Python 3.11.4(64-bit)

步骤

1. 在pyinstxtractor-ng-main文件中找到pyinstxtractor-ng.py脚本

在这里插入图片描述

2. 在Pycharm的终端上换源【阿里云—下载速度嘎嘎快!!!】

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

3. 安装Python库【pycryptodome/Crypto/xdis】

请添加图片描述
请添加图片描述

4. 将pyinstxtractor-ng.py文件移动到想要解包的文件目录下
在这里插入图片描述

5. 输入cmd打开命令提示符,并在当前目录下运行以下操作

请添加图片描述

解包后会发现在当前目录下生成了名为reversepython.exe_extracted文件夹 即解包完成
进入该文件夹会发现和解包文件相同名称的pyc文件 1.pyc
接下来就是要将pyc文件转为可以正常阅读的py文件

pyc文件转py文件

工具:

pycdc-master(适用于Python 3.9及更高版本且兼容低版本)

环境:

Visual Studio Code【插件】

在这里插入图片描述

在这里插入图片描述

步骤

1. win11上配置C/C++环境——基于MinGW-W64 GCC-8.1.0

在这里插入图片描述

2. 用 IDE 打开pycdc文件夹
3. 按Ctrl+Shift+P,选择CMake:安装
在这里插入图片描述
4. build文件夹中会生成编译后的文件pycdas.exe(反汇编工具)和pycdc.exe(反编译工具)

在这里插入图片描述
5. 把pycdc.exe移动到需要反编译的文件的同级目录下
在这里插入图片描述
6.输入cmd打开命令提示符,并在当前目录下运行以下操作,由此获得源码

请添加图片描述

如何修改py文件并获得flag

修改1【思路:源码中的b为None,那么如何求解b呢?通过flag格式的特点,在庞大的数据中获取最可能也就是数据同样最多的即为b】

check = 'flag{'
a = []
c = [...]
for i in range(len(check)):
    for b in range(1,5000):
        if ord(check[i]) * 33 % b == c[i]:
            print(b)

修改2【思路:在已知b和c的情况下,设定一个爆破值a,利用循环结构不断爆破获取正确的flag】

a = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+, -./:;<=>?@[\]^_`{|}~ "
b = 179
c = []
d = []
for i in range(42):
    for d in a:
         if ord(d) * 33 % b == c[i]:
             print(d, end="")

结果

flag{2889e7a3-0d6b-4cbb-b6e9-04c0f26c9dca}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值