python一打开就是源代码模式怎么办

Python027

python一打开就是源代码模式怎么办,第1张

可以打开py模式,Python控制台程序的源代码文件

python作为一种动态语言,其实是一个解释器软件包。当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤。第一步是编译成所谓的“字节码”,如果Python进程拥有写入权限,将把程序的字节码保存为一个以.pyc为扩展名的文件,如果Python无法在机器上写入字节码,程序仍然可以工作:字节码将会在内存中生成并在程序结束时简单地丢弃。

大家都很忙,谁有时间看你的的烂代码! 如果真的怕泄露,别用python. 我以前做过这类事情,而且当时更严格,需要打包部署到客户的服务只在有效期内有效,超过有效期必须更新证书才行。 Python代码用任何方法都没法保证保密性,这个时候你可以考虑用一个工具「nuitka」,这个工具会把你的python源代码映射为c++然后编译为二进制,因此对方是无论如何得不到你的源代码的。 代价就是nuitka这个工具并不完美,有一些限制并不能100%完美的转换所有python代码。 1.用Cython编译python成 Windows的pyd文件或Linux的so文件,二进制文件相对安全性较高。 2.用源码混淆器把代码搞的又臭又长。。。混淆完了再用Cython编译为二进制。。。这样静态反编译逆向难度也不小。 3.同其他语言程序一样,可以对调试状态进行检测,当处于调试状态时退出程序或进入混乱代码耗费逆向工程人员心神。 4.分享一个跨平台反调试手段,检测函数运行时间,加断点会导致函数运行时间变长,也可感知正在被调试。 Python是提倡开源的,既然选择Python还是拥抱开源才好~ 都开源还担心逆向工程嘛没有不能逆的软件。 只要汇编语言过关,逆向工程都是可以实现的,不要有其它想法。 你唯一可以做的,就是不让别人用python读取源代码而已。那样实现起来比较简单。 python 适合开发服务器程序,或者自己科研使用的程序,如果是 作为用户程序,安装到 pc 或手机上,还是 其它 c++ 或java 比较合适 1)可以把需要保护的部分用c语言实现,从而编译成so等文件,这样逆向的成本会比较高,可以防止直接打开python文件看到代码逻辑。 2)so文件通过ida等工具也是可以反汇编的,可以通过对c语言进行代码混淆,花指令等操作,提高通过ida等反汇编工具的分析难度。 3)不存在绝对无法逆向的技术手段,因此只能是看具体需求,选择具体的防逆向的技术手段。 有工具类似py2exe转成可执行程序,隐藏全部源代码,虽然bytecode还是可以反编译,但是难度大多了 1. 最稳的就是你改cpython加载代码的过程,改zip包读取最稳。 2. 借助一些加密工具在编译pyc之前进行一定的混淆,可以防君子,自我安慰一下。 商用一般都是用第一种办法,小打小闹用第二种。可以考虑使用pymod工具,使用pymod pack 将模块加密打包,发布的时候一个模块就一个文件。 先睹为快,看看一个项目发布的时候,只有几个文件, main.py 项目程序入口 setting.py 项目配置 apps 项目模块 plusins 项目插件目录创建项目 pymod create demo1 cd demo1 创建模块 pymod add mod1 启动pycharm 开始编写功能模块 一个模块默认由三个文件组成 __init__.py 、 handlers.py 、param_schemas.py 业务逻辑主要在handlers.py中编写 __init__.py from pymod.blueprint import Blueprint api = Blueprint("/mod1") from .handlers import * param_schemas.py schema_sfz = { "type": "object", "required": ["sfz", "nl"], "properties": { "sfz": { "type": "string", "minLength": 18, "maxLength": 18, "description": "身份证明号码" }, "nl": { "type": "integer", "minimum": 0, "maximum": 150, "description": "年龄" } } } handlers.py from . import api from pymod.ext import RequestHandler, params_validate,TrueResponse,FalseResponse from .param_schemas import schema_sfz from pymod.plugins import sfz_check @api.add_route('/hello') class Hello(RequestHandler): def get(self): self.write('Hello World') @params_validate(schema_sfz) def post(self): sfz = self.get_json_arg("sfz") nl =self.get_json_arg("nl") # self.write(TrueResponse(sfz=sfz, nl=nl)) if sfz_check.check_sfzmhm(sfz): self.write(TrueResponse(hint="身份证明号码验证通过")) else: self.write(FalseResponse(hint="身份证明号码验证失败")) 三、项目部署 程序调试 修改setting.py # 开发模式下 运行的模块名称必须填写 modules = ["mod1"] modules_config ={ "mod1": { "deny_ip": "", "allow_ip": "*" } } 启动程序 python main.py 调试没有问题,进入发布模式 在项目目录下 pymod pack mod1 在target目录下生成mod1.mod文件,将其复制到apps目录中 修改setting.py # 开发模式下 运行的模块名称必须填写 modules = [] 再次运行 python main.py 测试 一切OK,系统就可以发布了。说不能保密的,是没有研究过python的机制的。我做个一个项目,所有源代码自定义加密,运行时解密。

简单的做个例子,框架路径可以自己修改,调用像百度等网站时无法读取其中源码,涉及到一些安全问题,所以路径要求是合法的允许访问的路径 function GetFrameInnerHtml(objIFrame) { var iFrameHTML = ""if (objIFrame.contentDocument) { //针...