调试技术
文章平均质量分 63
Blue_Dream_
高级程序员,喜爱底层编程并从事相关软件开发,编程工具 VS.NET C/C ,ASM, Delphi
展开
-
调试技术的五大原则
你在写代码之前会认真构思,然后小心翼翼地写,一遍又一遍地检查……最后当你运行的时候,你还是无法避免地发现了错误。可能是语法错误,可能是声明变量错误,可能是调用函数错误……无论怎样,都需要你一遍遍地调试。接下来我将告诉你五个提高调试能力的技巧。 在正式开始之前,我先不厌其烦地解释两个词汇。第一个是“语法”:语言的规则。 举例来说,pritf("Hello World")是错误的,正确的是p转载 2007-08-24 09:05:00 · 2259 阅读 · 0 评论 -
跟踪 API 调用--OllyDbg
在API 调用上设置断点可以利用该功能做到1. 跟踪对指定 API 的调用 ( 当在被调试程序中调用该 API时断点即被触发, )2. 查看程序用到了哪些 API 函数,了解程序的大体的功能 方法: (1) 在 "命令" 输入框输入 "bpx 任意API(MessageBoxA)", 然后 "ENTER", 即可打开 "模块间调用" 窗口. (2) 点击工具栏按钮 "R原创 2007-11-23 09:01:00 · 5514 阅读 · 0 评论 -
得到函数 RVA
原创 2008-02-16 08:53:00 · 1906 阅读 · 0 评论 -
脱壳&破解技巧
暴力破解的一般流程1、有壳者要先脱壳2、试注册看看有何提示,让我们抓抓小尾巴3、若有提示,用OD动态调试器或者是W32静态调试器查找注册提示4、来到错误提示处分析代码找关键CALL、关键跳!5、修改代码6、复制保存!如果没有提示,我们可以使用很多断点来完成这些操作现今软件的保护方原创 2008-01-03 09:24:00 · 2616 阅读 · 0 评论 -
OllyDbg应用方法大全
OllyDbg应用方法大全!所有文章均为散落在DFCG论坛各处或其他网络文集的经典。雪很冷搜集整理于学习笔记或与朋友讨论之中Ollydbg 中断方法 Quote: Originally posted by dong at 2004-6-1 10:29 PM:我问个问题在od中怎么下断点呢??现在有的程序一点注册就没反映了这样的怎么下断点呢??能介绍下什么情况下什么断点吗? 在转存中下硬件访问-转载 2008-01-03 10:26:00 · 3297 阅读 · 0 评论 -
脱 PECompact 2.x -> Jeremy Collake 壳
用peid查,显示是PECompact 2.x -> Jeremy Collake的壳用OD载入后停在00401000 B8 D4A14300 mov eax,CoralQQ.0043A1D4 F8单步运行00401005 50 push eax00401006 64:FF35 00原创 2008-01-03 13:18:00 · 2540 阅读 · 0 评论 -
脱 PECompact 壳
脱 PECompact 2.x -> Jeremy Collake 壳用peid查,显示是PECompact 2.x -> Jeremy Collake的壳用OD载入后停在00401000 B8 D4A14300 mov eax,CoralQQ.0043A1D4 F8单步运行00401005 50原创 2008-01-03 13:19:00 · 1055 阅读 · 0 评论 -
脱壳的艺术--4反分析技术
脱壳的艺术Mark Vincent Yason概述:脱壳是门艺术——脱壳既是一种心理挑战,同时也是逆向领域最为激动人心的智力游戏之一。为了甄别或解决非常难的反逆向技巧,逆向分析人员有时不得不了解操作系统的一些底层知识,聪明和耐心也是成功脱壳的关键。这个挑战既牵涉到壳的创建者,也牵涉到那些决心躲过这些保护的脱壳者。本文主要目的是介绍壳常用的反逆向技术,同时也探讨了可以用来躲过或禁用转载 2008-01-19 09:34:00 · 1832 阅读 · 0 评论 -
Windbg dump 方法
如何手工抓取dump文件在生产环境下进行故障诊断时,为了不终止正在运行的服务或应用程序,有两种方式可以对正在运行的服务或应用程序的进程进行分析和调试。首先一种比较直观简洁的方式就是用WinDbg等调试器直接attach到需要调试的进程,调试完毕之后再detach即可。但是这种方式有个缺点就是执行debugger命令时必须先break这个进程,执行完debug命令之后又得赶紧F5让他继续运行,因转载 2008-05-13 13:50:00 · 8305 阅读 · 3 评论 -
windbg 中常用的命令(1)
~ - list threads in current process context~* - list detail information of threads in current process contextlm - list all loaded modules!sym noice/quiet - symbol prompts on/off.srcpath - s转载 2009-01-26 07:23:00 · 835 阅读 · 1 评论 -
断点失效 终极解决办法
(1) 工具-->选项-->要求源文件和原始文件版本完全匹配(2) 搜索当前 项目文件, 删除 下面文件 .obj; .idb; .ilk; .pdb; .pdb; .idb;.ilk;.obj;.exp;.pch;.map;.ncb;.vcc;.res;.tli 重新编译就好了原创 2009-03-05 16:00:00 · 1698 阅读 · 0 评论 -
Release 版本调试错误--VC
for ( int i = 0; Pos != NULL; i++ ) { str = Dlg.m_StrList.GetNext(Pos); m_CtrlMulicList.InsertItem( i, str); m_CtrlMulicList.SetItemText( i , 1, Dlg.m_strRotateCount ); m_CtrlMulicList.SetI原创 2007-11-16 09:10:00 · 2399 阅读 · 0 评论 -
IDA 远程调试
从4.8版开始, IDA 支持远程调试. 在网络连通的情况下, 远程调试可以使一台计算机调试另外一台计算机上运行的程序。 运行IDA的计算机称为 "调试客户机". 运行被调试进程的计算机称为 "调试服务器".我们可以利用远程调试来研究有破坏性的文件, 例如病毒,木马等,或分布式应用程序.步骤1: 把 IDA 目录中的 win32_remote.exe 拷贝到被调试服务器. 这个程序在指定的端原创 2007-10-03 13:43:00 · 2548 阅读 · 0 评论 -
从Ollydbg说起-----WinDbg用户态调试教程(1)
首先说明, 这篇文章是我转载的。文章不错。我现在对 windbg 比较熟,平时调试就是用它来调试内核程序。调试用户态程序就用 VC.net 自带的调试器功能也相当强大。这篇文章主要是结合 ollydbg 和 windbg 讲解的文章,可以增长点对用户态程序调试的技巧。 【文章标题】: 【原创】从Ollydbg说起-----WinDbg用户态调试教程【文章作者】: 笨笨雄【作者转载 2007-08-27 18:07:00 · 3210 阅读 · 1 评论 -
A word for WinDbg
Before I came to work at Microsoft I worked as a professional developer on the Microsoft platform and I used to work with the Visual Studio (6 latterly) debugger which I thought was a pretty cool de转载 2007-08-27 12:56:00 · 1899 阅读 · 0 评论 -
More on debugging with SOS.DLL - enter Visual Studio
I can’t get off this debugging topic at the moment. To follow up briefly on the postings that I put up about WinDbg and the SOS.DLL I wanted to add some information about Visual Studio because I原创 2007-08-27 13:01:00 · 1436 阅读 · 0 评论 -
利用VMWare和WinDbg调试驱动程序
利用VMWare和WinDbg调试驱动程序心里总感觉 SOFTICE 的发展快到末路了。果然在 2006 年时Compuare 宣布停止 SOFTICE 开发。这里消息确实令很多人心痛。但与此同时,Windows 的配套调试器 windbg , cdb 等不断更新,功能不断强大,你必须选择它,虽然它内核调试速度不理想。后来我知道了 syser debuger, 国人写的不错的调试器,基原创 2007-08-27 13:29:00 · 6484 阅读 · 9 评论 -
源代码级调试汇编
对喜欢ASM 的朋友来说,程序中潜在的未知错误是不可避免的也是最头痛的事情之一. 如何在ASM环境下调试程序成了整个环节中耗时很多的工作. 许多其它编译器都附带了源代码级的调试器, VC,TC大家都不会陌生, 这使得用这些高级语言调试成了一件相对easy的事情,你可以迅速进入事故现场并排除之.ASM不同,微软并没有为他提供一个集成的开发和调试环境,我们一切都得自己来! 好在我们有强大的SoftIc转载 2007-09-15 12:44:00 · 1924 阅读 · 0 评论 -
IDA 简易教程
IDA简易教程 作者:www.datarescue.com本文的主要内容就是讲如何用IDA来辅助识别各种类型的数据.版权信息:所有版权归原文作者所有,如许转载清保持文章完整性。索引1 第一节:C语言的小程序2 第二节:基本类型的识别3 第三节:操作数格式4 第四节:字符和字符串的操作5 第五节:数转载 2007-09-21 18:01:00 · 2806 阅读 · 1 评论 -
抢先 DriverStudio 夺取机器控制权
装了DriverStudio软件(我使用的是v3.2版)的系统在启动时会显示其配置画面.这时操作系统的其他部件还没有运行。那么显示的原理是什么?能不能早于DriverStudio而先执行其他代码呢?答案是肯定的。下面先谈谈原理吧。 原理比较简单,详细的大家可以看网文 inside NT boot ,我这里简单说说。当引导扇区被引导后,会查找NTLDR,NTLDR做的一件非常重要的事就转载 2007-09-20 13:22:00 · 2031 阅读 · 0 评论 -
VC 工具使用和调试方法
vc++如何实现远程调试 *假设调试机IP 192.168.0.182 远程机IP 192.168.0.161*远程机为调试机分配权限,使调试机可以使用远程桌面登陆到远程机器上(这样调试起来方便)。*调试机上安装visual studio .net 2003共享调试机上的Visual Studio上的远程调试目录(以我的机器为例)C:/Program Files/Mic原创 2007-09-26 09:37:00 · 1824 阅读 · 0 评论 -
断点设置原理
调试寄存器:在寄存器中, 有一些调试寄存器专门用于调试的作用. 人们经常把它们称为调试寄存器, 调试寄存器共有 8 个,分别是 Dr0-Dr7. 这 8 调试寄存器常被简称为 Drx.Dr0-Dr3: 这 4 个调试寄存器的作用是存放中断的地址, 例如: 0x400000。 这 4 个调试寄存器共同时可以存放 4 个断点.(这指的是硬件断点).Dr4-Dr5 这两个寄存器我们已使用他们,原创 2007-09-26 08:27:00 · 1980 阅读 · 0 评论 -
VC调试遇到的问题
在调试音视频图像传输时遇到了这样奇怪的问题,现在回想起来大致过程是这样的: 1. 原先的项目文件在 D:/AVIO 文件夹中 2. 由于要对这个项目文件作一个大的变动,结果很难预料, 把文件拷到 D:/AVIO_backup 做备份 3. 用 D:/AVIO_backup 做修改, 但是调试时我发现断点设置后,执行流程根本就是错误的。由于用的是这个项目文件是 VC6.0 做得, 我也沿原创 2007-10-04 11:42:00 · 1500 阅读 · 0 评论 -
用户态远程调试
用户态远程调试:在目标机器上:执行 dbgsrv -t tcp:port=1025 -cs D:/Program Files/Tencent/qq/Bin/QQ.exetcp:port=1025: dbgsrv 在tcp协议的1025端口监听-cs D:/Program Files/Tencent/qq/Bin/QQ.exe 启动QQ程序,并立即中断程序执行(假定QQ的PI原创 2009-11-18 10:56:00 · 844 阅读 · 0 评论