python magic_number对照表(python1.5-python3.12)

文章目录

  • 前言
  • 获取Magic Number
  • Magic Number对照表

在这里插入图片描述

其它相关推荐:
Python3.9及以上Pyinstaller 反编译教程(exe转py)



前言

Python3.7及以上版本的编译后二进制文件中,头部除了四字节Magic Number,还有四个字节的空位和八个字节的时间戳 + 大小信息,后者对文件反编译没有影响,全部填充0即可
反编译教程:https://blog.csdn.net/qq_41273999/article/details/139420400#comments_33401790


获取Magic Number

Magic Number是4字节的二进制数据,我们找到对应的十进制数据后,通过以下代码得到相应的二进制数据

MAGIC_NUMBER = (3425).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little')  # For import.c
HEX_MAGIC_NUMBER = hex(_RAW_MAGIC_NUMBER)
print(HEX_MAGIC_NUMBER)

ps: 3425就是Python 3.9a2的Magic Number,执行后可以得到0xa0d0d61,则对应二进制码是61 0D 0D 0A


Magic Number对照表

Known values:

Python 1.5: 20121
Python 1.5.1: 20121
Python 1.5.2: 20121
Python 1.6: 50428
Python 2.0: 50823
Python 2.0.1: 50823
Python 2.1: 60202
Python 2.1.1: 60202
Python 2.1.2: 60202
Python 2.2: 60717
Python 2.3a0: 62011
Python 2.3a0: 62021
Python 2.3a0: 62011 (!)
Python 2.4a0: 62041
Python 2.4a3: 62051
Python 2.4b1: 62061
Python 2.5a0: 62071
Python 2.5a0: 62081 (ast-branch)
Python 2.5a0: 62091 (with)
Python 2.5a0: 62092 (changed WITH_CLEANUP opcode)
Python 2.5b3: 62101 (fix wrong code: for x, in …)
Python 2.5b3: 62111 (fix wrong code: x += yield)
Python 2.5c1: 62121 (fix wrong lnotab with for loops and storing constants that should have been removed)
Python 2.5c2: 62131 (fix wrong code: for x, in … in listcomp/genexp)
Python 2.6a0: 62151 (peephole optimizations and STORE_MAP opcode)
Python 2.6a1: 62161 (WITH_CLEANUP optimization)
Python 2.7a0: 62171 (optimize list comprehensions/change LIST_APPEND)
Python 2.7a0: 62181 (optimize conditional branches: introduce POP_JUMP_IF_FALSE and POP_JUMP_IF_TRUE)
Python 2.7a0: 62191 (introduce SETUP_WITH)
Python 2.7a0: 62201 (introduce BUILD_SET)
Python 2.7a0: 62211 (introduce MAP_ADD and SET_ADD)
Python 3000: 3000
    3010 (removed UNARY_CONVERT)
    3020 (added BUILD_SET)
    3030 (added keyword-only parameters)
    3040 (added signature annotations)
    3050 (print becomes a function)
    3060 (PEP 3115 metaclass syntax)
    3061 (string literals become unicode)
    3071 (PEP 3109 raise changes)
    3081 (PEP 3137 make file and name unicode)
    3091 (kill str8 interning)
    3101 (merge from 2.6a0, see 62151)
    3103 (file points to source file)
Python 3.0a4: 3111 (WITH_CLEANUP optimization).
Python 3.0b1: 3131 (lexical exception stacking, including POP_EXCEPT 3021)
Python 3.1a1: 3141 (optimize list, set and dict comprehensions: change LIST_APPEND and SET_ADD, add MAP_ADD #2183)
Python 3.1a1: 3151 (optimize conditional branches: introduce POP_JUMP_IF_FALSE and POP_JUMP_IF_TRUE 4715)
Python 3.2a1: 3160 (add SETUP_WITH #6101)
tag: cpython-32
Python 3.2a2: 3170 (add DUP_TOP_TWO, remove DUP_TOPX and ROT_FOUR #9225)
tag: cpython-32
Python 3.2a3: 3180 (add DELETE_DEREF #4617)
Python 3.3a1: 3190 (class super closure changed)
Python 3.3a1: 3200 (PEP 3155 qualname added #13448)
Python 3.3a1: 3210 (added size modulo 2**32 to the pyc header #13645)
Python 3.3a2: 3220 (changed PEP 380 implementation #14230)
Python 3.3a4: 3230 (revert changes to implicit class closure #14857)
Python 3.4a1: 3250 (evaluate positional default arguments before keyword-only defaults #16967)
Python 3.4a1: 3260 (add LOAD_CLASSDEREF; allow locals of class to override free vars #17853)
Python 3.4a1: 3270 (various tweaks to the class closure #12370)
Python 3.4a1: 3280 (remove implicit class argument)
Python 3.4a4: 3290 (changes to qualname computation #19301)
Python 3.4a4: 3300 (more changes to qualname computation #19301)
Python 3.4rc2: 3310 (alter qualname computation #20625)
Python 3.5a1: 3320 (PEP 465: Matrix multiplication operator #21176)
Python 3.5b1: 3330 (PEP 448: Additional Unpacking Generalizations #2292)
Python 3.5b2: 3340 (fix dictionary display evaluation order #11205)
Python 3.5b3: 3350 (add GET_YIELD_FROM_ITER opcode #24400)
Python 3.5.2: 3351 (fix BUILD_MAP_UNPACK_WITH_CALL opcode #27286)
Python 3.6a0: 3360 (add FORMAT_VALUE opcode #25483)
Python 3.6a1: 3361 (lineno delta of code.co_lnotab becomes signed #26107)
Python 3.6a2: 3370 (16 bit wordcode #26647)
Python 3.6a2: 3371 (add BUILD_CONST_KEY_MAP opcode #27140)
Python 3.6a2: 3372 (MAKE_FUNCTION simplification, remove MAKE_CLOSURE #27095)
Python 3.6b1: 3373 (add BUILD_STRING opcode #27078)
Python 3.6b1: 3375 (add SETUP_ANNOTATIONS and STORE_ANNOTATION opcodes #27985)
Python 3.6b1: 3376 (simplify CALL_FUNCTIONs & BUILD_MAP_UNPACK_WITH_CALL 27213)
Python 3.6b1: 3377 (set class cell from type.new #23722)
Python 3.6b2: 3378 (add BUILD_TUPLE_UNPACK_WITH_CALL #28257)
Python 3.6rc1: 3379 (more thorough class validation #23722)
Python 3.7a1: 3390 (add LOAD_METHOD and CALL_METHOD opcodes #26110)
Python 3.7a2: 3391 (update GET_AITER #31709)
Python 3.7a4: 3392 (PEP 552: Deterministic pycs #31650)
Python 3.7b1: 3393 (remove STORE_ANNOTATION opcode #32550)
Python 3.7b5: 3394 (restored docstring as the first stmt in the body; this might affected the first line number #32911)
Python 3.8a1: 3400 (move frame block handling to compiler #17611)
Python 3.8a1: 3401 (add END_ASYNC_FOR #33041)
Python 3.8a1: 3410 (PEP570 Python Positional-Only Parameters #36540)
Python 3.8b2: 3411 (Reverse evaluation order of key: value in dict comprehensions #35224)
Python 3.8b2: 3412 (Swap the position of positional args and positional only args in ast.arguments #37593)
Python 3.8b4: 3413 (Fix “break” and “continue” in “finally” #37830)
Python 3.9a0: 3420 (add LOAD_ASSERTION_ERROR #34880)
Python 3.9a0: 3421 (simplified bytecode for with blocks #32949)
Python 3.9a0: 3422 (remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387)
Python 3.9a2: 3423 (add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156)
Python 3.9a2: 3424 (simplify bytecodes for value unpacking)
Python 3.9a2: 3425 (simplify bytecodes for **value unpacking)
Python 3.10a1: 3430 (Make ‘annotations’ future by default)
Python 3.10a1: 3431 (New line number table format – PEP 626)
Python 3.10a2: 3432 (Function annotation for MAKE_FUNCTION is changed from dict to tuple bpo-42202)
Python 3.10a2: 3433 (RERAISE restores f_lasti if oparg != 0)
Python 3.10a6: 3434 (PEP 634: Structural Pattern Matching)
Python 3.10a7: 3435 Use instruction offsets (as opposed to byte offsets).
Python 3.10b1: 3436 (Add GEN_START bytecode #43683)
Python 3.10b1: 3437 (Undo making ‘annotations’ future by default - We like to dance among core devs!)
Python 3.10b1: 3438 Safer line number table handling.
Python 3.10b1: 3439 (Add ROT_N)
Python 3.11a1: 3450 Use exception table for unwinding (“zero cost” exception handling)
Python 3.11a1: 3451 (Add CALL_METHOD_KW)
Python 3.11a1: 3452 (drop nlocals from marshaled code objects)
Python 3.11a1: 3453 (add co_fastlocalnames and co_fastlocalkinds)
Python 3.11a1: 3454 (compute cell offsets relative to locals bpo-43693)
Python 3.11a1: 3455 (add MAKE_CELL bpo-43693)
Python 3.11a1: 3456 (interleave cell args bpo-43693)
Python 3.11a1: 3457 (Change localsplus to a bytes object bpo-43693)
Python 3.11a1: 3458 (imported objects now don’t use LOAD_METHOD/CALL_METHOD)
Python 3.11a1: 3459 (PEP 657: add end line numbers and column offsets for instructions)
Python 3.11a1: 3460 (Add co_qualname field to PyCodeObject bpo-44530)
Python 3.11a1: 3461 (JUMP_ABSOLUTE must jump backwards)
Python 3.11a2: 3462 (bpo-44511: remove COPY_DICT_WITHOUT_KEYS, change MATCH_CLASS and MATCH_KEYS, and add COPY)
Python 3.11a3: 3463 (bpo-45711: JUMP_IF_NOT_EXC_MATCH no longer pops the active exception)
Python 3.11a3: 3464 (bpo-45636: Merge numeric BINARY_
/INPLACE_* into BINARY_OP)
Python 3.11a3: 3465 (Add COPY_FREE_VARS opcode)
Python 3.11a4: 3466 (bpo-45292: PEP-654 except*)
Python 3.11a4: 3467 (Change CALL_xxx opcodes)
Python 3.11a4: 3468 (Add SEND opcode)
Python 3.11a4: 3469 (bpo-45711: remove type, traceback from exc_info)
Python 3.11a4: 3470 (bpo-46221: PREP_RERAISE_STAR no longer pushes lasti)
Python 3.11a4: 3471 (bpo-46202: remove pop POP_EXCEPT_AND_RERAISE)
Python 3.11a4: 3472 (bpo-46009: replace GEN_START with POP_TOP)
Python 3.11a4: 3473 (Add POP_JUMP_IF_NOT_NONE/POP_JUMP_IF_NONE opcodes)
Python 3.11a4: 3474 (Add RESUME opcode)
Python 3.11a5: 3475 (Add RETURN_GENERATOR opcode)
Python 3.11a5: 3476 (Add ASYNC_GEN_WRAP opcode)
Python 3.11a5: 3477 (Replace DUP_TOP/DUP_TOP_TWO with COPY and ROT_TWO/ROT_THREE/ROT_FOUR/ROT_N with SWAP)
Python 3.11a5: 3478 (New CALL opcodes)
Python 3.11a5: 3479 (Add PUSH_NULL opcode)
Python 3.11a5: 3480 (New CALL opcodes, second iteration)
Python 3.11a5: 3481 (Use inline cache for BINARY_OP)
Python 3.11a5: 3482 (Use inline caching for UNPACK_SEQUENCE and LOAD_GLOBAL)
Python 3.11a5: 3483 (Use inline caching for COMPARE_OP and BINARY_SUBSCR)
Python 3.11a5: 3484 (Use inline caching for LOAD_ATTR, LOAD_METHOD, and STORE_ATTR)
Python 3.11a5: 3485 (Add an oparg to GET_AWAITABLE)
Python 3.11a6: 3486 (Use inline caching for PRECALL and CALL)
Python 3.11a6: 3487 (Remove the adaptive “oparg counter” mechanism)
Python 3.11a6: 3488 (LOAD_GLOBAL can push additional NULL)
Python 3.11a6: 3489 (Add JUMP_BACKWARD, remove JUMP_ABSOLUTE)
Python 3.11a6: 3490 (remove JUMP_IF_NOT_EXC_MATCH, add CHECK_EXC_MATCH)
Python 3.11a6: 3491 (remove JUMP_IF_NOT_EG_MATCH, add CHECK_EG_MATCH,
add JUMP_BACKWARD_NO_INTERRUPT, make JUMP_NO_INTERRUPT virtual)
Python 3.11a7: 3492 (make POP_JUMP_IF_NONE/NOT_NONE/TRUE/FALSE relative)
Python 3.11a7: 3493 (Make JUMP_IF_TRUE_OR_POP/JUMP_IF_FALSE_OR_POP relative)
Python 3.11a7: 3494 (New location info table)
Python 3.11b4: 3495 (Set line number of module’s RESUME instr to 0 per PEP 626)
Python 3.12a1: 3500 (Remove PRECALL opcode)
Python 3.12a1: 3501 (YIELD_VALUE oparg == stack_depth)
Python 3.12a1: 3502 (LOAD_FAST_CHECK, no NULL-check in LOAD_FAST)
Python 3.12a1: 3503 (Shrink LOAD_METHOD cache)
Python 3.12a1: 3504 (Merge LOAD_METHOD back into LOAD_ATTR)
Python 3.12a1: 3505 (Specialization/Cache for FOR_ITER)
Python 3.12a1: 3506 (Add BINARY_SLICE and STORE_SLICE instructions)
Python 3.12a1: 3507 (Set lineno of module’s RESUME to 0)
Python 3.12a1: 3508 (Add CLEANUP_THROW)
Python 3.12a1: 3509 (Conditional jumps only jump forward)
Python 3.12a2: 3510 (FOR_ITER leaves iterator on the stack)
Python 3.12a2: 3511 (Add STOPITERATION_ERROR instruction)
Python 3.12a2: 3512 (Remove all unused consts from code objects)
Python 3.12a4: 3513 (Add CALL_INTRINSIC_1 instruction, removed STOPITERATION_ERROR, PRINT_EXPR, IMPORT_STAR)
Python 3.12a4: 3514 (Remove ASYNC_GEN_WRAP, LIST_TO_TUPLE, and UNARY_POSITIVE)
Python 3.12a5: 3515 (Embed jump mask in COMPARE_OP oparg)
Python 3.12a5: 3516 (Add COMPARE_AND_BRANCH instruction)
Python 3.12a5: 3517 (Change YIELD_VALUE oparg to exception block depth)
Python 3.12a6: 3518 (Add RETURN_CONST instruction)
Python 3.12a6: 3519 (Modify SEND instruction)
Python 3.12a6: 3520 (Remove PREP_RERAISE_STAR, add CALL_INTRINSIC_2)
Python 3.12a7: 3521 (Shrink the LOAD_GLOBAL caches)
Python 3.12a7: 3522 (Removed JUMP_IF_FALSE_OR_POP/JUMP_IF_TRUE_OR_POP)
Python 3.12a7: 3523 (Convert COMPARE_AND_BRANCH back to COMPARE_OP)
Python 3.12a7: 3524 (Shrink the BINARY_SUBSCR caches)
Python 3.12b1: 3525 (Shrink the CALL caches)
Python 3.12b1: 3526 (Add instrumentation support)
Python 3.12b1: 3527 (Add LOAD_SUPER_ATTR)
Python 3.12b1: 3528 (Add LOAD_SUPER_ATTR_METHOD specialization)
Python 3.12b1: 3529 (Inline list/dict/set comprehensions)
Python 3.12b1: 3530 (Shrink the LOAD_SUPER_ATTR caches)
Python 3.12b1: 3531 (Add PEP 695 changes)
Python 3.13: will start with 3550

在这里插入图片描述

其它相关推荐:
Python3.9及以上Pyinstaller 反编译教程(exe转py)

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

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

相关文章

Spring Boot组件化与参数校验

Spring Boot组件化与参数校验 Spring Boot版本选择 2.3.x版本 2.6.x版本 Spring Boot核心思想 约定大于配置,简化繁琐的配置 Spring Boot自动配置原理 SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,Spr…

【AI副业指南】用AI做心理测试图文号,单月稳赚7000+(附详细教程)

大家好,我是画画的小强 因为AI的出现,很多自媒体副业项目变得简单容易上手,也给予很多想要在业余时间变现的朋友更丰富的项目选择。 今天分享的赛道绝对颠覆大家的认知,本期将叫大家如何通过AI在自媒体平台上做心理测试账号。 …

不同版本的 Rocky Linux 快速更换阿里镜像源

环境:兼容 Rocky Linux 任意版本。 搞服务器系统从 CentOS 折腾到 Rocky Linux,然后又折腾到 Alma Linux;最近因为 RKE2 没有做 Alma Linux 的兼容性,又折腾到了 Rocky Linux ,真的是一把鼻涕一把泪呀。但是实在是不理…

行车记录仪文件夹“0字节”现象解析与恢复策略

一、行车记录仪文件夹“0字节”现象描述 行车记录仪作为现代驾驶中的必备设备,其储存的视频数据对于事故记录和取证至关重要。然而,有时车主们可能会遇到这样一个问题:行车记录仪的某个文件夹内的文件突然变成了0字节大小,无法正…

Transformer的上下文学习能力是哪来的?

有理论基础,我们就可以进行深度优化了。 为什么 transformer 性能这么好?它给众多大语言模型带来的上下文学习 (In-Context Learning) 能力是从何而来?在人工智能领域里,transformer 已成为深度学习中的主导模型,但人们…

口罩佩戴智能监测摄像机

智能监测摄像机在现代城市安全管理中扮演着关键角色,尤其是像口罩佩戴智能监测摄像机这样的设备,其应用正在日益扩展,对于公共卫生和安全至关重要。 这类摄像机利用先进的图像识别技术,能够实时监测人群中是否佩戴口罩。通过高精度…

微信小程序笔记 四!

协同工作和发布 - 协同工作 1. 了解权限管理需求 在中大型的公司里,人员的分工非常仔细:同一个小程序项目,一般会有不同岗位、不同角色的员工同时参与设计与开发。 此时出于管理需要,我们迫切需要对不同岗位、不同角色的员工的…

How to use ModelSim

How to use ModelSim These are all written by a robot

Apache DolphinScheduler 亚马逊云科技联合Meetup: 基于云上的最佳实践

引言 随着大数据和云计算技术的快速发展,企业在数据管理和任务调度上面临着前所未有的挑战,包括复杂的配置过程、性能优化和成本管理等问题。同时,确保数据在传输和存储过程中的安全性,并满足合规性要求,也是一个重要…

深入理解TCP协议:工作原理、报文结构及应用场景

TCP协议详解 TCP(Transmission Control Protocol,传输控制协议)是因特网协议套件中最重要的协议之一。它为应用程序提供了可靠、面向连接的通信服务。TCP协议确保数据包按顺序到达,并且没有丢失或重复。本文将详细介绍TCP协议的工…

手机数据如何恢复?11 款最佳安卓手机恢复软件

媒体可能由于各种原因而从您的设备中删除,可能是意外或病毒攻击。 在这些情况下,照片恢复应用程序是唯一的解决方案。理想的照片恢复应用程序取决于各种因素,例如存储设备的损坏程度、删除照片后的持续时间以及应用程序使用的恢复算法的有效性…

【案例分析:基于 Python 的几种神经网络构建 一维的和二维的全介质和金属SPR 材料的光谱预测与逆向设计】

案例分析:传播相位与几何相位超构单元仿真与器件库提取与二维超构透镜设计与传播光场仿真 案例分析: 片上的超构单元仿真与光学参数提取 案例分析:基于粒子群方法的耦合器设计 案例分析:基于 Python 的几种神经网络构建 一维的和二…

【netty】三万字详解!JAVA高性能通信框架,关于netty,看这一篇就够了

目录 1.概述 2.hello world 3.EventLoop 4.channel 4.1.同步 4.2.异步 4.3.调试 4.4.关闭 4.5.为什么要用异步 5.future 6.promise 7.pipeline 8.byteBuf 8.1.创建 8.2.内存模式和池化 8.2.1.内存模式 8.2.2.池化 8.3.组成 8.4.操作 8.4.1.读写 8.4.2.释放…

深度学习神经网络协同过滤模型(NCF)与用户协同过滤(UCF)的区别

一、效果图 点我查看在线demo 二、启发式推荐系统 推荐系统的核心是根据用户的兴趣需求,给用户推荐喜欢的内容。常用的推荐算法有启发式推荐算法,可分为基于用户的 协同过滤,基于物品的协同过滤。 1、基于用户的协同过滤(UCF…

【笔记】打卡01 | 初学入门

初学入门:01-02 01 基本介绍02 快速入门库处理数据集网络构建模型训练保存模型加载模型打卡-时间 01 基本介绍 MindSpore Data(数据处理层) ModelZoo(模型库) MindSpore Science(科学计算),包含…

DP:完全背包+多重背包问题

完全背包和01背包的区别就是&#xff1a;可以多次选 一、完全背包&#xff08;模版&#xff09; 【模板】完全背包_牛客题霸_牛客网 #include <iostream> #include<string.h> using namespace std; const int N1001; int n,V,w[N],v[N],dp[N][N]; //dp[i][j]表示…

【机器学习 复习】第6章 支持向量机(SVM)

一、概念 1.支持向量机&#xff08;support vector machine&#xff0c;SVM&#xff09;&#xff1a; &#xff08;1&#xff09;基于统计学理论的监督学习方法&#xff0c;但不属于生成式模型&#xff0c;而是判别式模型。 &#xff08;2&#xff09;支持向量机在各个领域内的…

CentOS Linux 7系统中离线安装MySQL5.7步骤

预计数据文件存储目录为&#xff1a;/opt/mysql/data 1、文件下载&#xff1a; 安装文件下载链接&#xff1a;https://downloads.mysql.com/archives/community/ 2、检查当前系统是否安装过MySQL [rootcnic51 mysql]# rpm -qa|grep mariadb mariadb-libs-5.5.68-1.el7.x86_6…

跨区域文件管控解决方案,一文了解

跨区域文件管控是一个涉及在不同地域或区域之间管理和控制文件的过程&#xff0c;它包括安全性、合规性和管理效率等多个方面。以下是一些关键的考量因素&#xff1a; 1.安全性&#xff1a;确保在传输过程中文件不被截获、篡改或泄露。使用加密技术保护文件&#xff0c;并确保传…

【初阶数据结构】深入解析带头双向循环链表:探索底层逻辑

&#x1f525;引言 本篇将介绍带头双向循环链表底层实现以及在实现中需要注意的事项&#xff0c;帮助各位在使用过程中根据底层实现考虑到效率上问题和使用时可能会导致的错误使用 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔…