当前位置:Gxlcms > 数据库问题 > 再谈Windbg脚本装载指令

再谈Windbg脚本装载指令

时间:2021-07-01 10:21:17 帮助过:4人阅读

示例如下:

  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  2. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> .<span style="color: #0000ff;">echo</span><span style="color: #000000;"> hello windbg
  3. hello windbg
  4. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $< f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  5. Command </span><span style="color: #0000ff;">file</span><span style="color: #000000;"> execution failed, Win32 error 0n123
  6. </span><span style="color: #800000;">"</span><span style="color: #800000;">文件名、目录名或卷标语法不正确。</span><span style="color: #800000;">"</span>
  7. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $><f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  8. hello windbg
  9. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $>< f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  10. Command </span><span style="color: #0000ff;">file</span><span style="color: #000000;"> execution failed, Win32 error 0n2
  11. </span><span style="color: #800000;">"</span><span style="color: #800000;">系统找不到指定的文件。</span><span style="color: #800000;">"</span>

两个$装载的

  • $$<filename
  • $$><Filename

支持Filename之前带空格

示例如下:

  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  2. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> .<span style="color: #0000ff;">echo</span><span style="color: #000000;"> hello windbg
  3. hello windbg
  4. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$< f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  5. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> .<span style="color: #0000ff;">echo</span><span style="color: #000000;"> hello windbg
  6. hello windbg
  7. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$><f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  8. hello windbg
  9. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>< f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  10. hello windbg</span>

所以,建议用$$

脚本参数传递问题

使用形式如下:

  1. $$>a< Filename [arg1 arg2 arg3 ... ]

argn:指定任意数目的参数,用于调试器传送给脚本,在执行脚本文件之前,脚本文件中任意${$argn}格式的字符串,对应被调试器传送进来的argn替换,
参数中不能包括引号或分号,多个参数应该用空格来分隔开,如果一个参数包含了空格,那么就用引号把它括起来,你可以使用任意多的参数,如果这个参数没被传入,就直接显示${$arg1}
看如下脚本:

  1. .<span style="color: #0000ff;">echo</span><span style="color: #000000;"> 第一个参数 ${$arg1}.
  2. .</span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> 第五个参数 ${$arg5}.
  3. .</span><span style="color: #0000ff;">echo</span> 第四个参数${$arg4}.

执行情况如下:

  1. 不传参数
    1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
    2. 第一个参数 ${$arg1}.
    3. 第五个参数 ${$arg5}.
    4. 第四个参数${$arg4}.</span>
  2. 全部参数
    1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds a b c d e f
    2. 第一个参数 a.
    3. 第五个参数 e.
    4. 第四个参数d.</span>
  3. 部分参数
    1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds a b c d
    2. 第一个参数 a.
    3. 第五个参数 ${$arg5}.
    4. 第四个参数d.</span>
  4. 参数带空格
    先看没有空格的
    1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds ab bc cd de ef
    2. 第一个参数 ab.
    3. 第五个参数 ef.
    4. 第四个参数de.</span>

    带空格不加引号

    1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds ab bc cd de e f
    2. 第一个参数 ab.
    3. 第五个参数 e.
    4. 第四个参数de.</span>

    带空格加引号

    1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a<f:\<span style="color: #800080;">1</span>.wds ab bc cd de <span style="color: #800000;">"</span><span style="color: #800000;">e f</span><span style="color: #800000;">"</span><span style="color: #000000;">
    2. 第一个参数 ab.
    3. 第五个参数 e f.
    4. 第四个参数de.</span>

其他

$$>a< script文件参数中带空格:那么就把它用双引号括起来,这同样适用于Filename

  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a< C:\Program Files\<span style="color: #800080;">1</span>.<span style="color: #000000;">wds</span> <span style="color: #800080;">1</span> <span style="color: #800080;">2</span> <span style="color: #800080;">3</span> <span style="color: #800080;">4</span><span style="color: #000000;">
  2. Command </span><span style="color: #0000ff;">file</span><span style="color: #000000;"> execution failed, Win32 error 0n2
  3. </span><span style="color: #800000;">"</span><span style="color: #800000;">系统找不到指定的文件。</span><span style="color: #800000;">"</span>
  4. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$>a< <span style="color: #800000;">"</span><span style="color: #800000;">C:\Program Files\1.<span style="color: #000000;">wds</span></span><span style="color: #800000;">"</span> <span style="color: #800080;">1</span> <span style="color: #800080;">2</span> <span style="color: #800080;">3</span> <span style="color: #800080;">4</span><span style="color: #000000;">
  5. The first argument is </span><span style="color: #800080;">1</span><span style="color: #000000;">.
  6. The fifth argument is ${$arg5}.
  7. The fourth argument is </span><span style="color: #800080;">4</span>.

如果使用$<或$><,你不能在Filename之前加任意空格,你也不能使用引号把Filename括起来,你也不能在这个命令后加分号或其他命令!

  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $><f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  2. The first argument is ${$arg1}
  3. The fifth argument is ${$arg5}
  4. The fourth argument is ${$arg4}
  5. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $>< f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  6. Command </span><span style="color: #0000ff;">file</span><span style="color: #000000;"> execution failed, Win32 error 0n2
  7. </span><span style="color: #800000;">"</span><span style="color: #800000;">系统找不到指定的文件。</span><span style="color: #800000;">"</span>
  8. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $>< <span style="color: #800000;">"</span><span style="color: #800000;">f:\1.wds“;</span>
  9. Command <span style="color: #0000ff;">file</span><span style="color: #000000;"> execution failed, Win32 error 0n2
  10. </span><span style="color: #800000;">"</span><span style="color: #800000;">系统找不到指定的文件。</span><span style="color: #800000;">"</span>
  11. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $><c:\<span style="color: #800080;">1</span><span style="color: #000000;">.txt;r eax
  12. Command </span><span style="color: #0000ff;">file</span><span style="color: #000000;"> execution failed, Win32 error 0n2
  13. </span><span style="color: #800000;">"</span><span style="color: #800000;">系统找不到指定的文件。</span><span style="color: #800000;">"</span>

 如果你使用$$<或><,那么Filename之前可以不带空格,你能在这个命令之后使用一个分号或其他命令,你可以选择Filename使用引号括起来,但不是必需的,即使Filename中含有空格或同一行中有其他命令(这个前面肯定要带分号来分隔不同命令):

  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$> f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  2. The first argument is ${$arg1}
  3. The fifth argument is ${$arg5}
  4. The fourth argument is ${$arg4}
  5. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$><f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  6. The first argument is ${$arg1}
  7. The fifth argument is ${$arg5}
  8. The fourth argument is ${$arg4}
  9. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$><<span style="color: #800000;">"</span><span style="color: #800000;">f:\1.wds</span><span style="color: #800000;">"</span><span style="color: #000000;">
  10. The first argument is ${$arg1}
  11. The fifth argument is ${$arg5}
  12. The fourth argument is ${$arg4}
  13. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $$><f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds; r ebx
  14. The first argument is ${$arg1}
  15. The fifth argument is ${$arg5}
  16. The fourth argument is ${$arg4}
  17. ebx</span>=<span style="color: #800080;">00000000</span>

也就是><<会把分号之前(如果没有分号就是整行)都当成Filename。

$< 和$$<关键字逐个执行脚本文件中的命令(多个命令就是一个一个命令输出)。

$><和$$><关键字打开脚本文件,将所有回车替换为分号,然后将转换后的文本当作单个命令块来执行。这些关键字在运行包含调试器命令程序的脚本时非常有用。

注意是<和><的区别

1.wds改成如下:

  1. <span style="color: #000000;"> .echo cmd1
  2. .echo cmd2</span>

执行:

  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $<f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  2. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> .<span style="color: #0000ff;">echo</span><span style="color: #000000;"> cmd1
  3. cmd1
  4. </span><span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> .<span style="color: #0000ff;">echo</span><span style="color: #000000;"> cmd2
  5. cmd2</span>
  1. <span style="color: #800080;">0</span>:<span style="color: #800080;">000</span>> $><f:\<span style="color: #800080;">1</span><span style="color: #000000;">.wds
  2. cmd1
  3. cmd2</span>

再谈Windbg脚本装载指令

标签:其他   execution   failed   -o   led   lan   多个   ror   语法   

人气教程排行