赞
踩
将敏感代码转码,使用时解码再执行。
参考:
Python免杀火绒、360和Defender_江左盟宗主的博客-CSDN博客
- #-*- coding: utf-8 -*-
- import base64
-
- str = """
- print('123')
- """
- #编码
- encode = base64.b64encode(str.encode('utf-8'))
- print(encode)
结果:
b'CnByaW50KCcxMjMnKQo='
- #-*- coding: utf-8 -*-
- import base64
-
- a = b'CnByaW50KCcxMjMnKQo='
-
- #解码
- decode = base64.b64decode(a)
- #执行
- exec(decode)
导入库的代码(import XXX),请勿进行编码。生成exe的时候,会加载所需要的的库。
文件布局
- import os
- import chardet
- import base64
-
- """
- 0.源文件,导入库的部分,都在顶部集中写。
- 1.源文件目录,只保留一个待处理文件。
- 2.结果文件夹,每次最好清空一下内容。
- """
- # ===================1.读取文件名=======================
- file_name = ""
- for i in os.listdir("源文件/"):
- if ".py" in i:
- file_name = i
-
- if file_name == "":
- raise Exception("文件没有读取")
-
- # ===================2.获取文件的编码格式=======================
- file = open("源文件/" + file_name, "rb")
- encoding = chardet.detect(file.read())['encoding']
-
- # ===================3.读取数据=======================
- import_message = ""
- code_message = ""
-
- file = open("源文件/" + file_name, "r", encoding=encoding)
- lines = file.readlines()
-
- for i in lines:
- if i[:6] == "import" or i[:4] == "from":
- import_message += i
- else:
- code_message += i
-
- # ===================4.编码=======================
- encode = base64.b64encode(code_message.encode('utf-8'))
-
- # ===================5.解码文件=======================
-
- file = open("结果/" + file_name, "w", encoding="utf-8")
- # 写入导入
- file.write(import_message)
- file.write("import base64" + "\n")
-
- # 写入内容
- file.write("\n")
- file.write("a = " + str(encode) + "\n")
- file.write("decode = base64.b64decode(a)" + "\n")
- file.write("exec(decode)")
- file.close()
-
- # # ===================6.转exe=======================
- os.chdir("结果")
- # os.system("pyinstaller -F " + file_name)#黑窗口版,无图标,一个exe文件
- # os.system("pyinstaller -F -w " + file_name)#GUI界面版,无图标,一个exe文件
- # os.system("pyinstaller -F -w --icon=图标.ico " + file_name)#GUI界面版,有图标,一个exe文件
- os.system("pyinstaller -D -w --icon=图标.ico " + file_name)#GUI界面版,有图标,一个文件文件夹
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
文件布局
- import os
- import chardet
- import base64
-
- """
- 0.源文件,导入库的部分,都在顶部集中写。
- 1.源文件目录,只保留一个待处理文件。
- 2.结果文件夹,每次最好清空一下内容。
- """
- # ===================1.读取文件名=======================
-
- for file_name in os.listdir("源文件/"):
-
- # ===================2.获取文件的编码格式=======================
- file = open("源文件/" + file_name, "rb")
- encoding = chardet.detect(file.read())['encoding']
-
- # ===================3.读取数据=======================
- import_message = ""
- code_message = ""
-
- file = open("源文件/" + file_name, "r", encoding=encoding)
- lines = file.readlines()
-
- for i in lines:
- if i[:6] == "import" or i[:4] == "from":
- import_message += i
- else:
- code_message += i
-
- # ===================4.编码=======================
- encode = base64.b64encode(code_message.encode('utf-8'))
-
- # ===================5.解码文件=======================
-
- file = open("结果/" + file_name, "w", encoding="utf-8")
- # 写入导入
- file.write(import_message)
- file.write("import base64" + "\n")
-
- # 写入内容
- file.write("\n")
- file.write("a = " + str(encode) + "\n")
- file.write("decode = base64.b64decode(a)" + "\n")
- file.write("exec(decode)")
- file.close()
-
- # # ===================6.转exe=======================
- os.chdir("结果")
- os.system("pyinstaller -F " + file_name)#黑窗口版,无图标,一个exe文件
- os.chdir("../")#返回上一级目录
- # aaaa = r" --add-data H:\软件\Python\python_install\Lib\site-packages\pyecharts\render\templates;pyecharts/render/templates --add-data H:\软件\Python\python_install\Lib\site-packages\pyecharts\datasets;pyecharts/datasets"
- # os.system(r"pyinstaller -F " + file_name+aaaa)#黑窗口版,无图标,一个exe文件
- # os.system("pyinstaller -F -w " + file_name)#GUI界面版,无图标,一个exe文件
- # os.system("pyinstaller -F -w --icon=图标.ico " + file_name)#GUI界面版,有图标,一个exe文件
- # os.system("pyinstaller -D -w --icon=图标.ico " + file_name) # GUI界面版,有图标,一个文件文件夹
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。