一.前言 前期我们已经对python的运行原理以及运行过程中产生的文件结构有了了解.本节,我们将结合具体的例子来实践python运行,编译,反编译的过程,并对前些章节中可能遗漏的具体细节进行补充. 二.Python编译 python在正常运行时,有时编译生成pyc文件,有时候没有pyc文件的生成.那么我们能不能手动将python程序编译成pyc文件呢?答案是可以的,不但可以编译,还可以直接运行pyc文件以实现程序运行的效率. 2.1.pyc文件的生成 命令行模式: python -m py_co…
一.前言 最近在学习Python逆向相关,涉及到python字节码的阅读,编译及反汇编一些问题.经过长时间的学习有了一些眉目,为了方便大家交流,特地将学习过程整理,形成了这篇专题.专题对python逆向的基础知识进行了简洁有效的解读,暂不涉及python编译过程中的代码混淆.文章中如有不恰当的地方敬请指正,我在学习过程中也会对章节内容持续补充修正. Python逆向(一)-- 前言及Python运行原理 Python逆向(二)-- pyc文件结构分析 Python逆向(三)-- Python编译…
对我来说,比较常用的是C/C++/Python. 使用Notepad++编译运行单个源文件的C/C++/Python,比使用复杂的IDE更加快捷. 想要让Notepad++能够做到编译运行C/C++/Python程序,你需要: 0. 准备好编译器 C/C++编译器,这里推荐MinGW:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/还有python…
以前一直用Codeblocks写C++,eclipse写Java,再在eclipse里面集成PyDev写Python,首先无法忍受代码自动补全功能(这个功能也许你万分喜欢),也无法忍受如此重量级的IDE导致运行起来感觉很笨重.后来发现EditPlus完全符合我自己的要求,不过要自己配置一下编译运行环境而已,这也不过几分钟的事儿,而且我喜欢自定义的代码高亮颜色(用Vim的时候就喜欢这么做了).下面介绍EditPlus配置C++.Python.Java三种语言的编译运行环境,这三种语言也是我经常用的…
一直希望有一个轻量级的编辑器,既可以编辑代码,也可以一键运行.后来有了NotePad++,希望可以配置配置达到目的,配Java的时候上网搜了一堆,基本上互相抄,不解决实际问题,很郁闷.后来琢磨了出来,贴出来备忘. 一.安装插件下载NppExec插件,解压将dll拷贝到*\Notepad++\plugins下 二.写好Java文件,然后点击plugins->NppExec->Execute 三.输入脚本: npp_save cd $(CURRENT_DIRECTORY) javac $(NAME…
虽然Python被说成是一种解释型语言,但是实际上,Python源程序要先经过编译,然后才能运行. 与Java语言类似,Python源程序编译之后得到的是字节码,交由Python虚拟机来运行. 关于这一点,我们可以这样来验证: #!/usr/bin/python print "position1" 1_syntax_error_identifier print "position2" 将它保存为program.py,然后在shell窗口中运行它: root@dell…
内容参考如下文章,加入了自己的干货: https://www.cnblogs.com/huluwahaha/p/7503930.html 在sublime中如何配置Python的编译环境呢? 打开Sublime Text 3 打开Sublime Text 3,依次进入Tools--> build system菜单(如图) 首先我们看到默认有一个Python编译版本,我本机默认的是Anaconda3集成环境安装自带的Python3. 配置代码 在打开的文件里输入配置代码,命名文件为MosesMin…
一.Python安装 从Python官网下载Python 3.x的安装程序,下载后双击运行并安装即可: Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. MAC 系统一般都自带有 Python2.x版本的环境,但由于3.x版越来越普及,所以我又安装Python3.10. 我试了下,这两个版本可以同时存在并正常使用. 1-1.IDLE 编辑器 他是Python软件包自带的一个基本IDE(集成开发环境): 当我们从Python官方网站下载并安装好Python 3.x后,…
C语言: .c文件 编译器gcc//my_code下hello.c文件 $sudo apt install gcc $gcc hello.c -o hello $./hello C++: .cpp文件 编译器g++//my_code下hello.cpp文件 $sudo apt install g++ $gcc hello.cpp -o hellocpp $./hellocpp python: .py文件 不用编译//my_code下hello.py文件 $python3 hello.py go:…
一.前言 前些章节我们对python编译.反汇编的原理及相关模块已经做了解读.读者应该初步掌握了通过反汇编获取python程序可读字节码的能力.python逆向或者反汇编的目的就是在没有源码的基础上,通过字节码来理解源代码的运行内容,并且进一步对源码的远行进行调试.因此本次我们尝试对python字节码进行解读. 二.字节码结构 字节码结构如下: 源码行号 | 跳转注释符 | 指令在函数中的偏移 | 指令符号(助记符) | 指令参数 | 实际参数值 上图表示: 该字节码指令在源码中对应59行 此处…