为了与驱动程序达成交互,我们需要来回地切换于用户态与内核态之间,在windows下我们通过IOCTL(输入/输出控制系统)传送数据信息来实现这一过程。IOCTL充当着用户态下的应用程序与内核态下设备驱动之间沟通的桥梁

几乎每一个windows驱动都在操作系统中注册有一个特定的设备名称以及一个符号链接、用户态下的应用程序为了与某个驱动程序达成通信,首先需要通过符号链接来取得与之相应的句柄

NTFS文件系统有一个遗留特性-ADS(数据交换流)。ADS最初作为与苹果系统的HFS(分层式文件系统)的一种通信手段而被引入。ADS允许我们在一个磁盘主体文件所附带的流中存储额外的数据,比如一个DLL文件。这里所谓的流本质上无非是依附于某个磁盘文件的一条隐藏文件通道

Fuzzer有两种基本形式:生成型fuzzer和变异型fuzzer。生成型fuzzer充当着一切测试用例的始作俑者,这意味着一切发送目标程序的测试数据皆出自其手。变异型fuzzer更倾向于拦截现有通信渠道中的数据并加以部分篡改。

栈溢出:
引发栈上数据遭受污染,为攻击者接管后续的代码执行流创造了绝佳机会。恶意攻击者可能会通过重写当前函数栈帧中的返回地址,或者改写存于栈上的函数指针,或者篡改栈上变量的取值,或者修改当前的异常处理例程执行链等各种手段来设法掌控后续的代码的执行方式。通常在栈溢出发生不久,系统就会抛出一个非法内存访问异常。

堆溢出:
发生在称之为“堆”的进程区段之中。这个区段是进程在运行时分配动态内存的所在之地。堆由一系列相互紧邻的“块”数据组成,这些“块”数据结构之中,除了动态内存数据本身之外还存储着元数据,元数据扮演着连结这些“块”状结构的纽带。发生“堆”溢出时,紧邻溢出现场的“块”中数据将被重写,,这自然会殃及元数据。恶意攻击者通过精心构造元数据的重写内容,便可实现对任意内存位置进行写操作、这可能包括变量值、某一函数指针、安全令牌,或者其他溢出发生时存于堆中的重要数据。堆溢出由于受污染的块数据不一定立刻被用到,所以堆溢出的发生可能会有延迟效应。

windows提供了一组用于控制调试与诊断功能的系统标志变量,称之为全局标志(Gflag),用户一旦激活这组标志,便能以细粒度的方式跟踪,记录与调试软件的行为。

格式化串攻击:
值得特别留意的格式说明符%s和%n.%s将指使格式化串例程开始大量地扫去内存数据,知道第一个字符串收尾符NULL值出现为止。恶意攻击者注入这一说明符,以窃取存于目标程序特定位置的私密数据,或者用于致使目标程序读取超出访问权限之外的内存数据而导致崩溃。%n允许你向内存写入数据,而非用于一般的格式化输出的目的。这为恶意攻击者覆写函数的返回地址或者重写某个现有函数例程的指针提供了潜在渠道。

段(segment):一个二进制文件通常由数个段组成,每个段属于某一特定类型(CODE,DATA,BSS,STACK,CONST,XTRN)

代码交叉引用和数据交叉引用提供了一种绝佳的途径来帮助你探明二进制文件重化工途经某处的数据流向和代码执行流向

可执行文件加壳器又称压缩器,逐渐演变为主要的代码混淆手段。一款典型的加壳器会试图压缩目标二进制文件中原有的代码段与数据段,并将程序入口点替换为脱壳例程的所在位置。

任何一个PyCommand的实现过程应当满足两个基本的条件,首先必须定义一个main函数,这个函数继续接受一个python列表对象作为参数,我们向pycommand所输送的参数将经由这一列表对象传入。其次,这个main函数必须在执行完相关任务之后返回一个字符串值,这个字符串将在脚本执行完毕之后被显示在调试器界面的状态栏上。

假设发现了一个由字符串复制例程strcpy()所引发的栈溢出漏洞,我们最终的exploit将无法直接包含一个NULL字符(0x00),因为strcpy()函数将此字符视为字符串的收尾符,函数将就此停止复制数据。

4字节值0xcc相当于一个软断点,这将使得调试器停于此处(0xcc是指令int3的操作码)

DEP是微软的windows系统为了防止位于某些内存区域中的数据被视作代码执行而实现的一种安全机制

《python灰帽子》笔记四相关推荐

  1. Python灰帽子笔记一

    动态链接库本身是一些经过编译的二进制文件,之在运行时才会被连接进主进程.在windows下这些二进制文件被称为动态链接库(dll),而在linux下这些库文件被称为共享对象(so,shared obj ...

  2. Python灰帽子笔记二

    通用寄存器: 寄存器可以被认为是位于CPU上的小型存储器.CPU获取数据的最快方式是直接访问寄存器.在X86指令集中,一个CPU具有8个通用寄存器:EAX,EDX,ECX,ESI,EDI,EBP,ES ...

  3. Python灰帽子--黑客与逆向工程师的Python编程之道 笔记,过程问题解决

    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑电脑端的可以看看目录 跟着学习进度不断更新中....(因为懒,没更新了,也不打算继续更新文章了......) power by <p ...

  4. 读书笔记 《Python灰帽子-黑客与逆向工程师的Python编程之道》

    Python灰帽子-黑客与逆向工程师的Python编程之道 1.调试器原理和设计 调试器 白盒调试器 黑盒调试器 2.寄存器 2.1通用寄存器 EAX(ADD) EDX(DEPOSIT) ECX(Co ...

  5. 电子书推荐--《Python灰帽子》,python黑客编程

    点此在线阅读 <Python灰帽子>是由知名安全机构Immunity Inc的资深黑帽Justin Seitz主笔撰写的一本关于编程语言Python如何被广泛应用于黑客与逆向工程领域的书籍 ...

  6. Python灰帽子环境配置

    关于Python灰帽子里面的python代码运行环境配置,需要安装python2.7.x,自行到http://www.python.org下载. 我配置好环境后,把用到的库和pydbg需要替换的文件, ...

  7. Python灰帽子pdf

    下载地址:网盘下载 内容简介  · · · · · · <Python灰帽子>是由知名安全机构Immunity Inc的资深黑帽Justin Seitz主笔撰写的一本关于编程语言Pytho ...

  8. Python灰帽子——黑客与逆向工程师的Python编程之道

    Python灰帽子--黑客与逆向工程师的Python编程之道 下载地址 https://pan.baidu.com/s/12hlf8ZAXBbGwcael_Ecmrg 扫码下面二维码关注公众号回复 1 ...

  9. python灰帽子学习感想

    Gray Hat Python Python Programming for hackers and reverse engineers Python灰帽子:黑客与逆向project师的Python编 ...

  10. Python灰帽子_黑客与逆向工程师的Python编程之道

    收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道

最新文章

  1. linux 提权方法总结
  2. 前端如何高效的与后端协作开发
  3. 【Vue】 element ui 引入第三方图标
  4. oracle dba 手动创建数据实例
  5. Pycharm 专业版 导入系统pip安装的包
  6. div自动滚动_从手机滚动丢帧问题,学习浏览器合成与渲染层优化
  7. 《你好李焕英》票房超《神奇女侠》,贾玲成全球票房最高女导演
  8. python searchsorted_Python 二分查找与 bisect 模块
  9. Python Numpy模块函数np.c_和np.r_学习使用
  10. netbeans使用教程
  11. 设置内外网同时使用,重新配置路由
  12. 2020年中国海洋大学夏令营记录
  13. 从外观来看微型计算机由哪几个部分组成,福师11春学期《计算机应用基础》在线作业一...
  14. Maven第6篇:生命周期 插件
  15. 解决IIS 6.0的200KB与下载4MB的限制
  16. 360 os3.0 android7.1,【360 N6】360OS安卓7.1系统V3.0.070付费纯净版ROOT刷机包
  17. 洛谷 P1014 [NOIP1999 普及组] Cantor 表 | OpenJudge NOI 2.1 8760:Cantor表
  18. 省考面试90+经验贴倾情奉献
  19. ofd怎么转换成图片 java_html如何转换为ofd?
  20. 【千锋】网络安全学习笔记(三)

热门文章

  1. Framework学习(五)应用程序启动过程
  2. 抗量子加密:为什么迫切需要它
  3. 从教20年随笔——4409的归来
  4. c语言位运算负数的实例_巧妙运用C语言位运算
  5. ABAP---BDC批导入
  6. 驰骋工作流自定义表单的需求--表单设计器
  7. 设计实现抽象数据类型“三元组”,要求动态分配内存
  8. html按钮相对位置,html相对定位绝对定位
  9. 一分钟搞明白什么是维度,什么是事实,什么是度量,什么是粒度
  10. hyperterminal停止工作_hyperterminal