使用x64dbg调试dll程序
这篇笔记是根据Lab16使用x64dbg调试带参数程序新增加的,记录了如何调试一个dll文件。
在很多时候一些程序会将核心功能放在
在
分析dll程序的启动方式
这个样本使用的是《恶意代码分析实战》第三章的
这个
1 | rundll32.exe Lab03-02.dll,installA |
下面用调试器来加载调试。
调试方式加载dll
为了能调试成功,先检查一下调试器的配置,开启
如果不开启程序不能被正确中断下来,接着开始调试
- 打开
rundll32.exe
-
配置调试参数
将要调试的dll和dll要使用的参数配置并启动,在启动参数的后面配置常规的
rundll32.exe dllname,exportName argumetns 的格式即可
接着打开断点窗口右键选择
设置好断点后如下
接着按下
如果没有提示来到入口就一次一次的按下
注意
这里加载的dll最好放在
加载的参数也要写对同样的路径
程序中断下来后,接着在关键位置设置断点分析,例如这里要观察dll的程序在入口的睡眠时间是否一致,
在调试器内设置这个断点并运行查看
这样就能正确调试dll程序了,后续有别的再继续补充。
总结
调试dll程序的步骤是
-
使用x64dbg打开rundll32.exe
-
接着设置命令行参数为
1C:\WINDOWS\system32\rundll32.exe C:\malwaredll\dllName,exportDllFunctionName arg1 arg2,...,argn -
设置好命令参数之后,打开断点窗口,右键
Add Dll breakpoint 写入要调试的dll的名称这里需要注意的是这个dll最好在
C:\malwaredll 这个目录下 -
最后按下
F9 运行观察加载的dll,当加载到目标的dll的入口时就表示程序加载成功并且可以正常调试 -
最后按照正常的调试思路进行即可。