- 博客(19)
- 资源 (29)
- 收藏
- 关注
转载 使用dbghelp获取调用堆栈--release下的调试方法学(精华)
使用dbghelp获取调用堆栈--release下的调试方法学Author : Kevin Lynx当软件作为release模式被发布给用户时,当程序崩溃时我们很难去查找原因。常见的手法是输出LOG文件,根据LOG文件分析程序崩溃时的运行情况。我们可以通过SEH来捕获程序错误,然后输出一些有用的信息作为我们分析错误的资料。一般我们需要输出的信息包括:系统信息、CPU寄存器信
2013-07-17 20:31:04 1229
原创 使用WDK编译环境编译应用程序build命令(动态库程序)
TARGETNAME=dllTARGETTYPE=DYNLINKSOURCES=dll.cpp \USE_MSVCRT = 1TARGETLIBS=$(SDK_LIB_PATH)\gdi32.lib \ $(SDK_LIB_PATH)\user32.lib \ $(SDK_LIB_PATH)\kernel32.lib \
2013-07-31 23:10:15 2526
原创 使用WDK编译环境编译应用程序build命令(对话框程序)
TARGETNAME=DlgTARGETTYPE=PROGRAMSOURCES=Dlg.cpp \ Dlg.rcUMENTRY=winmainUSE_MSVCRT = 1UMTYPE=windowsUMLIBS=$(SDK_LIB_PATH)\gdi32.lib \ $(SDK_LIB_PATH)\user32.lib
2013-07-30 19:58:20 1312
原创 使用WDK编译环境编译应用程序build命令(控制台程序)
TARGETNAME=consoleTARGETTYPE=PROGRAMSOURCES=console.cpp \USE_MSVCRT = 1UMTYPE=consoleUMLIBS=$(SDK_LIB_PATH)\gdi32.lib \ $(SDK_LIB_PATH)\user32.lib \ $(SDK_LIB_PATH
2013-07-30 19:47:00 3432 2
转载 栈回溯(stack trace)原理
当使用windbg时,最常用的命令就是'K', 栈回溯。那么是怎么实现栈回溯的呢,下面简单介绍一下。首先要了解我们所编译出来的EXE或者DLL的调试信息都是包含在PDB文件中的,PDB文件可由编译器来产生。在栈回溯中使用的API都是来自动态库DbgHelp.dll中的,当然你可以显式或者隐式的调用这个DLL,但是这个DLL有着不同的版本,当隐式调用时需要注意。因为我在使用时出现了问题,所以
2013-07-23 21:13:05 1909
转载 vs2010中 自动对齐快捷键
点【编辑】-【高级】-【设置选定内容的格式】或者按Ctrl + K 然后再按Ctrl + F 就好了你可以在常用快捷键自定义 窗口中进行查看1.进入工具-选项 对话框2.选择【环境】-【键盘】3.在 【显示命令包含】 下面的对话框中输入“对齐”关键字,然后就会在这个编辑框下面一个文本窗口中显示关于“对齐”一系列的“某某对齐”操作命令,选中你想查看的,就会在【选定命令的快捷键】一栏中
2013-07-22 22:32:40 1591
转载 用ZwQueryVirtualMemory枚举进程模块
枚举进程模块通常可以使用诸如:CreateToolhelp32Snapshot,Module32First,Module32Next 等"Tool Help Functions"接口来实现, 并且这也是最通用的方法(从Win95就开始支持了), 但是今天我们要介绍的是ntdll.dll导出的未文档化接口ZwQueryVirtualMemory,。相比前面所介绍的方法,该方法可以检测出隐藏的模块(类
2013-07-22 21:43:13 1584
原创 FindResource、LoadResource、LockResource资源相关的编程示例
现在很多的EXE文件都是自带驱动,在程序运行时直接将驱动文件释放出来并加载运行,下面给出一个释放驱动资源的示例函数,今天看到了这样的代码记录下来方便日后拿来使用。使用时只需要修改红色字体部分,改成自己的即可,这里说的是EXE、DLL等文件都可以采用这样的方式来释放。//释放资源BOOL Release(){//查找资源文件HRSRC res = FindResource(N
2013-07-22 21:16:57 4199
原创 OutputDebugString实现变参输入
void OutputDebugString(const char *format, ...){va_list args;#define MAXREPORTMESSAGESIZE 513char message [MAXREPORTMESSAGESIZE];va_start(args, format);_vsnprintf(message, MAXREPORT
2013-07-21 23:24:21 1005
原创 关于剪切板操作编程
//下面的代码将"Hello World"字符串复制到剪切板中,代码执行完后可在其它地址进行粘贴操作,看到"Hello World"#include void CopyStringClipboard(HWND hwnd,char * str) //保存字符串至剪贴板:{HGLOBAL hClip; //定义一个HGLOBAL句柄变量用来指向分配的内存块if (Ope
2013-07-21 20:46:23 812 1
转载 用BoundsChecker检测内存泄漏
用BoundsChecker检测内存泄漏 BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后再执行原
2013-07-20 22:52:48 682
转载 [内存泄露]Purify工具介绍
C/C++内存问题检查利器——Purify一、引言我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试案例,也无法彻底地检测到内存上的问题。使用C/C++开发的团队一定有被其内存问题折磨过的经历,内存问题一直是C/C++开发人员的心头之痛。特别当
2013-07-20 22:51:47 825
转载 VC内存泄露检查工具:Visual Leak Detector
http://www.codeproject.com/KB/applications/visualleakdetector.aspx 初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏
2013-07-20 22:15:12 809
转载 C/C++检测内存泄漏的工具 vld Visual Leak Detector223 的使用方法和sample示例
这类的工具有 比如 :LeakDiag leakfinder "Visual Leak Detector" vld可以从http://vld.codeplex.com/releases/view/82311 现在最新版本,包括src源代码。安装好以后,他会提示 要求添加 dll 到环境变量中去。使用 vld 的方法为:在自己的代码中 添加 vld 的头文件,以及 lib
2013-07-17 21:20:58 2783
转载 Visual Leak Detector - 增强内存泄漏检测工具 for Visual C++ (翻译)
原文及源码下载地址:http://www.codeproject.com/KB/applications/visualleakdetector.aspx 名词解释:1、stack trace:调用堆栈信息2、debug heap:调试堆3、Allocation Hook:向调试堆注册的回调函数,当申请内存时,调试堆即调用此回调函数 前言
2013-07-17 21:06:32 784
原创 枚举系统当前进程信息
//功能:枚举系统当前进程信息并将枚举到的进程名与进程ID打印出来#include #include int main(){PROCESSENTRY32 pe;HANDLE snap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );pe.dwSize = sizeof(pe);Process
2013-07-17 19:49:55 756
转载 vs2008中定义dll,通过def文件导出接口
vs2008中定义dll,用def导出接口,能生成dll文件,但是用dumpbin -exports *.dll 发现没有导出函数,同时也没有生成*.lib文件解决方法:项目—属性—连接器—输入—模块定义文件 中输入你所定义的def文件名VS2010中也同样的可以这样的设置这种情况一般都是我们自己手动的去创建工程的时候需要进行这样的设置
2013-07-03 14:38:19 1398
原创 利用SetUnhandledExceptionFilter机制实现程序异常后自动重启
利用SetUnhandledExceptionFilter机制实现程序异常后自动重启,我们希望我们的程序在异常崩溃结束后还可以自动重启。利用下面的代码就可以实现我们的程序异常结束后再次自动重新启动.要用下面的头文件和LIB库:#include #pragma comment(lib, "dbghelp.lib")先在主程序注册代码如下:SetUnha
2013-07-03 10:59:32 2258
原创 利用SetUnhandledExceptionFilter获取程序异常时的DUMP文件
利用SetUnhandledExceptionFilter实现程序异常时获取DUMP文件来分析程序异常原因,现在很多的软件都是通过这样的方法来收集异常,只不过这里少了一步向服务器传输我们的程序产生的DUMP文件,这种DUMP文件产生后其实会通过网络向指定的服务器传输。这样方便开发都收集程序目前存在的BUG。下面是一控制台程序,直接COPY代码,编译运行,我这里用了两种方法使程序异常崩溃,从而产
2013-07-03 10:51:39 1819
winhex编辑器
2014-03-29
w32dsm静态反汇编工具
2014-03-29
OllyDBG_1.10
2014-03-29
PEiD 0.94版本
2014-03-29
漫谈兼容内核
2013-05-02
bochs 2.6 source code
2012-09-27
Import REConstructor V1.4和V1.6两个版本
2009-02-01
万能图标提取器 V1.0(100%不变色)
2009-02-01
win2000API学习资料
2009-02-01
Asp 文件加密器(MyAsp) v2.0,网马免杀,免杀
2009-02-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人