数据类创建与使用 前言很多时候我们经常需要处理一条包含多个字段的数据,例如用户(name, age, sex),在将它们写入文件或数据库之前,你会怎么处理它们的存储?最开始的时候,我采用元组和列表,不同索引位置的值代表不同的字段,并将它们存储在一个总的列表中,像下面这样: datas = [ ('Bob', 12, 'man'), ('Alice', 15, 'women'), ... ] 2021-03-31 python python namedtuple pydantic
【静态分析】数据流分析-Part III 前言上一篇【静态分析】数据流分析-Part II - 求索 对数据流分析中的Live Variables Analysis进行了详解,用于查找used/unused variables,本文继续第三部分内容(也是数据流分析的最后一部分内容)——Available Expression Analysis。主要内容包括: Available Expression Analysis的定义和理解 Ava 2021-03-31 security static_analysis available_expression_analysis
【静态分析】数据流分析-Part II 前言上一篇【静态分析】数据流分析-Part I - 求索对数据流分析中的Reaching Definition Analysis中进行了详解,用于发现undefined variables,本文继续第二部分内容——Live Variables Analysis。主要内容包括: Live Variables Analysis的定义和理解 Live Variables Analysis算法设计与详解 2021-03-27 security static_analysis live_variable_analysis
【静态分析】数据流分析-Part I 前言这阵子在学习静态分析,找了许多学习材料,但讲的都晦涩难懂,无意间在神奇的bilibili 刷到了一位南京大学Yue Li老师的静态分析课程1,不得不说,老师讲的太棒了,让我对静态分析的知识有了基本的了解,算是做了一个简单的入门。 本文,是静态分析中数据流分析的Part I ,主要讲解Reaching Definition Analysis ,主要内容包括: 前置知识 Reaching De 2021-03-25 security static_analysis reaching_definition_analysis
【redis】python操作与频道发布与订阅 前言本文讲述如何用python连接使用redis和利用redis进行频道的订阅和消息发布,默认读者对于redis的基本概念和如何创建redis服务已经知晓。 python操作redispython操作redis主要包含几步: 连接redis数据库 数据的增删查改 连接redis数据库 直接连接 redis提供了Redis和StrictRedis两种直连redis的方式,前者是为了兼容2.x版本 2021-03-13 python python redis
python如何优雅地在命令行传入参数?sys,argparse,click使用 前言一些大型的python项目经常性会提供命令行的接口使得同样一个文件能够根据参数的不同执行不同的操作。常见的如python main.py --name='zhangsan' --age=20,这让用户能够需求选择不同的服务启动并选择不同的参数配置,实现这一操作的方法有很多,比较常见的是三种:sys,argparse,click。 syssys是python自带的模块,可以通过s 2021-03-13 python python sys argparse click
【python】字符串日期格式数据处理 前言特征工程中经常性遇到字符串形式的日期数据,通常我们需要将其转换成计算机能够理解的datetime对象,好处在于可以实现日期早晚的比较(例如要筛选出2019-01-02到2019-03-04内的数据),日期的加减法等系列操作。python实现该操作的模块是datetime,同时数据分析处理工具pandas也提供了相应的时间格式处理方法to_datetime(),本文从实用性角度出发,简要讲解这两 2021-03-13 python python datetime
Linux 常用命令大全 前言本文记录了Linux操作系统中常用的命令以及对应参数,方便使用的时候进行查询,主要参考541137 Linux命令行与shell脚本编程大全.第3版一书,后面还有许多高级的内容,但日常的linux使用下面涉及的已经足够。本文的正确打开方式是作为字典式的命令查询,不建议将这些命令一一背住,只需了解基础的几个就好。 部分复杂内容添加了配图方便理解,也可以前往我的个人博客阅读原文 常用命令查看 2021-03-13 linux linux command
【软件安全】缓冲区溢出攻击(stack overflow)实践 前言最近在研究stack overflow的复现,发现网上许多教程都偏老了,且许多关键步骤没有说明清楚,导致小白在一步步操作的时候经常出现无法正确获取shellcode的情况,本人也是历经诸多大坑,总算是成功复现了这一过程。下面是溢出成功后的效果图。 个中会涉及到参数在函数栈中的存储,栈的返回地址,帧指针,函数如何执行的过程,这部分不再赘述,自行查阅相关资料。 攻击准备工欲善其事,必先利其器, 2021-03-13 security security overflow
【C++】10分钟搞懂内联函数 前言内联函数是C++特有的一种函数,通过添加关键字inline到函数定义前,实现将普通函数转换为内联函数。本文旨在从以下几个方面通俗地讲解内联函数,帮助小白轻松理解和使用内联函数。 内联函数是啥 内联函数有啥用 啥情况下使用内联函数 内联函数是啥直接先上定义: 定义:以inline关键字修饰定义的一类函数,让编译器用函数代码替换函数调用 听着有点玄乎,看下面一个实例: 实例: 2021-03-13 c++ c++