自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

如梦如幻的博客

好吃懒做的人能干什么。。。

  • 博客(31)
  • 收藏
  • 关注

原创 程序的链接与执行

本文以实验的形式对Linux下的可执行程序链接与执行过程进行了基本的探讨,而对于理论没有过度深究,仅作为初学者对于程序链接与执行入门有一个整体的了解。

2021-08-15 01:31:38 819

转载 学习笔记:固件和驱动的区别?

驱动和固件是经常会看到的字眼,尤其是在IoT设备的使用、安装过程中有时很容易搞糊涂,本文根据自己的理解对https://www.zhihu.com/question/22175660 驱动与固件的区别是什么? 进行了部分整理而成,如有误导,请见谅。

2020-09-19 15:50:12 3724 1

翻译 GNU IFUNC,间接函数介绍

文章目录间接函数简介(IFUNC)间接函数的设计目标间接函数的工作原理如何定义并使用间接函数?当前的局限性/使用建议优化方向资源注:本文主体上是翻译了https://sourceware.org/glibc/wiki/GNU_IFUNC,个别地方有基于个人理解的解释2005年,GNU IFUNC开始被支持,并通过IFUNC属性添加到了GCC中。但很长一段时间里这个特性都没有合适的文档,而且在实...

2020-04-03 01:02:20 3663

原创 [计算机基础]浮点数在计算机中的表示

在计算机中,一切数据都是以二进制的形式进行表示,小数也不例外。但是像1011.0011这样带小数点的表现形式,完全是纸面上的二进制数表现形式,在计算机内部是无法直接使用的,且计算机若采用定点数的形式来表示小数的话,则限制了其表示范围以及空间分配的不合理;那么如何更加有效地描述小数呢?

2019-11-12 12:19:34 8818 2

原创 Linux-常用命令及工具

Linux常用命令及工具,包括基础的命令工具、系统相关工具以及网络设备相关工具等。

2019-07-27 18:35:51 436

原创 【7】实战:爬取网易云音乐歌曲对应id并剔除无版权歌曲

通过网易云搜索页爬取对应歌曲的id除了用了基本的爬取分析以及调试之外,还涉及到一些密码学的问题

2019-06-02 13:01:40 15257 13

原创 【6】 缓冲区溢出 一个字节溢出 指针修改内存

在foo函数之中多了一个指针变量p与一个常量a,并且在执行完nstrcpy()函数之后,执行了*p=a的语句,而p与a的位置与ebp的相对关系不变,所以这就给了我们修改任意地址任意值的可能性(有效地址),而在之后通过跟踪_exit()函数,知道它利用jmp指令去跳到一个指针中存放的地址,故而通过修改其jmp的指针中的地址,最终直接jmp到了payload执行shellcode

2019-04-29 23:03:30 1489 2

原创 【5】 缓冲区溢出 格式化字符串 snprintf

主要是利用格式化字符串漏洞来达到溢出目的,并且借用snprintf的特性,即在遇到格式化参数之前会先将正常的字符复制到指定区域中,最终通过字节大小的计算,利用%n向指定地址写入特定的返回地址

2019-04-29 22:47:59 5382

原创 【4】缓冲区溢出 两次tfree产生溢出可能(类似双向链表删除)

出现漏洞的原因,是先为p与q均申请了一段空间,这样它们都得到了对应的指针值,而后释放后,又为p申请了1024的空间,并且可以覆盖到q原本的地址,这样我们利用覆盖的原本的q的空间,构造q的chunk,在之后进行tfree的时候,使得返回地址的内容修改为payload的基址,从而达到溢出目的简而言之就是构造了个位于返回地址的指针指向payload

2019-04-29 22:31:27 2196

原创 【3】 缓冲区溢出 符号位溢出 运算溢出

本文主要介绍通过运算溢出的符号位溢出,以绕过限制长度,最终达到溢出目的。

2019-04-29 22:20:22 1931 1

原创 【2】 缓冲区溢出 一个字节溢出 覆盖EBP

由于nstrcpy()函数,尽管它表面上对copy的长度进行了限制,但是它不小心在for循环中使形参可以等于输入长度len,这就造成存在溢出一个字节的可能性,而该字节恰好可以覆盖到buf所在函数的(foo函数)所保存的旧的ebp的最低位,从而使得该ebp出现在buf之间,最终在指定位置构造返回地址即成功达到溢出目的

2019-04-29 22:19:56 2570

原创 【1】缓冲区溢出 strcpy

本实验是一个最基本的缓冲区溢出样本,它让我深入浅出的体验了通过缓冲区溢出执行shellcode的感觉,原理基本就是strcpy()函数没有检查copy的长度而导致的溢出

2019-04-29 21:02:16 4340

原创 大小端模式以及两种判断方法

- 大端:高尾端:数据的尾部(低位字节)放在内存的高位地址。- 小端:低尾端:数据的尾部(低位字节)放在内存的地位地址。

2019-04-12 13:55:01 3369 1

原创 SSL简介及其压力测试THC-SSL-DOS工具介绍

安全套接层(Secure Sockets Layer,SSL)协议是一个安全传输、保证数据完整的安全协议,之后的传输层安全(Transport Layer Security,TLS)是SSL的非专有版本。SSL协议结合了对称密码技术和公钥密码技术,提供秘密性、完整性、认证性服务。

2019-04-11 10:55:47 2053

原创 【6】实战:利用re模块爬取淘宝商品信息

正则表达式是一种匹配字符串的工具。它提供了一系列的规则即用法,也就是给字符串定义一系列规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

2019-03-29 22:06:29 3141 1

原创 【Linux】利用消息队列实现一个简单的进程间双向通信(两种方式)

在实现利用消息队列的进程间通信之前,先了解一下基本的概念和所需要用到的函数。消息队列消息队列是Linux内核地址空间中的内部链表,各个进程可以通过它来进行消息传递。进程发送的消息会顺序写入消息队列之中,且每个消息队列都有IPC标识符唯一地进行标识。简单理解就是,每个消息队列都有一个ID号,而这个号用来区分不同的消息队列,从而保证不同消息队列之间不冲突。而每个消息队列内部也维护了一个独立...

2019-03-21 10:53:11 17544 15

原创 RC4算法对文件进行加密解密

RC4算法对文件进行加密解密在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。RC4序列密码是美国RSA数据安全公司设计的一种序列密码。其实最开始这家公司并没有公布RC4算法的设计细节,在人们已经通过逆向分析得到了算法之...

2018-12-02 12:25:46 7867 9

原创 推荐几个学习编程的网站

互联网最大的魅力就是让我们每个人可以更方便的交流。 所以在这里给大家推荐几个我了解的比较好的编程学习网站[x] CS50 课程系列这是哈佛大学的计算机公开课,在youtube直接搜索CS50可以看到原版,网易云课堂上有带翻译的中文版。[x] C++个人认为比较好的教程:learncpp[x] python入门教程:廖雪峰的官方网站[x] 在线编程做实验:可汗学院、实验楼...

2018-09-06 22:56:08 10706

转载 [转] C++ STL详解

转载自:https://www.cnblogs.com/CnZyy/p/3317999.htmlC++合理运用STL标准库是非常方便的,对数据结构和一些算法的学习也大有裨益。事实上转载处也是转载自他处,但是感觉总结的很好,当然也同时感谢原创者。互联网就是这么神奇的分享平台……目录 一、STL简介 二、算法三、容器四、迭代器C++STL框架中常用函数迭代器...

2018-08-30 20:12:32 19080

原创 爬取中国移动用户问答

最近一个好朋友在搞爬虫,问了很多问题,所以干脆直接写了一个范例。这个程序整体要两次解析网页:第一层是分析网页中的json数据来获取qtid,第二层是用qtid来解析获得问答所在的网页因为在问答网页里的数据存储是引用的数据库中的数据,所以不得已选择了低效的selenium模式没时间分析了orz  有空再分析一下吧# -*- coding:utf-8 -*-from selenium import ...

2018-06-06 15:40:41 1267 2

原创 Pthread互斥锁以及信号量创建 eg:简单实现生产者消费者问题

1.   Pthread互斥锁以及Pthread信号量的创建等相关函数在pthread.h中有a)     pthread_mutex_t数据类型用来声明互斥锁;b)     函数pthread_mutex_init(&mutex,NULL)用来创建互斥锁,其中第一个参数为声明的互斥锁指针,第二个参数即设置初始值,NULL表示设置为默认值;c)     函数pthread_mutex_lo...

2018-05-06 22:58:39 978 1

原创 AFL简要介绍以及QEMU模式的报错处理

AFL简要介绍:AFL由lcamtuf所开发。通过对源码进行重新编译时进行插桩的方式自动产生测试用例来探索二进制程序内部新的执行路径。简而言之,它采用了一个极其简单但是绝对可靠的,插桩代码导向的遗传算法。它使用一种自定义的边缘覆盖率来识别程序控制流的局部变化。整个算法的逻辑结构如下:也就是说,被选择出来的测试用例会进行周期性的删减,消除那些已经被更新的、更高覆盖率的废弃的测试用例,就这样反复测试。...

2018-04-19 00:11:35 5680

原创 Linux中的fork()分析

fork()是UNIX操作系统中的一个系统调用,用于创建新的进程。而fork()执行后,通过复制原来进程的地址空间形成新的进程。而父进程和子进程都继续执行系统调用fork()之后的指令。值得一提的是,fork()有两个返回值,如果是父进程,那么会返回为子进程的进程标识符(非零),而对于子进程,则会返回为0;下面的几行代码是郑扣根老师翻译的操作系统概念中介绍的fork()部分代码:#include&...

2018-03-08 20:33:40 1996

原创 UnicodeEncodeError: 'latin-1' codec can't encode character

刚刚导入MySQLdb库用python连接数据库时出现了'latin-1' codec can't encode character '\u9648' in position 0: ordinal not in range(256)的错误。查了很多问答和文档,发现这是因为MySQLdb通常会尝试将所有东西都编码为latin-1。但是一些我们希望存入数据库的字符和latin-1相冲突,或者超过

2018-02-06 22:15:23 2054

原创 微信小程序背景图片设置问题

我们都知道,用css给网页设置背景图片,可以导入网络图片和本地图片。1. 网络图片:元素定位{background-image: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1517753496248&di=c464b97f6d0b3937307066e...

2018-02-04 19:32:27 32897 1

转载 Python正则表达式指南

原文地址:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html作者:AstralWind转载出处:博客园本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。

2018-02-02 23:02:43 412

原创 【5】实战:爬取动态网页的两种思路爬取新浪趣图(2)

第三篇末尾提到了,在这里我们继续就以爬取新浪趣图上的gif图来演示介绍过的两种爬取动态网页的方法:1.分析网页,找到AJAX传递数据的地址,并分析数据,通常是Json格式储存的数据;(详见【2】分析JSON获取数据)2.运用selenium模拟浏览器环境,最新python对PhantomJS不再支持,故搭档chrome。(详见:【3】selenium+chrome)其中,我记得在第二篇

2018-02-02 14:46:22 2952

原创 【4】实战:爬取动态网页的两种思路爬取新浪趣图(1)

第三篇末尾提到了,在这里我们就以爬取新浪趣图上的gif图来演示介绍过的两种爬取动态网页的方法:1.分析网页,找到AJAX传递数据的地址,并分析数据,通常是Json格式储存的数据;(详见【2】分析JSON获取数据)2.运用selenium模拟浏览器环境,最新python对PhantomJS不再支持,故搭档chrome。(详见:【3】selenium+chrome)其中,我记得在第二篇中,

2018-02-02 14:08:07 3545

原创 【3】基于selenium的元素查询及chrome-headless设置-爬取动态网页(2)

第二篇感觉篇幅过长了,所以在思考要不要把实战项目专门放在一个地方。本文就是介绍第二篇中介绍的方法二:利用selenium操纵浏览器来模拟浏览器行为从而获取数据。如上篇介绍,我们发现网页源代码和检查元素不一致,这是AJAX异步加载所致。这同时也说明浏览器可以识别出这些加载出来的东西,所以如果我们可以直接控制浏览器,自然也可以抓取到这些本看不到的元素。Selenium是一个自动化的测试工具

2018-02-01 23:56:32 3960

原创 【2】Python爬虫:分析AJAX传递的JSON获取数据-初步分析动态网页(1)

这是本人写的第二篇文章。希望能够帮助到一些和我一样的python爬虫初学者。在第一篇文章中,我总结了最近学到的利用requests和bs4第三方库共同作用,基本可以应对python获取静态网页数据的相关问题。但是如果现实中的网页往往比想象中复杂的多,网页也早已不再是纯静态网页。因此,本文对动态网页、异步加载的爬取方法之一进行了实例分析。

2018-01-30 23:09:15 35170 13

原创 【1】python爬虫入门,利用bs4以及requests获取静态网页

注:本文仅适用于爬虫初级入门者,并不涉及太多技术本质感谢您阅读此文。最近放假在家,闲时无聊,开始入门了python爬虫,可以完成一些基本的数据爬取(对于一些反爬取例如JS渲染,接口加密等页面仍然处于学习之中),本文就是简单总结最近已熟练掌握的爬取静态网页的方法。若是从未接触过相关知识的朋友,在开始之前,需至少掌握python入门知识,详见廖雪峰的官方网站,另外若要深入探究爬虫的本质以及希望

2018-01-29 15:04:38 15870 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除