调试技术
cosmoslife
多媒体编程、网络编程、系统编程、网络安全编程
展开
-
调试服务态程序
调试服务态程序原创 2023-03-06 20:11:11 · 313 阅读 · 0 评论 -
使用windbg进行远程调试
windbg远程调试方法原创 2023-02-03 10:38:03 · 346 阅读 · 0 评论 -
各种编程语言查找按钮事件
http://blog.csdn.net/lwglucky/article/details/5289532一、VB程序 其实,VB的按纽事件的找法是最为普遍的,也就是大家所谓的万能断点.其实也不仅仅是针对按纽事件,还有很多其他的用处,如取消NAG,启动框,灰色按纽或隐藏按纽,启动时的timer事件等等,具体的就自己去总结吧,这里只演示按纽事件!OD载入后,CTRL+B,81转载 2015-11-13 17:23:10 · 578 阅读 · 0 评论 -
反调试与反反调试内容收集帖 方便大家学习
反调试技术在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己。为了了解如何破解反调试技术,首先我们来看看反调试技术。一、Windows API方法Win32提供了两个API, IsDebuggerPresent和CheckRemoteDebuggerPresent可转载 2014-09-02 22:01:58 · 964 阅读 · 0 评论 -
windows程序员进阶系列:《软件调试》之Win32堆的调试支持 (三)
Win32堆的调试支持 为了帮助程序员及时发现堆中的问题,堆管理器提供了以下功能来辅助调试。 1:堆尾检查(Heap Tail Check) HTC,在堆尾添加额外的标记信息,用于检测堆块是否溢出。2:释放检查(Heap Free Check)在释放堆块时进行检查,防止释放同一个堆块。3:参数检查,对传递给堆的各种参数进行更多的检查。4:调用时验证(Heap Va转载 2014-08-16 23:21:48 · 884 阅读 · 0 评论 -
windows程序员进阶系列:《软件调试》之Win32堆 (二)
win32堆及内部结构 Windows在创建一个新的进程时会为该进程创建第一个堆,被称为进程的默认堆。默认堆的句柄会被保存在进程环境块_PEB的ProcessHeap字段中。要获得_PEB的地址,可以通过$peb伪寄存器来获得,dt _PEB @$peb。也可以通过.process获得。 如上图ProcessHeap字段即为进程默认转载 2014-08-16 23:19:06 · 933 阅读 · 0 评论 -
windows程序员进阶系列:《软件调试》之堆 (一)
原文链接:http://blog.csdn.net/ithzhang/article/details/12653783转载 2014-08-16 23:10:42 · 897 阅读 · 0 评论 -
解读编码后的HEAP_ENTRY结构
http://advdbg.org/blogs/advdbg_system/articles/5152.aspx转载 2014-08-19 20:16:27 · 858 阅读 · 0 评论 -
驱动学习---PAE--virtual address to physics address
PAE是Physical Address Extension的缩写,即物理地址扩展。简单来说,就是把IA-32处理器的寻址能力从原来的4GB扩展到64GB。寻址4GB空间,要求物理地址的宽度为32位。类似的,要寻址64GB空间,那么物理地址的宽度就是36位。因为这个原因,PAE又被称为PAE-36bit。一般电脑都可以轻松看出是不是使用了PAE,最简单是看系统属性:如果不启用PAE转载 2014-05-15 13:59:04 · 835 阅读 · 0 评论 -
windbg检测句柄泄露(定位到具体代码)
1.构造一个测试用例[cpp] view plaincopy#include "stdafx.h" #include void NormalFunc() { HANDLE hEvent; hEvent = CreateEvent(NULL,TRUE,TRUE,NULL);转载 2015-11-17 13:11:32 · 817 阅读 · 0 评论 -
针对LdrLoadDll下条件断点过滤指定名称DLL加载时断点生效
针对加载*ser32.dll下断点:bu ntdll!LdrLoadDll "r $t0=poi(poi(esp+c)+4);as /mu ${/v:dllname} @$t0;.block{.if($spat(\"${dllname}\",\"*ser32.dll\")){kbn}; .else{ad ${/v:dllname};g}}"-----------------------原创 2015-11-17 18:05:33 · 1049 阅读 · 0 评论 -
输入表重建工具ImportREC
Import REConstructor可以从杂乱的IAT中重建一个新的Import表(例如加壳软件等),它可以重建Import表的描述符、IAT和所有的ASCII函数名。用它配合手动脱壳,可以脱UPX、CDilla1、PECompact、PKLite32、Shrinker、ASPack, ASProtect等壳。该工具位于:光盘\tools\PE tools\Rebuilders\Import转载 2015-11-20 12:17:29 · 1133 阅读 · 0 评论 -
Windbg实用手册
基本知识和常用命令(1) Windbg下载地址http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx安装完后执行windbg –I将Windbg设置成默认调试器 (2) Windbg的命令分为标准命令,原命令和扩展命令,输入问号(?)可以显示所有的标准命令的帮助信息; 元命令以一个点(.)转载 2015-11-20 12:56:22 · 489 阅读 · 0 评论 -
虫趣:BAD POOL CALLER (par1: 0×20)
虫趣:BAD POOL CALLER (par1: 0×20)发表于2013 年 7 月 20 日【作者:张佩】 【原文:http://www.yiiyee.cn/Blog/0×19-1/】内核在管理内存的时候,为了提高内存使用效率,对于小片内存的申请(小于一个PAGE大小),都是通过内存池来操作的。系统里面有两种不同的内存池:分页内存池和非分页内存池。这二者的区别转载 2015-12-22 11:31:57 · 1515 阅读 · 0 评论 -
反调试技巧总结-原理和实现
标 题: 【原创】反调试技巧总结-原理和实现(1)(2)(3)(4)(5)(6)......作 者: shellwolf时 间: 2008-08-10,22:40:53链 接: http://bbs.pediy.com/showthread.php?t=70470反调试技巧总结-原理和实现-------------------------------------------转载 2016-08-03 15:43:20 · 786 阅读 · 0 评论 -
64位shellcode编程(不错) Windows x64 Shellcode
原文链接:http://mcdermottcybersecurity.com/articles/windows-x64-shellcodeWindows x64 ShellcodeJanuary 11, 2011ContentsIntroductionRIP-Relative AddressingAPI Lookup转载 2017-12-06 21:07:12 · 4033 阅读 · 0 评论 -
调试寄存器 原理与使用:DR0-DR7
调试寄存器 原理与使用:DR0-DR7下面介绍的知识性信息来自intel IA-32手册(可以在intel的开发手册或者官方网站查到),提示和补充来自学习调试器实现时的总结。希望能给你带去有用的信息。(DRx对应任意的一个调试寄存器。LENn对应任意一个长度。Ln对应任意一个局部置位)DR0-DR7可以直接被读写操作(MOV 指令之类的,DRx可以是源操作数也可以是转载 2018-01-29 19:06:46 · 984 阅读 · 0 评论 -
Collecting User-Mode Dumps
Starting with Windows Server 2008 and Windows Vista with Service Pack 1 (SP1), Windows Error Reporting (WER) can be configured so that full user-mode dumps are collected and stored locally after a use...转载 2018-03-27 17:45:15 · 811 阅读 · 0 评论 -
使用WinDBG观察分页机制 ---- 实验前提(关闭PAE(物理地址扩展))
虚拟机用不到了 这是我的boot.ini中WINXP的引导 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="WINDOWS XP" /fastdetect /NoExecute=AlwaysOff 这样可以关闭原创 2014-04-24 21:02:58 · 1443 阅读 · 1 评论 -
BCD来调试的批处理
set PATH=%PATH%;C:\Program Files\Windows Kits\8.0\Debuggers\x64set DBG_OPTIONS=-vset DBG_LOGFILE=-logo D:\CDB\CdbgLogo.txtset DBG_SYMBOLS=-y SRV*D:\CDB\Symbols*http://msdl.microsoft.com/download原创 2013-11-24 23:43:15 · 967 阅读 · 0 评论 -
VMware+Windgb+Win7
本文主要记录个人安装VMware+Windgb+Win7内核驱动调试的笔记。一、安装环境主机:Windows Vista Bussiness虚拟机:VMware 7GUestOS: Win7Windbg: 6.11二、虚拟机配置打开相应 vmware 虚拟机上的 “Virtaul Machine Settings“ “Hardware ”选项中 ---->转载 2013-05-16 20:49:03 · 1046 阅读 · 0 评论 -
windbg调试命令3(sx、ld)
1.sxsx* 命令用来控制被调试的程序发生某个异常或特定事件时,调试器要采取的动作sx 命令显示当前进程的异常列表和所有非异常的事件列表,并且显示调试器遇到每个异常和事件时的行为。sxr 命令将所有异常和事件过滤器的状态重设为默认值。命令被清除、中断和继续选项被重设为默认值,等等。sx这个命令的输出信息可以分为三个部分:第一部分是事件处理与相应处理模式的交互,第二部分是标准的转载 2013-05-07 19:22:03 · 1409 阅读 · 0 评论 -
windbg调试命令9(dt、d)
dt命令显示局部变量、全局变量或数据类型的信息。它也可以仅显示数据类型。即结构和联合(union)的信息。 0: kd> dt _PEB nt!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : U转载 2013-05-07 19:25:01 · 840 阅读 · 0 评论 -
windbg调试命令4(用户层.dump)
Windbg生成dump文件的方法:程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。 步骤:1) 打开WinDBG并将之Attach 到crash的程序进程2) 输入产生dump 文件的命令WinDBG产生dump 文件的命令是 .dump ,可以选择不同的参数来生成不同类型的dump转载 2013-05-07 19:22:35 · 599 阅读 · 0 评论 -
windbg调试命令7(!runaway、~)
windbg调试命令7(!runaway、~)1.!runaway!runaway命令显示每个线程消费的时间Bit 0 (0x1) 让调试器显示每个线程消耗的用户模式时间(user time),默认不加就是0x1Bit 1 (0x2) 显示每个线程消耗的内核时间(kernel time)。Bit 2 (0x4) 显示每个线程从创建开始经历了多少时间。就是三者的组合:1 2 3 4转载 2013-05-07 19:24:02 · 654 阅读 · 0 评论 -
windbg调试命令8(bp、bu、bm、bl、bc、ba、be、bd)
windbg调试命令8(bp、bu、bm、bl、bc、ba、be、bd)以下以skinhgy为例,windbg附加运行1.bp 命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地址并设置断点。 但是使用bp的问题在于:1)当代码修转载 2013-05-07 19:24:30 · 1125 阅读 · 0 评论 -
windbg调试命令1(k、u、x)
k*命令显示给定线程的调用堆栈,以及其他相关信息~0 k表示打印0号线程的调用堆栈,直接用k表示打印当前线程的调用堆栈kd> ~0k ChildEBP RetAddr 0007fddc 77d191be ntdll!KiFastSystemCallRet 0007fdfc 010021b0 USER32!NtUserGetMessage+0xc 0007ff1c 0转载 2013-05-07 19:20:53 · 716 阅读 · 0 评论 -
windbg调试命令6(!peb、!teb)
windbg调试命令6(!peb、!teb)PEB(Process Environment Block,进程环境块)存放进程信息,每个进程都有自己的PEB信息。位于用户地址空间。TEB(Thread Environment Block,线程环境块)系统在此TEB中保存频繁使用的线程相关的数据。位于用户地址空间,在比 PEB 所在地址低的地方。进程中的每个线程都有自己的一个TEB。调转载 2013-05-07 19:23:37 · 717 阅读 · 0 评论 -
windbg调试命令2(!gle、g、p)
!gle 扩展显示当前线程的最后一个错误码。这个太好记了,getlasterror取首字母:0:002> !gle LastErrorValue: (Win32) 0 (0) - LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0 0:002> !gleLastErrorValue: (Win32) 0 (0) - L转载 2013-05-07 19:21:21 · 1130 阅读 · 0 评论 -
windbg调试命令5(ln、伪寄存器)
windbg调试命令5(ln、伪寄存器)1.lnln 命令显示给定地址处的或者最近的符号。ln表示list near,ln命令将尽可能地给出与特定地址相关的符号,如果没有符号能够精确地与这个地址匹配,那么调试器将通过指针算法对靠近这地址的符号进行运逄,并返回运算结果符号0:000> ln 01012475(01012475) calc!WinMainCRTStart转载 2013-05-07 19:23:06 · 603 阅读 · 0 评论 -
Bochs调试指令
bochs调试FAQ:1. Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的, 所以我们可以在启动bochs调试的命令行下输入 pb 0x7c00 或者 vb 0:0x7c00就着输入 cbochs就会在0x7c00处停下 2转载 2013-06-24 15:22:00 · 703 阅读 · 0 评论 -
bochs调试windows XP系统
链接:http://bbs.pediy.com/archive/index.php?t-131591.html Bochs是一款基于IA-32(x86)的开源的模拟器,它可以模拟各种硬件的配置。Bochs模拟的整个PC平台,包括I/O设备,内存和BIOS,甚至有趣的是可以不使用PC硬件来运行Bochs。事实上,它可以在任何编译运行Bochs的平台上模拟x86硬件。对它进行基本了解后,就可以转载 2013-06-26 13:20:19 · 1758 阅读 · 0 评论 -
栈回溯(stack trace)原理
当使用windbg时,最常用的命令就是'K', 栈回溯。那么是怎么实现栈回溯的呢,下面简单介绍一下。首先要了解我们所编译出来的EXE或者DLL的调试信息都是包含在PDB文件中的,PDB文件可由编译器来产生。在栈回溯中使用的API都是来自动态库DbgHelp.dll中的,当然你可以显式或者隐式的调用这个DLL,但是这个DLL有着不同的版本,当隐式调用时需要注意。因为我在使用时出现了问题,所以转载 2013-07-23 21:13:05 · 1909 阅读 · 0 评论 -
QQ密码框的那点破事
前阵子把QQ密码搞出来了,现在想复习下发现又生疏了,看来要写个文章利用看雪论坛帮自己保存下,特别是WinDbg的命令忘的太快了,恩要记下来了。注:本文没有用到驱动来实现,也没有用到假界面这个方法,只是借助于WinDbg分析,代码是Ring3的,QQ版本是2011,版本号是1.65.2221.488即最新的版本beta 3.3QQ密码框是靠不停的安装卸载钩子来实现密码保护的,这地球人都知道,转载 2013-10-22 21:14:14 · 1287 阅读 · 0 评论 -
WINDBG u win32k!NtUserSendInput 出现 Memory access error处理方法()
WINDBG调试出现了这个问题...请问何解?kd> u win32k!NtUserSendInputwin32k!NtUserSendInput:bf8c31e7 ?? ???^ Memory access error in 'u win32k!NtUserSendInput'这个意思是难道是WIN32K没有映射到内存?解决方法:1.首先使用 .P转载 2013-11-04 22:36:52 · 5113 阅读 · 0 评论 -
在windbg中测试shadow ssdt , win32k!NtUserGetForegroundWindow , hook shadow ssdt
在windbg中测试shadow ssdt , win32k!NtUserGetForegroundWindow , hook shadow ssdt在windbg中查看shadow ssdt:0: kd> lmstart end module name804d8000 806e3000 nt (pdb symbols)转载 2013-11-04 22:37:37 · 1962 阅读 · 0 评论 -
Windows系统默认调试器设置
注册表设置:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AeDebugHKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger两个键值:Auto: 0:转载 2013-04-16 14:57:59 · 839 阅读 · 0 评论