前言
今天在调试, 要对DLL下断点.
等下次要继续调试时(重新打开windbg), 还是要重新在windbg中下断点.
好烦, 写了一个脚本,等下次用windbg附加目标软件后, 在windbg命令行上载入脚本,让脚本将断点帮我下全了.
下断点的脚本
$$
$$ @filename : set_bp_on_net_shell_dll.wds
$$ @brief : set breakpoint on netshell.dll's export functions
$$ @note : usage => $$>< F:\my_dbg_script\set_bp_on_net_shell_dll.wds
$$
$$ .cls can't use on windbg's script
.printf /oD "set breakpoint on netshell.dll's export functions\n";
.block
{
bc*
.echo >> set breakpoint begin
$$ api count = 30
bp NETSHELL!DoInitialCleanup
bp NETSHELL!HrCreateDesktopIcon
bp NETSHELL!HrGetAnswerFileParametersForNetCard
bp NETSHELL!HrGetExtendedStatusFromNCS
bp NETSHELL!HrGetIconFromMediaType
bp NETSHELL!HrGetInstanceGuidOfPreNT5NetCardInstance
bp NETSHELL!HrGetNetConExtendedStatusFromGuid
bp NETSHELL!HrGetNetConExtendedStatusFromINetConnection
bp NETSHELL!HrGetStatusStringFromNetConExtendedStatus
bp NETSHELL!HrIsIpStateCheckingEnabled
bp NETSHELL!HrLaunchConnection
bp NETSHELL!HrLaunchConnectionEx
bp NETSHELL!HrLaunchNetworkOptionalComponents
bp NETSHELL!HrOemUpgrade
bp NETSHELL!HrRenameConnection
bp NETSHELL!HrRunWizard
bp NETSHELL!InvokeDunFile
bp NETSHELL!NcFreeNetconProperties
bp NETSHELL!NcIsValidConnectionName
bp NETSHELL!NetSetupAddRasConnection
bp NETSHELL!NetSetupFinishInstall
bp NETSHELL!NetSetupInstallSoftware
bp NETSHELL!NetSetupPrepareSysPrep
bp NETSHELL!NetSetupRequestWizardPages
bp NETSHELL!NetSetupSetProgressCallback
bp NETSHELL!NormalizeExtendedStatus
bp NETSHELL!RaiseSupportDialog
bp NETSHELL!RepairConnection
bp NETSHELL!StartNCW
bp USER32!SetDlgItemTextW
$$ break point disable index 29 => USER32!SetDlgItemTextW
bd 29
.echo << set breakpoint end
bl
}