python逆向基础流程(纯小白教程)

一,例题链接

NSSCTF | 在线CTF平台


二,文件特征

使用工具查看文件信息,发现是pyinsatller打包的exe文件,如果硬用ida分析成汇编或c语言根本摸清楚程序的逻辑,所以思路是反编译成py文件直接分析python代码


三,pyinsatller打包的exe文件反编译流程

(一)下载pyinstxtractor工具和uncompyle6库

pyinstxtractor下载链接->GitHub - extremecoders-re/pyinstxtractor: PyInstaller Extractor

下载压缩包解压后即可使用

(注:因为GitHub是国外网站,如果访问速度过慢请参考本篇解决->如何快速访问GitHub等国外资源网站?白嫖资源必备!_github上有不需要花钱的海外代理吗-CSDN博客

 (注:这就是个py源文件,直接编译运行就可以用的)

uncompyle6库下载命令->cmd窗口输入【pip install uncompyle6

(二) 反编译pyinsatller打包的exe文件

来到上一张图所在的文件位置,打开cmd窗口

在cmd窗口中输入命令【python pyinstxtractor.py 文件路径

获得如下回显证明无误

此时在同目录下产生一个【xx.exe_extracted】文件夹,双击进入此文件夹,找到一个pyc文件(此处有两个文件,我们关注的是除struct.pyc外的另一个pyc文件,如下图红圈)

在此处再次打开cmd窗口,输入命令【uncompyle6 re2.pyc > re2.py】之后即可在同目录下生成反编译的python文件

 

用编译器打开此文件即可分析

(补充)uncompyle反编译失效

有些题目给出的文件在使用uncompyle反编译pyc文件为py文件时会出现如下问题

Unsupported Python version, 3.9.0, for decompilation

简单理解一下应该是python的版本问题,查阅后也发现uncompyle确实只支持3.9以下的python文件反编译

遇到这种情况可以使用pycdc.exe来解决反编译,他人成果不便给出

转自本篇,资源请自行下载->

 Python(.pyc)反编译:pycdc工具安装与使用-CSDN博客

### Python 和 JavaScript 进行逆向工程的思路 #### 一、Python 逆向工程思路 对于Python而言,在处理逆向工程项目时,通常涉及到对目标应用的数据交互过程进行分析。这不仅限于静态文件的下载与解析,还包括动态加载的内容抓取。 当面对需要通过浏览器渲染才能获得数据的情况时,直接使用Python来操作存在不便之处[^2]。此时,一种解决方案是借助Node.js环境下的Express框架搭建服务端API接口,该接口负责执行必要的JavaScript代码片段并返回所需的结果给到Python脚本进一步处理。这种方式能够有效规避因跨语言特性差异带来的障碍,并且保持了开发灵活性。 另外,在某些场景下可能还需要自动生成特定格式字符串作为请求参数的一部分,比如时间戳加随机数组合而成的独特标识符。这类需求可以通过编写简单的辅助函数轻松达成: ```python import time import random def get_timestamp(): """ 获取13位毫秒级时间戳 """ timestamp = int(time.time() * 1000) return timestamp def generate_unique_string(): """ 构造由时间戳和随机数组合而成的唯一字符串 """ num = int(float(str(random.random() * 10000000)[:10])) unique_str = str(get_timestamp()) + str(num) + '1' return unique_str ``` 此部分逻辑有助于构建更加贴近实际应用场景的测试用例或是模拟真实用户的访问行为模式[^3]。 #### 二、JavaScript 逆向工程方法和技术 在JavaScript领域内实施逆向工程主要围绕着理解现有系统的运行机制展开工作。考虑到现代Web应用程序大多依赖复杂的客户端侧编程技术栈(如React, Vue等),因此掌握这些框架的工作原理变得尤为重要。具体来说: - **源码审查**:仔细阅读官方文档以及开源项目中的实现细节可以帮助快速定位关键功能模块的位置; - **调试工具的应用**:利用Chrome DevTools之类的开发者工具集来进行断点设置、变量监视等活动,以便更好地跟踪程序流的变化情况; - **网络流量监控**:通过对HTTP(S)通信记录的研究发现潜在的安全漏洞或者未公开的服务端口信息; - **反混淆处理**:针对经过加密压缩后的JS文件采取相应的解密措施恢复其可读性形式便于后续研究; 值得注意的是,整个逆向流程往往伴随着大量的尝试错误环节,这对个人的技术积累提出了较高要求的同时也需要具备足够的耐心去克服遇到的各种挑战[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值