执行脚本文件
1.把所有语句写在脚本文件的单行中,每个语句和命令之间用分号隔开,然后用$><等命令去运行脚本
2.在脚本文件中输入所有语句,每条语句占一行,然后使用$><等命令运行脚本,这些命令会打开脚本文件,用分号替换所有的回车符,然后把结果文件当作单一的命令块执行.
bu kernel32!LoadLibraryW " as /mu ${/v:$dllname} poi(@esp+4); .block { .if(1==$spat(@\"${$dllname}\", @\"*mm*\")) { du poi(@esp+4) .echo breakpoint OK } .else { du poi(@esp+4) gc } } "
我们输入这个脚本试试,然后bl
0 e 7627ef42 0001 (0001) 0:**** kernel32!LoadLibraryW ";;as /mu ${/v:$dllname} poi(@esp+4); .block;{;\t.if(1==$spat(@\"imm32.dll\", @\"*mm*\"));\t{;\t du poi(@esp+4);\t .echo breakpoint OK;\t};\t.else;\t{\t;\t du poi(@esp+4);\t gc;\t};};;"可以看到每个回车都被分号取代,所以你也可以直接输入:
bp kernel32!LoadLibraryW ";;as /mu ${/v:$dllname} poi(@esp+4); .block;{;\t.if(1==$spat(@\"imm32.dll\", @\"*mm*\"));\t{;\t du poi(@esp+4);\t .echo breakpoint OK;\t};\t.else;\t{\t;\t du poi(@esp+4);\t gc;\t};};;"
一样的效果