欢迎您访问调试逆向windbg怎么dump出一段内存?!

调试逆向windbg怎么dump出一段内存?

更新时间:2023-03-30 07:18:40作者:admin2

Windbg生成dump文件的方法:

程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。 步骤:

1) 打开WinDBG并将之Attach 到crash的程序进程

2) 输入产生dump 文件的命令

WinDBG产生dump 文件的命令是 .dump ,可以选择不同的参数来生成不同类型的dump文件。

选项(1): /m

命令行示例:.dump /m C:\dumps\myapp.dmp

注解: 缺省选项,生成标准的minidump, 转储文件通常较小,便于在网络上通过邮件或其他方式传输。 这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、 进程信息和线程信息。

选项(2): /ma

命令行示例:.dump /ma C:\dumps\myapp.dmp

注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。

选项(3):/mFhutwd

命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp

注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案

那怎么自动生成dump文件呢,比如对方的电脑没有windbg,这里用到一个window系统自带工具,Dr.Watson

运行方式很简单:

直接run-输入drwtsn32 -i就可以了,会提示这样的:

这个命令真难记,实话,记华生医生吧,福尔摩斯中的

如果有程序崩溃,会自动生成dump,这时再输入drwtsn32就会运行这个程序:

找到对应路径的DMP文件就行了,一般放在如下路径:

C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson

以下实例来自AWD

代码:

Copyright (c) Advanced Windows Debugging (ISBN 0321374460) from Addison-Wesley Professional. All rights reserved.

THIS CODE AND INFORMATION IS PROVIDED AS IS WITHOUT WARRANTY OF ANY

KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR

PURPOSE.

--*/

#include stdafx.h

#include <windows.h>

#include <stdio.h>

#include <conio.h>

VOID SimulateMemoryCorruption ( ) ;

class CAppInfo

{

public:

CAppInfo(LPWSTR wszAppName, LPWSTR wszVersion)

{

m_wszAppName=wszAppName;

m_wszVersion=wszVersion;

}

VOID PrintAppInfo()

{

wprintf(L\nFull application Name: %s\n, m_wszAppName);

wprintf(LVersion: %s\n, m_wszVersion);

}

private:

LPWSTR m_wszAppName ;

LPWSTR m_wszVersion ;

} ;

CAppInfo* g_AppInfo ;

int __cdecl wmain (int argc, WCHAR* args[])

{

wint_t iChar = 0 ;

g_AppInfo = new CAppInfo(LMemory Corruption Sample, L1.0 );

if(!g_AppInfo)

{

return 1;

}

wprintf(LPress: \n);

wprintf(L 1 To display application information\n);

wprintf(L 2 To simulated memory corruption\n);

wprintf(L 3 To exit\n\n\n>);

while((iChar=_getwche())!='3')

{

switch(iChar)

{

case '1':

g_AppInfo->PrintAppInfo();

break;

case '2':

SimulateMemoryCorruption();

wprintf(L\nMemory Corruption completed\n);

break;

default:

wprintf(L\nInvalid option\n);

}

wprintf(L\n\n> );

}

return 0;

}

VOID SimulateMemoryCorruption ( )

{

char* pszWrite=Corrupt;

BYTE* p=(BYTE*) g_AppInfo;

CopyMemory(p, pszWrite, strlen(pszWrite));

}

为您推荐

人力资源管理师报名费用大概多少钱

考试,三才也为大家准备了这些资料,可能有人还在问上海人力资源管理师考试报名费用是多少,来下面看看有没有你想要的答案吧! 据“2017年上海市人力资源管理师考试鉴定公告”可

2021-04-16 07:41

人力资源师可以自己个人报名吗

1、不能自己报名,只能通过培训机构报名参加考试。 2、流程:人力资源管理师报名程序填写全国统一的《职业资格鉴定报名表》 提供以下资历证明: 1)学历证书、身份证原件及复印

2021-04-16 07:33

人力资源资格证怎么报考

现在培训机构报名参加培训,然后参加培训,培训结业后参加国家统一组织的考试。 考试程序 1、在各省和劳动保障厅职业技能鉴定中心或代理机构报名 2、由各省职业技能鉴定中心审

2021-04-16 07:19

人力资源管理3级考试时间多少分钟

人力资源管理师三级理论知识考试时间为90分钟,专业能力考核考试时间为120分钟。 人力资源管理师每年上半年和下半年各举行一次,上半年,5月的第三个周末(一般是周日),下半年,11月的

2021-04-16 03:10

人力资源管理师考试科目

一、职业等级 企业人力资源管理员(国家职业资格四级) 助理企业人力资源管理师(国家职业资格三级) 企业人力资源管理师(国家职业资格二级) 高级企业人力资源管理师(国家

2021-04-16 03:10

人力资源师如何报考!今年什么时候考试?

试时间:2013年全国统一考试时间为5月19日、11月17日。报考方法:在报名时间期限内登录当地报名官网进行报名或者到当地报名点现场报名。考试内容:3、4级考理论知识、技能操作;二

2021-04-15 21:50

加载中...