记录一下exe文件反编译的问题

准备工作

1. 安装第三方包 uncompyle6 (pip install uncompyle6==3.7.4)

2. 下载pyinstxtractor.py文件

3. exe可执行文件

4. 16进制编辑器

具体步骤

1. 先进入安装uncompyle6包的虚拟环境

(windows): d:\Virtualenv\scr\Scripts\activate  直接输入虚拟环境的activate路径就可以

(liunx或mac_os): source 虚拟环境名/bin/activate   退出虚拟环境:deactivate  (exe只能在windows执行,这里只是记录下命令)

2. 获取可执行文件的资源,命令:python pyinstxtractor.py "notepad++.exe" (可执行文件名.exe)得到一个文件夹

3. 把文件夹内的可执行文件添加.pyc后缀名, 并查看一下他和struct的区别

4. 百度上查询到的是把struct中前8位放到可执行文件中, 测试之后发现报错

5. 对比两个文件的差异,notepad++.pyc中是以“E3”开头的, struct中第二行是“E3”开头的,我们把struct中第一行都填充到notepad++.pyc中

6. 执行命令,uncompyle6 notepad++.pyc > notepad++.py  可执行py文件生成成功

7. 我们只是把可执行文件反编译成功了, 我们还会有一些依赖包(自己开发的可执行文件的依赖模块)。

(1)首先我们先去步骤2找到依赖包文件里面对应的自己开发的依赖包

(2)把这个依赖包的pyc文件放到16进制编辑器中

(3)和步骤3中的struct文件进行对比,发现“E3”是从13位开始的,我们把这个“E3”挤到第二行

(4)复制struct的第一行的 0C—0F数据, 填充到这个依赖包的.pyc的对应位置上

8. 执行命令,uncompyle6 CommonLib.pyc > CommonLib.py  依赖包py文件生成成功

9. 一定要注意,16进制编辑器(本次用的wxMEdit)一定要选好,复制之后,一定对比好各个16进制数据的位置,祝大家都能一次成功!!!

exe可执行文件反编译成py文件的更多相关文章

  1. 晓莲说-何不原创:如何通过jad把class批量反编译成java文件

    背景:前几天在项目开发的时候遇到一个问题,那就是利用myeclipse编写好的一个项目打包成jar包后上传部署到服务器里,之后本地的项目被自己改来改去出现了一些问题,想着把上传到服务器里面的war包下 ...

  2. jar包/class文件如何快速反编译成java文件

    有时编写的java代码打包为可执行jar包后需要查看工程结构是否是且只有我们需要的包,故需要查看jar包层级. 1.windows系统可以直接在网上下载jd-gui.exe包,然后傻瓜安装: 2.Ma ...

  3. 01使用ILDasm.exe将可执行文件反编译成IL代码

    控制台代码 using System;   namespace ConsoleApplication1 { class Program { static void Main(string[] args ...

  4. C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  5. C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件

    比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...

  6. Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例

    Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...

  7. 将 Python 打包的 exe 进行反编译

    Python 打包成 exe 之后,是否能从二进制文件中恢复出源代码?没有加密的话是可以的. 首先需要解包. 直接从 github 上下载就行:https://github.com/counterce ...

  8. Android反编译获取资源文件-android学习之旅(69)

    有时候你看到一些很好看的布局,会考虑别人怎么实现的,回想参考一下,那么这时候反编译一下是很必要的. 要用到的工具apktool.bat和aapt.exe和apktool.jar(要最新版本) 下载前两 ...

  9. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  10. 转载文章----初识Ildasm.exe——IL反编译的实用工具

    转载地址http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html Ildasm.exe 概要:(路径:C:\Program ...

随机推荐

  1. CF1383E 题解

    题意 传送门 给定一个长度为 \(n\) 的 01 串 \(a\).在一次操作中,你可以选择任意一个 \(i\in[1,|a|)\),令 \(a_i=\max(a_i,a_{i+1})\),然后将 \ ...

  2. el-input 使用 回车键会刷新页面的问题

    使用el-input的时候,光标聚焦在输入框,按下回车,会刷新页面.这是因为当el-form表单中只有一个input时,按下回车建会自动触发页面的提交功能, 产生刷新页面的行为 解决办法 法一: fo ...

  3. vue+elementUI表格实现自定义右键菜单

    组件代码: <template> <div id="contextmenu" class="contextmenu open"> < ...

  4. Eureka出现Connect to localhost:8761 timed out问题

    原先使用application.properties spring.application.name=hello-serviceeureka.client.service-url.defauleZon ...

  5. window 0x00007b无法正常启动解决方法

    参考链接: https://pcedu.pconline.com.cn/1570/15702605.html directx修复工具下载: https://www.onlinedown.net/sof ...

  6. linux下安装mysql的方式

    总体来说,mysql安装有两种方式,一个是源码安装,另一个是使用官方编译好的二进制文件安装. 1.使用rpm方式安装 原文地址:https://blog.csdn.net/liuxw1/article ...

  7. 新手搭建Git与项目整合

    新手搭建Git,将代码托管到码云 如果你还没有使用过Git,首先先去https://gitee.com/注册一个自己的账户,然后在https://git-scm.com/下载一个客户端(提交代码到码云 ...

  8. elementui树状结构添加右键点击事件

    <el-tree :highlight-current="highlight" :data="folderList" :props="defau ...

  9. C# 三层架构 简单清晰讲解

    https://www.cnblogs.com/smbk/p/5339610.html

  10. Angular JS入门 (一)事件监听(二)多控制器思想与模块化编程(三)路由router

    Angular JS入门 ️将流式结构--->模块化 一.事件监听 1.事件监听 前言 NG框架中通过对元素标签添加[ng-事件名] 指令,来对元素添加事件监听 而事件监听的回调函数需要在con ...