• 2024-10-21Python pickle
    Pythonpicklepickle在python中实现对象结构的序列化和反序列化python序列化(Pickling)是一个将python对象层次结构转换为可以本地储存或者网络传输的字节流的过程python反序列化(unpickling)是将字节流还原为对象层次结构数据序列化:就是把不能直接储存的数据储存到
  • 2024-10-10处理器中的几种hazard
    什么是hazard?Instructionsinteractwitheachotherinpipeline;StructuralHazard原因:Aninstructioninthepipelinemayneedaresourcebeingusedbyanotherinstructioninthepipeline;Structuralhazardoccurswhentwoinstructionsneedsamehardwar
  • 2024-05-03hgame2023 vm
    vm逆向hgame2023vm简单翻阅一下发现,sub_140001000里面是vm_init,sub_1400010B0是主要的vm部分查看vm_init部分,发现只知道cpu结构的大小以及初始值和24-32字节的结构,前24字节的结构未知,暂时还无法构建cpu的结构,需要更多的信息。分析下面两图的函数可以得知,opcode总共有8个,byt
  • 2024-02-26zookeeper源码(09)follower处理客户端请求
    在zookeeper中,follower也可以接收客户端连接,处理客户端请求,本文将分析follower处理客户端请求的流程:读请求处理写请求转发与响应follower接收转发客户端请求网络层接收客户端数据包leader、follower都会启动ServerCnxnFactory组件,用来接收客户端连接、读取客户端数据包、将
  • 2024-01-23Pickle反序列化学习
    什么是Pickle?很简单,就是一个python的序列化模块,方便对象的传输与存储。但是pickle的灵活度很高,可以通过对opcode的编写来实现代码执行的效果,由此引发一系列的安全问题Pickle使用举个简单的例子importpickleclassPerson():def__init__(self):self.age=18
  • 2023-12-14php底层代码执行流程
    PHP在底层(C语言层面)的代码执行流程可以大致分为以下几个步骤:解析器初始化:当PHP服务启动时,会调用解析器(ZendEngine)的初始化函数进行初始化,包括各种全局变量的初始化,内存池的初始化。文件读取和解析:解析器会读取并解析PHP文件,将其转换为语法树,并将其中的函数和变量信息保
  • 2023-12-13WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器
    1、引言最近正在研究WebSocket相关的知识,想着如何能自己实现WebSocket协议。到网上搜罗了一番资料后用Node.js实现了一个WebSocket协议服务器,倒也没有想象中那么复杂,除去注释语句和console语句后,大约200行代码左右。本文分享了自已开发一个WebSocket服务端实现
  • 2023-10-0610.5 认识XEDParse汇编引擎
    XEDParse是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86、x64平台下的汇编编码,XEDParse的特点是高效、准确、易于使用,它可以良好地处理各种类型的指令,从而更容易地确定一段程序的指令集。XEDParse库可以集成到许多不
  • 2023-09-20tgt源码阅读
    读懂一个开源项目源码之前,需要先了解该项目的背景知识。背景知识熟悉了,代码只是具体实现手段而已。源码地址:https://github.com/fujita/tgt对于tgt来说,背景知识是块设备、scsi、iscsi协议。众所周知,一条协议一般指的是一个包头,然后把要收发的数据放在包头后面。scsi协议和iscsi
  • 2023-09-062023 羊城杯 vm_wo
    2023羊城杯vm_wo详解 这是一道Vm的题,第一次做这种题总结下,VM框架大概就是VM框架中会模拟正常的CPU去读指令然后执行指令。然后会有1个全局变量然后会有一个dispatcher的程序模拟CPU读取指令,然后去执行函数,就可以做到和真实的程序一样 writeUP这道题的整体逻辑还