• 大小: 113KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: win调试器  

资源简介

windows简单调试器2700行左右代码,打开被调试程序键入 ? 显示功能及帮助

资源截图

代码片段和文件信息

// MyDbg.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “MyDbg.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

BOOL g_isResumeMemBp = FALSE;
BOOL g_isResumeGeneralBp = FALSE;
BOOL g_isResumeHardBp = FALSE;
BOOL g_isUserStep = FALSE; //单步
DWORD g_dwShowDataAddr = 0; //数据连续显示地址
DWORD g_dwShowDisasmAddr = 0; //反汇编代码连续显示地址
DWORD g_dwBpOrder = 0; //断点序号从0开始递增
DWORD g_dwMode = MYMODEINPUT; //模式用户输入、脚本等
BPNODE g_HardBp[4] = {0}; //4个硬件断点信息
BOOL g_isSystemBreak = TRUE;
list g_DllList; //模块链表
map g_CmdMap; //命令存储
list g_MemBplist; //内存断点链表
list g_GeneralBpList; //普通断点链表
map g_MemPagMap; //内存分页属性表前面为内存分页起始地址,后面为保存的内存分页属性
map g_ApiNameMap; //模块导出函数名称
list g_UserInputList; //用户输入的合法命令
ifstream g_ifileSp; //命令模式下ls函数会打开文件并设置模式标志

ofstream g_ofileTrace; //追踪记录文件
BOOL g_isTrace = FALSE; //运行追踪模式
DWORD g_dwTraceStart = 0; //追踪起始地址
DWORD g_dwTraceEnd = 0; //追踪结束地址
// DWORD g_dwNoTraceStart = 0; //追踪排除范围起始地址
// DWORD g_dwNoTraceEnd = 0; //追踪排除范围结束地址

void ShowError()
{
DWORD dwRet = 0;
char *lpMsgBuf = NULL;
DWORD ErrorCode = GetLastError();
dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS 
NULL ErrorCode 0x400 (LPTSTR)&lpMsgBuf 0 NULL);
MessageBox(NULL lpMsgBuf NULL MB_OK | MB_ICONINFORMATION);  
LocalFree(lpMsgBuf);
}

int _tmain(int argc TCHAR* argv[] TCHAR* envp[])
{
int nRetCode = 0;
if (!AfxWinInit(::GetModuleHandle(NULL) NULL ::GetCommandLine() 0))
{
nRetCode = 1;
return nRetCode;
}

//设置命令
SetCmdMap();

CString szPath;
//弹框获取调试进程目标文件地址
CFileDialog infdlg(TRUENULLNULLNULL“*.exe|*.exe|All Files|*.*||“);
    if(infdlg.DoModal() == IDOK)
    {
        szPath = infdlg.GetPathName();
    }
else
{
return 0;
}

STARTUPINFO si = {0};
si.cb = sizeof(si);
    PROCESS_INFORMATION pi = {0};
    DEBUG_EVENT DebugEvent;
    DWORD dwContinueStatus = DBG_EXCEPTION_NOT_HANDLED;
    CONTEXT Context;
    HANDLE hThread = NULL;
    HANDLE hProcess = NULL;

OPENTHREAD OpenThread = (OPENTHREAD)GetProcAddress(GetModuleHandle(“kernel32.dll“)“OpenThread“);
if (OpenThread == NULL)
{
ShowError();
goto EXIT_PROC;
}
    
    
    if(NULL == CreateProcess(NULL szPath.GetBuffer(NULL) NULL NULL FALSE
               DEBUG_ONLY_THIS_PROCESS NULL NULL &si &pi))
{
ShowError();
goto EXIT_PROC;
}

while(TRUE)
{
WaitForDebugEvent(&DebugEvent INFINITE);
//得到调试事件,这里准备后面函数要用到参数这里统一打开,关闭
hProcess = OpenProcess(PROCESS_ALL_ACCESS FALSE DebugEvent.dwProcessId);
if (hProcess == 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2443  2010-08-09 15:52  MyDbg\MyDbg\Disasm\Decode2Asm.cpp

     文件        988  2010-08-07 10:51  MyDbg\MyDbg\Disasm\Decode2Asm.h

     文件      85569  2012-07-24 18:10  MyDbg\MyDbg\Disasm\Disasm.cpp

     文件       4687  2010-08-09 15:50  MyDbg\MyDbg\Disasm\Disasm.h

     文件     364954  2010-05-18 12:08  MyDbg\MyDbg\Disasm\Dsasm_Functions.cpp

     文件      16968  2015-01-08 11:56  MyDbg\MyDbg\MyDbg.aps

     文件      75857  2015-01-10 18:31  MyDbg\MyDbg\MyDbg.cpp

     文件       4487  2015-01-09 21:33  MyDbg\MyDbg\MyDbg.dsp

     文件        533  2015-01-11 18:07  MyDbg\MyDbg\MyDbg.dsw

     文件       6739  2015-01-08 03:08  MyDbg\MyDbg\MyDbg.h

     文件      50176  2015-01-11 18:07  MyDbg\MyDbg\MyDbg.ncb

     文件      53760  2015-01-11 18:07  MyDbg\MyDbg\MyDbg.opt

     文件       1457  2014-12-27 16:24  MyDbg\MyDbg\MyDbg.rc

     文件       1598  2014-12-27 16:24  MyDbg\MyDbg\ReadMe.txt

     文件        446  2014-12-27 16:24  MyDbg\MyDbg\Resource.h

     文件        292  2014-12-27 16:24  MyDbg\MyDbg\StdAfx.cpp

     文件       1174  2015-01-03 21:12  MyDbg\MyDbg\StdAfx.h

     文件     143360  2015-01-11 18:00  MyDbg\MyDbg.exe

     文件        317  2015-01-11 18:08  MyDbg\说明.txt

     目录          0  2015-01-11 18:07  MyDbg\MyDbg\Debug

     目录          0  2015-01-11 17:59  MyDbg\MyDbg\Disasm

     目录          0  2015-01-11 18:07  MyDbg\MyDbg

     目录          0  2015-01-11 18:05  MyDbg

----------- ---------  ---------- -----  ----

               815805                    23


评论

共有 条评论

相关资源