学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

2万

积分

41

好友

1157

主题
发表于 2020-7-29 22:52:08 | 查看: 4143| 回复: 0
                                                                                        文章目录
  • 拆离调试器与被调试进程
  • 调试器退出时拆离被调试进程
  • 结束被调试进程
  网上很多帖子讲解调试器的理论、架构与实现,但是很少有帖子涉及到调试器与被调试进程的拆离以及如何结束被调试进程(换了百度、谷歌、必应均没有搜到相关的帖子)
我在这里简单说一下实现
拆离调试器与被调试进程  调用windowsAPI   DebugActiveProcessStop   停止调试器调试指定的进程
BOOL DebugActiveProcessStop(
  DWORD dwProcessId
);
  参数进程ID 可以在调试器创建进程时调用 CreateProcess 的最后一个参数 lpProcessInformation 中记录
创建完成调试进程后,别忘记调用 CloseHandle 关闭 lpProcessInformation 中的 进程与线程句柄
BOOL CreateProcessW(
  LPCWSTR               lpApplicationName,
  LPWSTR                lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL                  bInheritHandles,
  DWORD                 dwCreationFlags,
  LPVOID                lpEnvironment,
  LPCWSTR               lpCurrentDirectory,
  LPSTARTUPINFOW        lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);
typedef struct _PROCESS_INFORMATION {
  HANDLE hProcess;
  HANDLE hThread;
  DWORD  dwProcessId;
  DWORD  dwThreadId;
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
  拆离调试器与被调试进程别忘记修复断点,调用 ContinueDebugEvent 继续执行被调试线程
BOOL ContinueDebugEvent(
  DWORD dwProcessId,
  DWORD dwThreadId,
  DWORD dwContinueStatus
);
调试器退出时拆离被调试进程  windows默认调试器退出时终止被调试进程,
我们可以调用 DebugSetProcessKillOnExit 参数传入FALSE,来修改调试器退出时要执行的操作
可以多次调用此函数以根据需要更改操作
BOOL DebugSetProcessKillOnExit(
  BOOL KillOnExit
);
  KillOnExit  如果为TRUE,则线程将在退出时终止所有附加进程(请注意,这是默认设置);
KillOnExit  如果为FALSE,线程将与退出时正在调试的所有进程分离。
结束被调试进程  被调试进程只有与被调试进程拆离后,才可以正常的结束
调用 TerminateProcess 终止指定的进程及其所有线程
BOOL TerminateProcess(
  HANDLE hProcess,
  UINT   uExitCode
);
/* 例:*/
TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID), 0);
                                                                                                           
温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-4-24 01:44 , Processed in 0.091076 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表