![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
# 调试
调试相关
qq_857305819
这个作者很懒,什么都没留下…
展开
-
windbg加载指定模块的符号
1: .symopt + 0x40 忽略时间戳的差异2: .reload /f @“c:\windows\System32\win32kfull.sys” 加载指定模块原创 2021-07-14 20:25:57 · 915 阅读 · 0 评论 -
windbg常用命令
!pool +va 可以分析出一个地址是不是通过ExAllocatePool分配的 以及是分页内存还是非分页内存ba e1 +va 硬件断点dps rsp 查看堆栈 会显示出相应的函数名!pte + va 可以找出一个虚拟地址的pte 通过PTE知道这个地址读写以及可执行属性!address +va 获得虚拟地址所在区域.thread 列出当前线程结构体!thread 当前线程信息dt _KTHREAD TrapFrame+ 结构体地址 可以原创 2021-06-22 17:36:16 · 720 阅读 · 0 评论 -
无符号驱动 加载时找入口点
dt _DRIVER_OBJECTnt!_DRIVER_OBJECT +0x000 Type : Int2B +0x002 Size : Int2B +0x008 DeviceObject : Ptr64 _DEVICE_OBJECT +0x010 Flags : Uint4B +0x018 DriverStart : Ptr64 Void +0x020 DriverSize .原创 2021-04-07 10:03:04 · 346 阅读 · 0 评论 -
调试基本框架
// firstDebug.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<windows.h>#define DEBUGED_PROCESS_PID 1332 //被调试进程PIDvoid ThreadProc(PVOID context){ if (!DebugActiveProcess(DEBUGED_PROCESS_PID)) { printf("不能调试目标进程,错误码%d",GetLastError())原创 2020-10-15 19:03:42 · 197 阅读 · 0 评论 -
反调试
软件断点TLS回调函数先于程序入口执行,调试器加载主程序的时候会在OEP处设置软件断点,通过TLS回调得到程序的OEP然后判断入口是否为int3断点IsDebugPresent函数IsDebugPresent判断进程环境块的一个flag是否为真,如果是真就代表正在被调试HWBP_Exception(硬件断点)...原创 2020-09-25 01:37:32 · 1057 阅读 · 0 评论 -
软件断点
软件断点的原理是:再目前进程的某一行代码开头的位置,把硬编码改为0xCC.CPU在执行到这里的时候就会触发INT 3号断点,去执行IDT表的3号处理程序。如果有调试器,就回把异常转发给调试器处理。// VEHXXXX.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <windows.h>#include <stdlib.h>DWORD Th原创 2020-07-16 19:21:53 · 380 阅读 · 0 评论