RE_Python

python的exe文件解包

要确保使用工具的环境是和Python version一样(我这里是需要3.11)

不然,ezpy.exe_extracted文件夹点进去,类似PYZ-00.pyz_extracted的文件夹会是空的!!

pyc反编译问题

ImportError: Unknown magic number 3495 in test.pyc_unknown magic number 3338 in-CSDN博客

在Python3.7及以上版本的编译后二进制文件中,头部除了四字节Magic Number,还有四个字节的空位和八个字节的时间戳+大小信息,后者对文件反编译没有影响,全部填充0即可;
Python3.3 - Python3.7(包含3.3)版本中,只需要Magic Number和八位时间戳+大小信息
Python3.3 以下的版本中,只有Magic Number和四位时间戳。

Python 2.7: \x03\xf3\x0d\x0a\0\0\0\0
 
Python 3.0: \x3b\x0c\x0d\x0a\0\0\0\0
 
Python 3.1: \x4f\x0c\x0d\x0a\0\0\0\0
 
Python 3.2: \x6c\x0c\x0d\x0a\0\0\0\0
 
Python 3.3: \x9e\x0c\x0d\x0a\0\0\0\0\0\0\0\0
 
Python 3.4: \xee\x0c\x0d\x0a\0\0\0\0\0\0\0\0
 
Python 3.5: \x17\x0d\x0d\x0a\0\0\0\0\0\0\0\0
 
Python 3.6: \x33\x0d\x0d\x0a\0\0\0\0\0\0\0\0
 
Python 3.7: \x42\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0
 
Python 3.8: \x55\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0
 
Python 3.9: \x61\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0
 
Python 3.10: \x6f\x0d\x0d\x0a\0\0\0\0\0\0\0\0\0\0\0\0

[LitCTF 2024]ezpython!!!!!

最后反编译 pyc 那有点问题就没搞出来,唉

难度是时间戳的问题?

唉,也是没想到去网上找一个在线网站就行了啊!!!

应该就是 base64,但导入了一个Litctfbase64 估计是自定义 base,密码表可能会变。

就要去 PYZ-00.pyz_extracted 文件夹里去找该模板,就在该目录下:

然后就秒了

pyc丢失文件头还是文件头不对

对于我们用 pyinstxtractor 解包,python version 不一致是可能会在 pyc 文件生成时,头部的 

magic number 被清理,需要我们自己加上。

有个python列表推导式

sum([flag[23] for _ in range(flag[23])])

  1. range(flag[23]): range() 函数会创建一个整数序列,从 0 开始到 flag[23] - 1 结束。这里 flag[23] 可能是一个整数,它决定了 range() 序列的长度。
  2. for _ in range(flag[23]): 这是一个循环,它会遍历 range() 生成的整数序列。在循环中,_ 是一个占位符,表示这个循环中的迭代次数,并不使用这个值。
  3. flag[23]: 这是列表推导式中的表达式部分,它指定了要放入列表的值,即 flag 列表中索引为 23 的元素。
  4. [flag[23] for _ in range(flag[23])]: 这是一个列表推导式,它会根据 range() 生成的序列重复添加 flag[23] 这个值到列表中。
  5. sum(...): 这个函数会对列表中的所有元素求和。

即flag[23]**flag[23]

sum([flag[24] for _ in range(222)])
flag 列表中索引为 24 的元素重复 222 次,并将结果求和

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3588麒麟系统硬解码实战

目录 安装deb 查找头文件 .pro文件添加 检查库是否已安装 error: stdlib.h: No such file or directory 安装deb sudo dpkg -i package_file.deb其中,package_file.deb是你要安装的deb文件的名称。 使用终端命令和apt工具:打开终端,使用以下命令安装deb文件并解决依赖…

如何执行VMware P2V迁移|VMware Converter和替代方案

VMware中的P2V是什么? 我们常说的VMware P2V其实指的就是“物理到虚拟”,将工作负载从物理机器转换或迁移到虚拟机(VM)的过程,能够使您无需从头开始费力地创建和配置新虚拟机。 就像您可以使用Disk2vhd执行Hyper-V物理…

Python爬虫环境设计:构建高效且灵活的数据抓取生态

Python爬虫环境设计:构建高效且灵活的数据抓取生态 在当今信息爆炸的时代,数据已经成为一种宝贵的资源。Python爬虫作为一种高效的数据抓取工具,受到了广大开发者的青睐。然而,设计一个稳定、高效且灵活的Python爬虫环境并非易事…

mac node版本切换 nvm install nvm ls-remote N/A问题

mac 使用nvm 切换node版本失败或者 nvm install &nvm ls-remote N/A问题 一、出现情况 输入 nvm install v16.18.0输出结果 Version 16.18.0 not found try nvm is-remote•to browse available versions.输入 nvm ls-remote输出结果 N/A二、原因分析 1. 镜像包获取…

关闭文件及使用with语句

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 1 关闭文件 打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象的close()方法实现。close()方…

QGraphicsWidget与QWidget的主要区别是什么?

QGraphicsWidget 和 QWidget 都是 Qt 框架中用于创建用户界面的类,但它们在功能和用途上有一些关键的区别: QGraphicsWidget 属于图形视图框架:QGraphicsWidget 是 QGraphicsItem 的子类,它是 Qt 图形视图框架的一部分&#xff…

C++青少年简明教程:C++函数

C青少年简明教程:C函数 C函数是一段可重复使用的代码,用于执行特定的任务,可以提高代码的可读性和可维护性。函数可以接受参数(输入)并返回一个值(输出),也可以没有参数和返回值。 …

嵌入式Linux系统编程 — 2.4 标准I/O库:I/O缓冲详解

目录 1 I/O 缓冲简介 1.1 什么是I/O 缓冲 1.2 I/O 缓冲的目的 2 文件 I/O 的内核缓冲 3 刷新文件 I/O 的内核缓冲区 3.1 什么是刷新文件 I/O 的内核缓冲区 3.2 控制文件 I/O 内核缓冲的系统调用函数 3.3 示例程序 4 控制文件 I/O 内核缓冲的标志 4.1 O_DSYNC 和 O_SY…

(深度学习记录)第TR4周:Pytorch复现Transformer

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 🏡我的环境: 语言环境:Python3.11.4编译器:Jupyter Notebooktorcch版本:2.0.…

奇思妙想02-高考

又到高考的日子了。 离我的高考已经过去一年了。 2023年的今天,我也在为高考而紧张着。 2024年的今天,我还在为高考紧张着。 或者说在因为高考焦虑吧。 在我的高考中我并没有取得自己的理想成绩,也没有进自己的理想院校。 在读了一年大学…

51.线程池大小

问题 1.线程池太小会导致程序不能充分利用系统资源、容易导致饥饿。 2.线程池过大导致更多的线程上下文切换,占用更多的内存。 情况一:CPU密集型运算 应用程序是做一些数据分析,需要大量的使用cpu,程序代码全部都是跟cpu相关的&#xff0…

fastadmin/thinkPHPQueue消息队列详细教程

thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等队列的多队列, 内存限制 ,启动,停止,守护等消息队列可降级为同步执行1、通过composer安装thinkPHP消息队列 …

Java概述 , Java环境安装 , 第一个Hello World

环境变量,HelloWorld 1.会常用的dos命令 2.会安装java所需要的环境(jdk) 3.会配置java的环境变量 4.知道java开发三步骤 5.会java的入门程序(HelloWorld) 6.会三种注释方式 7.知道Java入门程序所需要注意的地方 8.知道println和print的区别第一章 Java概述 1.1 JavaSE体系介绍…

GPT-4 和类似的先进语言模型正在重塑人类与人工智能(AI)互动的方式

GPT-4 和类似的先进语言模型正在重塑人类与人工智能(AI)互动的方式,主要通过以下几种方式: 1. 自然语言理解和生成 GPT-4 能够理解和生成自然语言,使得与 AI 的对话更加自然和人性化。它可以进行多轮对话,理解上下文,生成符合语境的回复。这种能力使 AI 不仅仅是一个工…

Java 并发编程中的 synchronized 关键字及其现代优化技术

文章目录 简介1. 监视器锁(Monitor Lock)与操作系统的 Mutex Lock1.1 监视器锁的工作机制1.2 互斥锁的实现 2. Java 线程与操作系统原生线程2.1 Java 线程的实现2.2 操作系统的线程管理2.3 Java 线程与操作系统线程的关系 3. 线程的挂起和唤醒3.1 上下文…

monaco-editor+vue3+ts+vite实现前端代码编辑器(初版)

最新有个sql在线编辑的需求,网上一些资料比较琐碎,总结归纳一下,复制直接使用 Vue3组件: <template><div id="codeEditBox" :style="height: + height + px"></div> </template><script lang="ts" setup> i…

社区服务支持

社区服务支持 原创 小王搬运工 时序课堂 2024-06-07 19:29 四川 &#x1f31f; 邀请函 | 加入我们的时序数据挖掘社区 &#x1f680; 尊敬的数据爱好者们&#xff0c; 我们诚挚地邀请您加入我们的专业社区——时序数据挖掘社区&#xff0c;一个专注于时序数据分析、挖掘与应…

阿里通义千问,彻底爆了!(本地部署+实测)

点击“终码一生”&#xff0c;关注&#xff0c;置顶公众号 每日技术干货&#xff0c;第一时间送达&#xff01; 问大家一个问题&#xff1a;你是否想过在自己的电脑上部署一套大模型&#xff1f;并用自己的知识库训练他&#xff1f; 阿里通义千问今天发布了最新的开源大模型系…

[力扣题解]

题目&#xff1a;530. 二叉搜索树的最小绝对差 思路 中序遍历 对于二叉搜索树而言&#xff0c;中序遍历可以把树拉直为一个从小到大排序的数组&#xff1b; 代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* Tre…

深入浅出服务发现:构建动态微服务架构的基石

什么是服务发现&#xff1f; 简单来说&#xff0c;服务发现就是让软件系统中的各个部分能够相互“认识”和“交流”的过程。在现代的软件架构中&#xff0c;我们经常使用微服务架构&#xff0c;这意味着一个大的应用程序被拆分成了许多小的、独立的服务。这些服务可能分布在不…