使用x64dbg调试dll程序 |
您所在的位置:网站首页 › ollydbg下断点 › 使用x64dbg调试dll程序 |
使用x64dbg调试dll程序
这篇笔记是根据Lab16使用x64dbg调试带参数程序新增加的,记录了如何调试一个dll文件。 在很多时候一些程序会将核心功能放在dll文件内来完成,这样避免程序被查杀或者被逆向分析,主要手段是通过LoadLibrayA函数来加载一个dll文件,同时这个dll的DllMain函数会被调用以此来达到执行dll的程序。 在Windows上要独立执行一个dll程序,那么需要用到rundl32.exe来完成,因此可以借助这个程序来达到调试dll的目的。 分析dll程序的启动方式这个样本使用的是《恶意代码分析实战》第三章的Lab03-02.dll,查看这个dll的导出符号 这个dll的启动方式可以使用rundll32.exe dllname,ExportName arguments的格式来启动,启动如下 rundll32.exe Lab03-02.dll,installA下面用调试器来加载调试。 调试方式加载dll为了能调试成功,先检查一下调试器的配置,开启system breakpoints Entry point的选项 如果不开启程序不能被正确中断下来,接着开始调试dll 打开rundll32.exe配置调试参数 将要调试的dll和dll要使用的参数配置并启动,在启动参数的后面配置常规的rundll32.exe dllname,exportName argumetns的格式即可 接着打开断点窗口右键选择Add Dll breakpoint然后输入要调试的dll名称,如下 设置好断点后如下 接着按下F9逐个加载dll,观察好加载的状态,当被调试的dll执行到入口处就表示程序已经启动成功 如果没有提示来到入口就一次一次的按下F9,接着就能正确调试了。 注意这里加载的dll最好放在C:\myDir等这样的目录,例如我这里的是 加载的参数也要写对同样的路径 程序中断下来后,接着在关键位置设置断点分析,例如这里要观察dll的程序在入口的睡眠时间是否一致,
调试dll程序的步骤是 使用x64dbg打开rundll32.exe 接着设置命令行参数为 C:\WINDOWS\system32\rundll32.exe C:\malwaredll\dllName,exportDllFunctionName arg1 arg2,...,argn设置好命令参数之后,打开断点窗口,右键Add Dll breakpoint写入要调试的dll的名称 这里需要注意的是这个dll最好在C:\malwaredll这个目录下 最后按下F9运行观察加载的dll,当加载到目标的dll的入口时就表示程序加载成功并且可以正常调试 最后按照正常的调试思路进行即可。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |