1. 什么是序列化?在编写应用程序的时候往往需要将某些数据存储在内存中,然后将其写入某个文件或将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为“序列化”(Serialization),而它的逆过程则可被称为“反序列化” (Deserialization)。简单来说,序列化就是将对象实例转换为可存储或传输的数据流的过程。与序列化相对的是反序列
转载
2024-01-15 02:58:34
149阅读
一、基础1、序列化与反序列化序列化:指将结构化的数据按一定的编码规范转成指定格式的过程;反序列化:指将转成指定格式的数据解析成原始的结构化数据的过程;举个例子:Person是一个表示人的对象类型,person是一个Person类型的对象,将person存到一个对应的XML文档中的过程就是一种序列化,而解析XML生成对应Person类型对象person的过程,就是一个反序列化的过程。在这里结构化数据
转载
2023-09-27 13:12:15
291阅读
# 学习使用 Python 进行 Protobuf 序列化与反序列化
在现代软件开发中,数据的高效传输和存储是至关重要的。Protobuf(Protocol Buffers)是 Google 提供的一种高效的序列化结构,能够帮助我们将数据以二进制的形式进行序列化,节省空间,并提升速度。本文将指导你如何在 Python 中实现 Protobuf 的序列化与反序列化,包括必要的步骤、代码示例和注释。
原创
2024-09-18 06:19:17
178阅读
简介:图片二进制序列化主要坑在:二进制数据读入char* 后再转为string ,有些‘\0’的字节会把数据直接截断,导致二进制数据不完整了。 下面记录一种可以正确序列化反序列化图片二进制数据的方法,并用qt将图片显示出来。1. 创建一个图片的数据格式 image.proto// [START declaration]
syntax = "proto2";
// [END declaration]
转载
2023-12-20 19:40:24
168阅读
反序列化漏洞PHP反序列化漏洞也叫PHP对象注入,是一个非常常见的漏洞,这种类型的漏洞虽然有些难以利用,但一旦利用成功就会造成非常危险的后果。漏洞的形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。反序列化漏洞并不是PHP特有,也存在于Java、Python等语言之中,但其原理基本相通。反序列化函数:
转载
2023-12-18 22:40:14
56阅读
0x00 前记前些时间看了看python pickle的源码,研究了一下一些利用方式,这里总结分享一下反序列化漏洞的一些利用方式,如果本文有错误的地方请各位师傅不吝赐教。漏洞原理就不再赘述了,可以看看关于python sec的简单总结这篇文章。0x01 基础利用通常我们利用__reduce__函数进行构造,一个样例如下:#!/usr/bin/env python
# encoding: utf-8
转载
2023-10-16 18:35:37
8阅读
一、Protobuf 序列化、二、Protobuf 反序列化、三、完整代码、四、参考资料、
原创
2022-03-08 11:24:44
1033阅读
1.概要最近考虑采用protobuf来实现kafka消息传递,所以先测试一下golang和python之前序列化互通问题。由于go和python对于二进制的表示在ide层面是无法统一的,直接把python的字符串拷出来放到golang肯定是不行的,需要通过hex进行16进制表示法2.bytes和hex转化语法Bytes -> Hex string# Python
my_bytes = byt
转载
2023-06-25 23:36:02
348阅读
一、 protobuf是什么protobuf,Protocol Buffer (简称Protobuf) 是Google开源的性能优异、跨语言、跨平台的序列化库。序列化(serialization、marshalling)的过程是指将数据结构或者对象的状态转换成可以存储(比如文件、内存)或者传输的格式(比如网络)。反向操作就是反序列化(deserialization、unmarshalling)的过
转载
2024-04-02 14:35:22
279阅读
# Python Protobuf反序列化
Protobuf(Protocol Buffers)是一种轻量级的数据序列化协议,由Google开发,主要用于数据存储和通信协议等场景。在Python中,我们可以使用protobuf库来解析和序列化protobuf数据。本文将介绍如何使用Python进行protobuf反序列化,并提供相关的代码示例。
## Protobuf简介
Protobuf是
原创
2023-10-17 07:47:25
598阅读
# Protobuf(Protocol Buffers)与Python反序列化
## 什么是Protobuf?
Protobuf,全称Protocol Buffers,是一种由谷歌(Google)开发的高效序列化结构数据的方法。它主要用于在不同的应用程序间传输和存储数据,特别适用于需要高效和紧凑数据格式的场景,比如网络通信、数据存储及微服务架构等。
Protobuf的优势在于其轻量级与高性能
# Python Protobuf 反序列化详细解析
在现代软件开发中,数据交换和通信的效率是非常重要的。特别是在微服务架构中,各个服务之间需要频繁地进行数据传递。在这方面,Protocol Buffers(简称 Protobuf)因为其高效的序列化和反序列化机制而被广泛应用。本文将深入探讨如何在 Python 中使用 Protobuf 进行反序列化,并提供相应的代码示例。
## 什么是 Pr
本文通过两个示例介绍如何使用avro序列化,反序列数据(Avro的简介请参阅:)。我们知道使用Avro序列化、反序列化数据时需要使用数据的schema(schema是对数据结构的描述)。使用时,可以生成schema描述的java类,再基于生成的java类做数据处理,也可以不生成,使用Avro提供的通用数据结构GenericRecord。生成java类的方法官网提供了两种:1)使用avro提供的工具
protobuf中的编码规则(1)序列化和反序列化:在开始本部分的内容之前,首先有必要介绍两个基本概念,一个是序列化,一个是反序列化。这两个概念的定义在网上搜一下都很多的,但大多都讲得比较晦涩,不太好理解,在这里我会用比较通俗的文字来解释,尽可能让读都朋友们一读就明白是怎么回事:序列化:是指将结构化的数据按一定的编码规范转成指定格式的过程;反序列化:是指将转成指定格式的数据解析成原始的结构化数据的
转载
2023-09-30 21:59:55
360阅读
# Protobuf 反序列化在 Python 中的应用
在现代软件工程中,数据的高效交换和存储是非常重要的。Google 的 Protocol Buffers(protobuf)是一种语言中立、平台中立、扩展性好的序列化结构数据的方法,广泛应用于数据存储和通信协议。本文将详细介绍如何在 Python 中使用 protobuf 进行反序列化。
## 什么是反序列化?
反序列化是将二进制数据转
在这篇博文中,我将介绍如何在Python中使用Protobuf进行序列化和反序列化。Protobuf(Protocol Buffers)是Google开发的一种语言中立、平台中立、可扩展的序列化结构数据的方法,广泛应用于数据存储和通信协议。在实际开发中,数据的高效存储和传输至关重要,因此掌握Protobuf的使用将大大提高我们的开发效率。
## 环境准备
在开始之前,我们需要确保开发环境的硬件
Protobuf是Google开源的一个项目,博主将会在几篇博文中对其进行讲解。 序列化和反序列化有些时候,我们希望将对象保存到文件中,或者传输给其他的应用程序。比如:web网页后端和前端的数据交互,应用程序产生的中间数据等等。这种将数据结构或对象以某种格式转化为字节流的过程,称之为序列化(Serialization),目的是把当前的状态保存下来,在需要时复原数据结构或对象(序列化时不包含与对象相
转载
2023-11-20 16:52:58
655阅读
Protobuf的定义protobuf是一种用于序列化结构数据的工具,实现数据的存储与交换,与平台和语言无关。序列化: 将结构数据或对象转换成能够用于存储和传输的格式。反序列化: 在其它计算机环境中,将序列化后的数据还原为结构数据或对象定义的数据结构,然后使用protoc编译生成源代码,在各种数据流中使用各种语言进行编写和读取结构数据。甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。P
转载
2023-06-28 16:40:22
4425阅读
上篇文章讲到了Spring-tx组件出现的问题,通过构造RMI和JNDI来供服务端下载恶意class并通过反序列化进行RCE,这次研究一下另外一种漏洞,利用Java的反射机制来执行任意命令,并且通过反序列化来进行RCE。本次分析的漏洞是2015年出现的Apache-commons-collections组件出现的反序列化问题,这个包为Java提供了很多基础常用且强大的数据结构,方便开发。0x01
转载
2024-05-10 08:50:56
12阅读
# Java Protobuf 序列化与反序列化
在现代网络应用和微服务架构中,数据的传输和存储变得尤为重要。序列化与反序列化是处理数据传输时的两个核心概念。本文将介绍 Google 的 Protobuf(Protocol Buffers),一种高效的序列化工具,帮助我们简化 Java 中数据的编码与解码过程。
## 什么是 Protobuf?
Protocol Buffers 是一种语言无