首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过硬件断点对抗hook检测

这里就不能使用常规的方法去规避hook,而是通过CPU的dr0-dr7寄存器去触发异常,通过异常处理函数来修改文本框的值,这里我们首先需要了解的是硬件断点 硬件断点 简单说一下软件断点和内存断点,软件断点就是我们通常在...OD里面通过F2下的断点,它的原理是将我们想要断点的一个硬编码修改为cc,内存断点就是通过VirtualProtect函数来修改PTE的属性来触发异常达到断点的效果,这两种断点都需要修改内存里面的数据。...与软件断点与内存断点不同,硬件断点不依赖被调试程序,而是依赖于CPU中的调试寄存器。调试寄存器有7个,分别为Dr0~Dr7。用户最多能够设置4个硬件断点,这是由于只有Dr0~Dr3用于存储线性地址。...在OD里面也能够看到只能设置4个硬件断点 设置硬件断点 Dr0~Dr3用于设置硬件断点,由于只有4个断点寄存器,所以最多只能设置4个硬件调试断点。...DbgkpSendApiMessage(x, x),第一个参数是消息类型,第二个参数则是选择是否挂起其它线程 调试器进程 1.循环判断 2.取出调试事件 3.列出信息:寄存器、内存 4.用户处理 思路 我们首先明确一下思路,我们知道硬件断点是基于线程的

1K10
您找到你想要的搜索结果了吗?
是的
没有找到

通过硬件断点对抗hook检测

这里就不能使用常规的方法去规避hook,而是通过CPU的dr0-dr7寄存器去触发异常,通过异常处理函数来修改文本框的值,这里我们首先需要了解的是硬件断点 硬件断点 简单说一下软件断点和内存断点,软件断点就是我们通常在...OD里面通过F2下的断点,它的原理是将我们想要断点的一个硬编码修改为cc,内存断点就是通过VirtualProtect函数来修改PTE的属性来触发异常达到断点的效果,这两种断点都需要修改内存里面的数据。...与软件断点与内存断点不同,硬件断点不依赖被调试程序,而是依赖于CPU中的调试寄存器。调试寄存器有7个,分别为Dr0~Dr7。用户最多能够设置4个硬件断点,这是由于只有Dr0~Dr3用于存储线性地址。...在OD里面也能够看到只能设置4个硬件断点 [image-20220402185424231.png] 设置硬件断点 Dr0~Dr3用于设置硬件断点,由于只有4个断点寄存器,所以最多只能设置4个硬件调试断点...DbgkpSendApiMessage(x, x),第一个参数是消息类型,第二个参数则是选择是否挂起其它线程 调试器进程 1.循环判断 2.取出调试事件 3.列出信息:寄存器、内存 4.用户处理 思路 我们首先明确一下思路,我们知道硬件断点是基于线程的

1.3K40

二十四.逆向分析之OD调试INT3断点、反调试、硬件断点与内存断点

这篇文章将讲解逆向分析之OllyDbg动态调试工具,包括INT3断点、反调试、硬件断点和内存断点。...接着F9运行程序,发现此时输出“代码正常”,该断点并没有被检测出来,这就是所谓的反反调试。 三.常用断点硬件断点原理解析 硬件断点和调试寄存器有关,共有8个调试寄存器DR0~DR7。...DR0~DR3: 保存断点地址。由于只有4个硬件断点寄存器,所以同时最多只能设置4个硬件断点 DR4~DR5: 系统保留 DR6: 状态寄存器,显示哪个硬件调试寄存器引发的断点。...选择004013B6位置,右键“断点”->“硬件执行”。 这样就增加了一个硬件断点,当CPU运行到该地址会发送一场信息中断。 如何查看硬件断点呢?...点击“调试”->“硬件断点”可以查看刚打的硬件断点。 接着按下F9运行程序,它会停在硬件断点位置。 四.常用断点之内存断点原理解析 在介绍内存断点之前,首先需要知道什么是内存属性。

2.8K20

dll劫持利用VEH硬件断点过crc校验

直接停掉crc线程 调用退出之前让他返回 即不让他退出 硬件中断的方法,在不修改程序代码的条件下干掉crc 说到硬件中断必须提一下什么是硬件中断,如od里面的f2 那个其实是int3断点也叫cc断点(INT3...指令的机器码为CC),这是一种软件断点很容易被检测到,而硬件断点使用cpu 调试寄存器dr0-dr7 Dr0-dr3用来保存断点地址 Dr7是调试控制寄存器 ?...这里dr0设置成我们想下的断点地址 Dr7的设置参考 ? 但是如果把G0设置成1并不会断下来,我也不知道为什么,有懂的请务必告诉我。 这里我把L0设置成1 ?...这里当我们下好硬件断点会触发异常 这个异常处理就是从当前断点处+6处运行 加几取决于指令的长度 我们结合od来看一下这个dll到底是怎么在不修改代码的情况下破解程序的 ? ?...这也就是我为什么把代码里eip+6的原因 当程序运行到这个地址会触发异常 这个异常会被我们写的异常处理函数处理 由于直接控制eip寄存器 所以不用修改程序代码就可以过掉crc,并且这个程序加了壳,不能直接修改程序,用硬件断点的方法就可以很好的处理这种情况

1.8K30

Linux断点原理与实现

特别是经常使用 GDB 的童鞋,对它提供的强大功能更加如数家珍,其中就不乏 breakpoint(断点)。 刚好最近做到 Ptrace 相关的实验,也顺便撸了这篇小文来分享下 断点 当中的道理。...开启 GDB,并且在 test1 函数断点 sudo gdb a.out -p 22346 // 输出 ......先确定我们要断点的地址 在 GDB 中,我们是习惯对 行号 或者 函数名 直接设置断点,行号相对来说比较复杂,我们先展示 函数名 的。...在 Linux 环境下编译出来的可执行文件都是遵循 ELF 格式,如果没有特殊处理,它会保留比较完整的 符号表。 就拿开头的程序来当例子,可以通过 readelf -s a.out 查看: ?...其实在文中提到的例子也有非常多可以优化的点: 比如:函数地址获取的方式,既然提到 ELF 的符号表,那么应该通过解析这个表,将用户传入的用户名,转换成地址; 再比如:应该维护一份全局的断点表,储存任意多的断点

1.9K10

X86逆向10:学会使用硬件断点

本节课我们将学习硬件断点的使用技巧,硬件断点是由硬件提供给我们的一组寄存器,我们可以对这些硬件寄存器设置相应的值,然后让硬件帮我们断在需要下断点的地址上面,这就是硬件断点硬件断点依赖于寄存器,这些寄存器有个通用的名称...在软件破解中硬件断点常用来寻找赋值或读取的原始位置。...硬件断点并不是OD等调试器的特有功能,调试器只是把用户的需求转换成特定的格式,并写入DRX寄存器组中,等待硬件返回执行结果,由于硬件断点是由CPU直接提供硬件级别的支持,所以硬件断点的效率是所有断点中最高的...在OD等调试器中,除了硬件断点之外,还有个内存断点,内存断点通过修改内存页的属性并捕获异常来间接暂停被调试的程序运行,内存断点的效率大大低于硬件断点,但内存断点的自由性大于硬件断点,通常情况下能用硬件断点则不要使用内存断点...3.回到CM程序,点击【测试硬件写入断点】,OD断下后按下【F7】进入到CALL的内部,也就是按钮的按钮事件。

32410

Linux如何实现断点续传文件功能

什么是断点续传? 在网络状况不好的情况下,对于文件的传输,我们希望能够支持可以每次传部分数据。断点续传其实正如字面意思,就是在下载的断开点继续开始传输,不用再从头开始。...所以理解断点续传的核心后,发现其实和很简单,关键就在于对传输中断点的把握,我就自己的理解画了一个简单的示意图: ?...Linux断点续传文件 在Linux系统上传与下载文件的时候,很容易断开,或者是大文件传输,如何在断开后继续传输不用重新开始,这里我们可以用到Linux的rsync 使用说明 文件断点下载 rsync...-P --rsh=ssh root@192.168.0.11:/root/large.tar.gz /dounine/targe.tar.gz 文件断点上传 rsync -P --rsh=ssh /dounine.../targe.tar.gz root@192.168.0.11:/root/large.tar.gz 文件目录断点下载 rsync -P --rsh=ssh -r root@192.168.0.11:

3.4K40

OD_条件断点消息断点

我也不知道这么理解条件断点对不对,现在先下一个条件断点,步骤: 我在程序creakme打开之后就下了一个回调函数的消息断点 image.png image.png image.png image.png...image.png 查看条件断点方式: image.png 在设置消息断点之前的条件断点是这样的: image.png 在设置消息断点之后,条件断点就自动被下了: image.png...******************************************************************************************* 所以我猜测下消息断点包含了下条件断点...,即:在消息函数中下一个条件断点,至于系统领空是什么意思,要再查查 以下是查到的内容:(有关的知识点:内存分页机制) “领空”这个词用来形容我们在调试某个程序的时候的正在操作或观察的内存区域...: 1、分析程序 2、找到窗口回调 3、右键-分析-假定参数 4、右键-断点-WinProc断点 5、设置要截获的消息

1.8K20

OD常用断点之CC断点

在调试过程中,断点的使用有助于确定关键的破解位置,今天讲解的内容是OD常用断点中的CC断点。 干货 CC断点有很多名称,比如普通断点、F2断点或者int3断点,每个名称都有它的来源。...汇编窗口中展示的是crackme_01.exe的反汇编代码,选中一行汇编代码,按下F2快捷键或者双击,就可以设置CC断点,由于OD中设置断点的快捷键是F2,也被称为F2断点。...断点设置成功后,汇编代码的地址会变红。 ? CC断点是OD中比较常用,而且相对普通的断点。这类断点的好处是可以设置任意个,缺点是容易被会检测出来。...除了使用双击和F2进行CC断点设置外,我们还可以使用一些命令进行设置。比如bp 0x0040100c,也可以设置和刚才一样的断点。 ?...我们点击B位置,就可以切换到断点窗口,右击来对断点进行删除、禁止等操作。 ? 断点窗口: ?

1.5K20

【Windows 逆向】OD 调试器工具 ( OD 调试数据时硬件断点对应的关键代码 | 删除硬件端点恢复运行 )

文章目录 前言 一、OD 调试数据时硬件断点对应的关键代码 二、删除硬件端点恢复运行 前言 在 【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据...) 博客中介绍了如何在 OD 中调试指定地址 , 本篇博客中对相关操作进行指定 ; 一、OD 调试数据时硬件断点对应的关键代码 ---- 在 数据面板 中 , 右键点击指定地址 , 选择 " 端点 /...硬件访问 / Dword " 选项 , 设置硬件断点 , 当有指令访问该地址时 , 会进入断点 , 程序阻塞挂起 , 处于暂停状态 ; 访问该地址的 关键代码 是 阻塞位置 的上一行代码 , 如下图...地址 的关键代码 ; 二、删除硬件端点恢复运行 ---- 在菜单栏 选择 " 调试 / 硬件断点 ( H ) " 选项 , 弹出 " 硬件断点 " 对话框 , 点击硬件断点后面的 " 删除 n..." 按钮 , 删除该硬件断点 ; 点击 执行按钮 , 就可以继续执行 ;

74910

Linux系统中断的硬件框架

资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...查看中断状态、清中断 3.3.3 GIC ARM体系结构定义了通用中断控制器(GIC),该控制器包括一组用于管理单核或多核系统中的中断的硬件资源。...它使软件能够屏蔽,启用和禁用来自各个中断源的中断,以(在硬件中)对各个中断源进行优先级排序和生成软件触发中断。它还提供对TrustZone安全性扩展的支持。...判断中断状态、清中断 3.4.2 GIC ARM体系结构定义了通用中断控制器(GIC),该控制器包括一组用于管理单核或多核系统中的中断的硬件资源。...它使软件能够屏蔽,启用和禁用来自各个中断源的中断,以(在硬件中)对各个中断源进行优先级排序和生成软件触发中断。它还提供对TrustZone安全性扩展的支持。

4.5K40

Linux硬件资源管理

在上一篇Linux系列文章:Linux之vi 文本编辑命令,主要介绍了常用的vi文本编辑命令。以下,主要介绍Linux硬件资源管理。...#Linux硬件资源管理# Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。...在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。有时候需要收集一些硬件信息来进行资源管理,很多时候命令行就可以完成硬件信息的收集与管理。...对此,需要了解一个新的概念——“挂载” 当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用,合二为一的过程称为“挂载”。...Linux文件系统挂载,示意图如下: ? ? Linux 查看硬件信息:lspci lspci 列出所有的 pci 设备,比如主板、声卡、显卡、网卡等。通过 lspci -v 可以查看更详细信息。

2.1K20

Linux内核如何与硬件交互

Linux 在引导过程中清点可用硬件。一些硬件信息存储在 /proc 目录中,该目录在每次系统启动时都会动态填充。此目录包含两个与处理器和内存相关的文件。...信息包括 Linux 内核版本、硬件架构、处理器类型和操作系统名称。 显示存储信息 硬盘驱动器 (HDD) 或固态驱动器 (SSD) 通常提供计算机存储。这些设备支持长期文件存储。...某些 Linux 发行版可能仍识别该命令,但您应该学习 ip 命令。 使用 ethtool 实用程序 基本 ethtool 命令显示指定网卡(enp0s5)的当前硬件设置。...使用 top 工具 标准的 Linux 硬件监控工具是 top。它在上方框中显示基本的硬件信息,在下方部分中显示系统进程及其 CPU 和内存消耗的动态表。...系统管理包括显示硬件信息并使用它来管理服务、进程、应用程序等。 Linux 用户将希望看到硬件信息,以帮助选择系统升级、监控性能和解决问题。

12410
领券