python工具

在线工具

      请选择pyc文件进行解密。支持所有Python版本


      #!/usr/bin/env python # encoding: utf-8 # 如果觉得不错,可以分享给你的朋友 https://tool.lu/pyc/ # 2018-03-05 1.3 支持中文字符串的反编译 x = { "a":37,"b":42, "c":927} y = "hello" "tool.lu" z = "hello "+"tool.lu" a = "hello {}".format("tool.lu") class foo ( object ): def f (self ): return 37*-+2 def g(self, x,y=42): return y def f ( a ) : return 37+-+a[42-x : y**3]

      美化(Beautify)下载(Download)

      简介

      python文件在被import运行的时候会在同目录下编译一个pyc的文件(为了下次快速加载),这个文件可以和py文件一样使用,但无法阅读和修改;python工具支持将pyc文件反编译为py文件(可能会存在部分文件无法反编译)。

      支持的python版本:1.0、 1.1、 1.3、 1.4、 1.5、 1.6、 2.0、 2.1、 2.2、 2.3、 2.4、 2.5、 2.6、 2.7、 3.0、 3.1、 3.2、 3.3、 3.4、 3.5、 3.6、 3.7、 3.8、 3.9、 3.10、 3.11、 3.12。

      本工具免费使用,限制30分钟内反编译 1次/ip;如有更高的使用频次需求,可以 开通本站会员,开通后限制将变为30秒内反编译 30次/用户。

      使用说明

      1、选择文件,上传pyc文件。

      2、等待反编译结果,如果成功,会在文本框中显示。

      3、如果源码中存在中文,会以url编码的形式展示,可以尝试点击 “UTF-8解码” 或者 “GBK解码” 按钮,解码源码中的中文部分。

      python字节码

      Python 字节码是源代码经过编译后的中间表示形式。编译过程由 Python 解释器内的编译器(CPython)自动完成;字节码通常被存储在 `.pyc` 文件中,这是一种编译过的 Python 文件,可以被 Python 虚拟机(PVM) 直接执行。这种预编译可以提高程序的启动速度。

      反编译是将编译后的字节码转换回接近原始 Python 源代码的过程;反编译得到的源代码可能不会完全等同于原始源代码(比如变量名和某些结构),但在逻辑上与原始代码等效。

      下面是一些常见的 Python 字节码指令:

  1.       LOAD_CONST - 加载常量到栈上,如数字、字符串、元组等。
  2.       LOAD_FAST - 从局部变量空间中加载一个变量到栈上。
  3.       STORE_FAST - 将栈顶的值存储到局部变量空间中。
  4.       LOAD_GLOBAL - 从全局变量空间中加载一个变量到栈上。
  5.       STORE_GLOBAL - 将栈顶的值存储到全局变量空间中。
  6.       LOAD_ATTR - 加载一个对象的属性。
  7.       STORE_ATTR - 设置一个对象的属性。
  8.       CALL_FUNCTION - 调用一个函数,参数数量由操作数指定。
  9.       MAKE_FUNCTION - 从栈上的代码对象创建一个函数对象。
  10.       BUILD_LIST - 从栈上的元素创建一个列表。
  11.       BUILD_MAP - 创建一个字典。
  12.       BUILD_TUPLE - 从栈上的元素创建一个元组。
  13.       UNPACK_SEQUENCE - 将一个序列(如列表或元组)解包到栈上。
  14.       INPLACE_ADD - 执行就地加法操作,即 a += b。
  15.       RETURN_VALUE - 从函数返回一个值。
  16.       POP_TOP - 弹出栈顶元素。
  17.       DUP_TOP - 复制栈顶元素。
  18.       ROT_TWO - 交换栈顶的两个元素。
  19.       ROT_THREE - 将栈顶三个元素向上旋转一次。
  20.       COMPARE_OP - 执行比较操作,如等于、不等于、小于等。
  21.       JUMP_FORWARD - 向前跳转到字节码中的另一个地址。
  22.       JUMP_IF_TRUE_OR_POP - 如果栈顶为真则跳转,否则弹出栈顶元素。
  23.       JUMP_IF_FALSE_OR_POP - 如果栈顶为假则跳转,否则弹出栈顶元素。
  24.       POP_JUMP_IF_TRUE - 如果栈顶为真则弹出并跳转。
  25.       POP_JUMP_IF_FALSE - 如果栈顶为假则弹出并跳转。

      😉 腾讯云产品特惠热卖,戳我领取

      评论