当前位置: 首页 > news >正文

怎么做私服网站网络运营主要做什么工作

怎么做私服网站,网络运营主要做什么工作,网站建设存在的问题和不足,福鼎建设局网站首页一、前言 前期我们已经对python的运行原理以及运行过程中产生的文件结构有了了解。本节,我们将结合具体的例子来实践python运行,编译,反编译的过程,并对前些章节中可能遗漏的具体细节进行补充。 二、Python编译 python在正常运行时…

一、前言

前期我们已经对python的运行原理以及运行过程中产生的文件结构有了了解。本节,我们将结合具体的例子来实践python运行,编译,反编译的过程,并对前些章节中可能遗漏的具体细节进行补充。

二、Python编译

python在正常运行时,有时编译生成pyc文件,有时候没有pyc文件的生成。那么我们能不能手动将python程序编译成pyc文件呢?答案是可以的,不但可以编译,还可以直接运行pyc文件以实现程序运行的效率。

2.1、pyc文件的生成

命令行模式:

python -m py_compile file.py # 生成单个pyc文件

python -m py_compile /dir/{file1,file2}.py # 生成多个pyc文件

python -m compileall /dir/ # 生成目录下所有py文件对应的pyc文件

交互shell模式:

>>> import py_compile # 相当于命令行中的“-m py_compile”

>>> py_compile.compile('py file path')

>>> import compileall

>>> compileall.compile_dir("py files dir")

1391592-20191106125520854-2145625513.png

2.2、pyo文件生成

pyo文件是源代码文件经过优化编译后生成的文件,是pyc文件的优化版本。编译时需要使用-O和-OO选项来生成pyo文件。在Python3.5之后,不再使用.pyo文件名,而是生成文件名类似“test.opt-n.pyc的文件。

python -O -m py_compile file.py

python -O -m py_compile /dir/{file1,file2}.py

python -O -m compileall /dir/

1391592-20191106125539377-1849037111.png

2.3、直接运行编译好的pyc或者pyo文件

1391592-20191106125602677-2070908815.png

三、字节码文件反编译

经过编译的python文件可以提高程序的运行速度,一定程度上也对源代码起到了保护作用。然而如果我们只有编译过的python字节码文件,就给我们审查源码造成了一定的困难,这就引出了python字节码反编译的需求。

上一节我们介绍过pyc文件的结构,其实就是pyc文件头部加上PyCodeObject对象。文件头部的信息在python2中只占用固定8字节,用来携带一些版本类的信息,不是我们做反编译的重点,因此通过提取8字节之后的部门做反编译处理就可以了。

1391592-20191106125617597-330748831.png

PyCodeObjectData就是我们需要提取的数据,根据python的编译原理我们知道PyCodeObjectData是python源文件作为一个实例化的类,通过python内置库函数marshal.dumps生成的二进制数据段,因此通过marshal.loads(PyCodeObjectData) ,我们可以得到PyCodeObjectData反序列化的对象。

1391592-20191106125637773-1380990590.png

可以看到PyObj对象包含了很多内置方法和属性,这些属性在第二节中我们已经有过介绍,各个字段的含义都已经知道了。通过对这些方法的引用可以直接看到相关字段反序列后的具体值。

1391592-20191106125654077-584312046.png

使用python内置模块dis可以对PyCodeObject进行反编译,从而获取到python二进制字节码代码段的“汇编形式”。这样可以便于对字节码进行阅读。dis模块也可以单独对PyCodeObject中的co_data模块进行反编译,但是这样得到的是单纯的代码段字节码,缺少很多代码段中涉及的变量名字。如上图所示。

四、结语

本节我们对python源码编译生成字节码文件和从字节码文件反编译生成字节码代码段(python的汇编形式)进行介绍。下一章节我们将对dis模块的源码进行解读,以便于后续章节关于python代码混淆技术的涉及。

http://www.lbrq.cn/news/2509363.html

相关文章:

  • 怎么建网站做淘宝客成都正规搜索引擎优化
  • 中国建设招聘信息网站北京营销推广网站建设
  • 做长直播的房地产网站小红书如何引流推广
  • wordpress做的视听网站做企业网站哪个平台好
  • 建设银行校招网站入口国际军事新闻
  • 一个空间做2个网站吗网络营销形式
  • seo网站优化培训班百度一下网页搜索
  • 郑州公司建站搭建广州seo关键词优化是什么
  • 怎样通过网盘做电影网站seo免费诊断
  • 网站制作切片目前在哪个平台做推广好
  • 有哪些比较好的做ppt好的网站怎样宣传自己的产品
  • 娄底做网站windows优化大师兑换码
  • python 做下载网站上海今天最新发布会
  • 外贸免费p2p网站建设seo技巧与技术
  • 网站产品图怎么做的网店运营推广中级实训
  • 上海工厂网站建设百度网盘客服在线咨询
  • asp.net网站开发实例十大外贸电商平台
  • 密云建设网站企业培训系统app
  • 源码出售网站怎么做国外搜索引擎排行榜
  • 网站模板首页营销qq官网
  • 深圳做网站可用乐云seo十年百度移动端点赞排名软件
  • qq浏览器直接打开网页seo的流程是怎么样的
  • 靓号网站建设推销广告
  • 软件工程师工作内容厦门seo外包
  • 个人网站备案下载站网络培训机构
  • 网站代码开发软件hb找推网
  • 网站开发制作学徒如何找外包的销售团队
  • 福清福州网站建设临沂seo推广
  • 网站加载速率怎么看关键词的搜索量
  • 高端网站开发公司有哪些企业营销策略有哪些
  • 开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放
  • 爬虫自动化:一文掌握 PyAutoGUI 的详细使用
  • Spring Boot 防重放攻击全面指南:原理、方案与最佳实践
  • SketchUp纹理贴图插件Architextures安装使用图文教程
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • dapp前端⾯试题