解压缩, 脱壳字节码, 也就是解压原先压缩壳中的bytes
数据, 再使用marshal.loads()
重新转换为bytecode, 并写入pyc文件。
import sys,marshal,traceback
try:
from importlib._bootstrap_external import MAGIC_NUMBER
except ImportError:
from importlib._bootstrap import MAGIC_NUMBER
def dump_to_pyc(pycfilename,data,pycheader=None):
for file in sys.argv[1:]:
try:
with open(file,'rb') as f:
d=f.read()
if d[16]==227:
old_header=d[:16];d=d[16:]
else:
old_header=d[:12];d=d[12:]
c=marshal.loads(d)
modname=c.co_names[0] if len(c.co_names)>=1 else ''
if modname in ('bz2','lzma','zlib'):
mod=__import__(modname)
data=mod.decompress(c.co_consts[2])
marshal.loads(data)
dump_to_pyc(file,data,old_header)
print('Processed:',file)
else:
raise TypeError('不是压缩的pyc文件: '+file)
except Exception:
traceback.print_exc()
前面介绍了Python字节码的压缩, 加壳和脱壳, 主要途径是修改字节码的指令, 以及修改、混淆变量名。
Python 字节码这一特性有广泛的用途, 例如pyc文件加密、结构优化, 防止反编译pyc文件等, 可以用来做PyInstaller
等库打包的exe的源码保护。
zip文件的文件头包含 4 个字节的标识符 “PK\x03\x04”,其中 PK 是固定的标识,\x03\x04 是版本号。紧随其后的是版本特定的文件头结构(central directory 或 local file header),用于描述压缩文件的内容,包括文件名、时间戳、压缩方法等信息。tar文件的文件头是100字节的固定长度结构,包含文件名、文件模式、所有者、组、文件大小、修改时间等元数据信息。其后的数据区域包括多个部分,包括gzip文件头、压缩数据和文件尾等元数据信息。
需要在从阿里云获取图片,进行图像处理,然后将生成图压缩到500kb以下上传到oss,不进行文件本地操作但是图片压缩需要用到 Image.save 函数,需要传入一个本地路径,这里可以使用bytesIO解决,不断修改 Image.save 的参数 quality 改变 生成图的大小直到小于 500kbimport oss2import PILclass OssFile(object):def __i...
对.pyc或者.py文件进行保护
①首先对安装环境 Python 路径下的 python.exe 进行加密。
将 python.exe 拖入到加壳工具Virbox Protector Standalone中。
②在加密选项页面将插件的ds按钮打开。
③点击“立即加壳”,加壳后...
我有一个用Adobe Flex 3和Python 2.5开发的Web应用程序(部署在Google App Engine上).已经在Python中创建了一个RESTful Web服务,其结果目前采用XML格式,Flex正在使用HttpService对象读取该格式.现在主要目标是压缩XML,以便HttpService send()方法和结果事件之间的时间更短.我查找了Python文档并设法使用zlib...
zlib.decompress(data,15 32)应该自动检测是否有gzip数据或zlib数据.zlib.decompress(data,15 16)应该工作,如果gzip和barf如果zlib.这里是Python 2.7.1,创建一个gz文件,读回来,并解压缩它:>>> import gzip, zlib>>> f = gzip.open('foo.gz'...
为了把python发行到没有安装python的Windows环境使用,需要打包成exe可执行文件。现在常见的python打包工具有cx_Freeze、PyInstaller和py2exe,想想我当初接触python的时候,似乎只有py2exe,而且有不少问题时光荏苒,一切过的真快。本文介绍PyInstaller打包的使用。一.准备工作安装PyWin32下载PyInstaller到http://ww...
装壳”是一种保护应用程序,它是在代码中插入一段代码,用于控制、保护、隐藏、加密或修改应用程序的流程。一个经过包装的程序在加壳后不能被直接浏览或修改。攻击者将无法轻易地进行逆向工程或破解出程序的逻辑。Python程序加壳技术是一种可靠安全的保护代码方式,代码混淆和资源文件加壳已经成为了Python代码保护的常用方法。在选择加壳工具时,需要根据程序需求选择合适的加壳工具,同时要注意保持程序的正常运行、安全性和可靠性的平衡。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是。
最近在使用基于python的单片机pyboard,所以会考虑到单片机内存的问题,希望使用一种可以节省内存空间的数据存储格式,所以进行了相关的研究。
文章目录python内置函数`__sizeof__()`python可用的内置编码格式对比结果结论
python内置函数__sizeof__()
通过__sizeof__()可以对变量的内存进行检查,将不同的编码格式的内存情况打印出,对比得出较好的编码格式。
该方法返回给定对象所占用的内部空间大小(以字节为单位)。
python可用的内置编码格式
直接转换为.
Here is the situation:I get gzipped xml documents from Amazon S3import botofrom boto.s3.connection import S3Connectionfrom boto.s3.key import Keyconn = S3Connection('access Id', 'secret access key')b ...
什么是shellcode
我在这里简单讲一下什么是Shellcode。Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。另外,Shellcode一般是作为数据发送给受攻击服务的。
今天 让我来教大家如何编写py shellcode并且免杀,注入,以及转换成windows可执行文件
利用生成cpu可执行的代码
msfvenom -p windows/x64/exec