首页 > 其他分享 >使用 Visual Studio 断点调试 DLL

使用 Visual Studio 断点调试 DLL

时间:2024-02-19 12:22:24浏览次数:27  
标签:DLL Visual 源码 Debug 崩溃 断点 调试

继上文说到使用 IDA 和 WinDbg 调试无 dmp 文件 仅自己可见

 

那么在有源码的情况下可以直接断点调试 DLL,目的是查看 DLL 内部的函数调用

场景:

程序执行到某个 DLL 时突然崩溃,先确定 Debug 生成的 DLL 在程序中运行是否也会有闪退

如果有,则适用于 VS 断点调试

操作步骤:

在 Debug 下生成一个对应的 DLL

注意:必须是 Debug 生成的 DLL,不然没法断点

然后将 DLL 替换到崩溃程序的运行目录下,目的是崩溃程序运行时依赖的是 Debug 的 DLL

接着 VS 以 Debug 模式运行 DLL 的源码程序,并点击 Attach to Process

崩溃程序和 DLL 源码程序不是一回事,DLL 源码生成的 DLL 供崩溃程序使用的

选择要附加的进程,也就是我们之前运行的崩溃程序

 

 确定 Attach 成功后,崩溃程序调用到 Debug 的 DLL 时就会停在我们预先打的断点上,通过断点我们就可以单步调试来查看函数调用以找出崩溃的地方

 上面截图是 sentry-native 相关源码

标签:DLL,Visual,源码,Debug,崩溃,断点,调试
From: https://www.cnblogs.com/strive-sun/p/18020807

相关文章

  • 在 Visual Studio 2022 中创建一个类似于旧版本 Visual Studio 中的 Win32 Console Ap
    以下内容来自AI的回答,实测有效在VisualStudio2022中创建一个项目,其自动生成的源文件内容包含#include"stdafx.h"和使用_tmain作为入口点,意味着你需要创建一个基于Windows的传统控制台应用程序,这通常与旧版本的VisualStudio(如VisualStudio2005或更早)和使用预......
  • Java注解篇之@SuppressWarnings注解详解 代码编译通过且可以运行,但每行前面的“感叹号
    Java注解篇之@SuppressWarnings注解详解@SuppressWarnings作用:用于抑制编译器产生警告信息。它的注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量,但是建议注解声明在最接近警告发生的位置。去感叹号?我们经常遇到代码编译通过且可以运行,但每行前面的“感叹号”就......
  • 数学分析中间断点的类型
    在数学分析中,函数的间断点是指函数在该点附近的行为表现出不一致或者极端性的点。间断点的类型主要有两种:第一类间断点和第二类间断点。第一类间断点:可去间断点和跳跃间断点。可去间断点(RemovableDiscontinuity):如果函数在某点的左极限和右极限都存在且相等,但函数在该点要么没有......
  • Visual Assist X使用技巧
     限制vax最大使用的cpu核心数为4regadd"hkcu\software\WholeTomato"/vMaxConcurrency/tREG_DWORD/d4/f 使用PDBExplorer查看Release版pdb中的符号①非调试态,查看nico相关的符号  注:通过填写模块的基地址“Baseaddress”的值来计算所有符号的地址注:windbg......
  • DPInst64.exe difxapi64.dll 是什么 为什么
    DPInst64.exe:安装和卸载驱动程序包。默认情况下,该工具将搜索当前目录,并尝试安装找到的所有驱动程序包。用法:C:\Users\Administrator\Desktop\dp\dp\DPInst64.exe[/UINF文件][/S|/Q][/LM][/P][/F][/SH][/SA][/A][/PATH路径][/EL][/L语言ID][/C][/D][/LogTitle标题][/SW][/?......
  • 【译】我为 .NET 开发人员准备的 2023 年 Visual Studio 10 大新功能
    原文|JamesMontemagno翻译|郑子铭VisualStudio2022在2023年发布了许多令人难以置信的功能,为.NET开发人员提供了大量新工具来提高他们的工作效率。有这么多可供选择,我精心挑选了一个包括编辑器改进、生产力更新和人工智能辅助的选项。让我们来探讨一些最有影响力的功......
  • DLL劫持
    DLL劫持DLL是Windows上的动态链接库的文件格式而DLL劫持是攻击者是利用一些缺陷,使得进程在加载原本DLL时加载了攻击者准备好的恶意DLL文件对于渗透测试,DLL劫持是我们在权限维持阶段常用的trick,同时也是白加黑免杀的一种技巧DLL开发以及调用选用windows上的visualstudio这款I......
  • 全自动替换 ExplorerFrame.dll
    @echooffecho.echo全自动替换ExplorerFrame.dll,任意键继续……echo请确保以管理员身份运行本程序,并且待替换文件在同目录下。pause>nulecho.echo获取管理员权限...takeown/fC:\windows\system32\ExplorerFrame.dll/aicaclsC:\windows\system32\ExplorerFrame.......
  • NET项目&DLL反编译&MSSQL监控&VS搜索&注入&上传
    知识点1.NET普通源码&编译源码2.DLL反编译&后缀文件&指向3.代码审计-SQL注入&文件上传ASPX文件->CSASPX.CSDLL反编译后寻找看核心代码分析漏洞CSASPX.CSDLL反编译文件->ASPX文件寻找确定漏洞进行调试测试代码审计时要把这个反编译文件提取导入到IDE中后期搜索关......
  • Chrome修改添加JS与dll交互
    注入dll后拦截js相关函数,可以通讯以及控制安全沙箱问题前面有写文章为了方便快速,使用Uint8Array::Set函数拦截之前尝试了crypto.subtle相关的函数,这些函数速度很慢,而且是异步,很不方便C++的dll代码BOOL CChrome::HookUint8ArraySetByte(){ BYTE *pCode; BOOL......