windbg-.foreach循环输入(windbg script)
.foreach
.foreach 关键字分析一个或多个命令的输出并将该输出中每一个值作为另一个或多个命令的输入
.foreach [Options] ( Variable { InCommands } ) { OutCommands }
.foreach [Options] /s ( Variable "InString" ) { OutCommands }
.foreach [Options] /f ( Variable "InFile" ) { OutCommands }
Options
可以是下面选项的任意组合:
/pS InitialSkipNumber
使得开头的一些符号被跳过。InitialSkipNumber 指定不传递给OutCommands 的输出关键字的数量。
/ps SkipNumber
每次执行命令时都会跳过一些符号。每次将符号传递给OutCommands 之后,SkipNumber 个数的符号都会被忽略
我们首先搜索下带字符T的地址有哪些:
- 0:000> s -[1]a 0029eeec L1000 "T"
- 0x0029eefb
- 0x0029ef03
- 0x0029ef0b
- 0x0029ef15
- 0x0029f034
- 0x0029f06a
- 0x0029f07a
- 0x0029f08a
- 0x0029f09e
- 0x0029f356
- 0x0029f7f0
- 0x0029f989
- 0x0029fa50
然后我们用.foreach把它们da出来
- 0:000> .foreach(place{s -[1]a 0029eeec L1000 "T"}){da ${place}}
- ^ Syntax error in '.foreach(place{s -[1]a 0029eeec L1000 "T"}){da ${place}}'
- 0:000> .foreach(place {s -[1]a 0029eeec L1000 "T"}){da ${place}}
- 0029eefb "Tencent\TSVulFw\TSVulFW.DAT"
- 0029ef03 "TSVulFw\TSVulFW.DAT"
- 0029ef0b "TSVulFW.DAT"
- 0029ef15 "T"
- 0029f034 "T"
- 0029f06a "T"
- 0029f07a "T"
- 0029f08a "T"
- 0029f09e "T"
- 0029f356 "TxSignDemo"
- 0029f7f0 "T.)"
- 0029f989 "Ti.."
- 0029fa50 "T.)"
注意place和{之间必须有空格!
现在从第三个开始,每隔一个显示一个:
- 0:000> .foreach/pS3 /ps1(place {s -[1]a 0029eeec L1000 "T"}){da ${place}}
- 0029ef15 "T"
- 0029f06a "T"
- 0029f08a "T"
- 0029f356 "TxSignDemo"
- 0029f989 "Ti.."
InFile
和/f 一起使用。指定要解析的文本文件;结果会传递给OutCommands 。文件名InFile 必须用引号括起来我们在C盘建立个2.txt,内容为:
- 0x0029eefb
- 0x0029ef03
- 0x0029ef0b
- 0x0029ef15
- 0x0029f034
- 0x0029f06a
- 0x0029f07a
- 0x0029f08a
- 0x0029f09e
- 0x0029f356
- 0x0029f7f0
- 0x0029f989
- 0x0029fa50
运行命令:
- 0:000> .foreach/f (place "c:\2.txt"){da ${place}}
- 0029eefb "Tencent\TSVulFw\TSVulFW.DAT"
- 0029ef03 "TSVulFw\TSVulFW.DAT"
- 0029ef0b "TSVulFW.DAT"
- 0029ef15 "T"
- 0029f034 "T"
- 0029f06a "T"
- 0029f07a "T"
- 0029f08a "T"
- 0029f09e "T"
- 0029f356 "TxSignDemo"
- 0029f7f0 "T.)"
- 0029f989 "Ti.."
- 0029fa50 "T.)"
当InCommands 的输出、InString 字符串或InFile 被解析时,任何数量的空格、tab符或回车都将会被当作单个分隔符。文本被分隔成的小片段被用来替换OutCommands 中的Variable
和/s 一起使用。指定一个要解析的字符串;结果会传递给OutCommands
- 0:000> .foreach/s (place "0029ef03;0029ef0b"){da ${place} }
- 0029ef03 "TSVulFw\TSVulFW.DAT"
- ^ Syntax error in 'da 0029ef03;0029ef0b '
- 0:000> .foreach/s (place "0029ef03 0029ef0b"){da ${place}}
- 0029ef03 "TSVulFw\TSVulFW.DAT"
- 0029ef0b "TSVulFW.DAT"
所以,只是把空格,tab当成分隔符,不是分号!此原则适用于string和file
windbg-.foreach循环输入(windbg script)的更多相关文章
- Java语法糖1:可变长度参数以及foreach循环原理
语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...
- 巧用array_map()和array_reduce()替代foreach循环
1.array_reduce( $arr , callable $callback ) 使用回调函数迭代地将数组简化为单一的值. 其中$arr 为输入数组,$callback($result , $v ...
- 程序控制结构及for循环、foreach循环、迭代器
结构化程序设计 三种基本控制结构:顺序结构.选择结构.循环结构. 在这种思想的指导下,发展出了面向过程编程方式.面向过程编程的核心是算法+数据结构.算法可以用顺序.选择.循环这三种基本控制结构来实现. ...
- 可变长度参数以及foreach循环原理
语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...
- java——集合、泛型、ArrayList、LinkedList、foreach循环、模拟ktv点歌系统
集合:一系列特殊的类,这些类可以存储任意类型的对象,长度可变,集合类都在java.util包中. 但是集合记不住对象的类型,当把对象从集合中取出时这个对象的编译类型就变成了Object类型.这样在取元 ...
- PHP数组foreach循环如何实现逆序访问?
PHP数组foreach循环如何实现逆序访问? 一.总结 1.array_reverse($array) :foreach(array_reverse($array) as $key=>$val ...
- 项目遇到的问题:页面c:forEach循环的数据进行计算传回后台并保持到数据库
应该还有更简单的方法 但是我不晓得 手动给文本框输入数据保存到数据库 A表 :通过订单编号 查询数据获得 B表 :通过A表中的字段查询遍历获得 问题: 手动输入文本框内容 保存到数据库 页面form提 ...
- java语法糖:(1)可变长度参数以及foreach循环原理
语法糖 语法糖:是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用 ...
- for循环,for…in循环,forEach循环的区别
for循环,for…in循环,forEach循环的区别for循环通关for循环,生成所有的索引下标for(var i = 0 ; i <= arr.length-1 ; i++){ 程序内容 } ...
随机推荐
- MySQL在线大表DDL操作 (转)
http://www.cnblogs.com/janehoo/p/5382474.html 线大表DDL操作的方法: 1.主从架构轮询修改 需要注意: a.主库会话级别的记录binglog的参数关闭 ...
- Cognos11中关于CJAP第三方认证的相关配置
cognos11同样适用于自定义java程序的第三方认证,而且在测试方面给了直观的测试接口,如下图所示 当用户配置好了自定义java程序的认证之后,程序会提示用户输入我们自己的认证库用户信息例如adm ...
- Android 模仿QQ空间风格的 UI
本文内容 环境 演示模仿QQ空间风格的UI 虽然这个 UI 跟现在的QQ空间有点差别,但是也能学到很多东西. 下载 Demo 环境 Windows 7 64 位 Eclipse ADT V22.6.2 ...
- 【树莓派】在树莓派的Android系统中安装APK应用
树莓派3 Android TV安装APK应用教程 本文摘自:http://www.mz6.net/news/android/6867.html 树莓派3 Android TV怎样安装软件?对于熟悉AD ...
- 转:FSMT:文件服务器从03迁移到08R2实战演练
另外参见:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=282 以前做过一个项目,是把文件服务器从03升级到0 ...
- cmder切换路径、设置命令别名
alias alias hub= cd /d d:github/ cd $ help cd 显示当前目录名或改变当前目录. CHDIR [/D] [drive:][path] CHDIR [..] C ...
- hadoop mahout 算法和API说明
org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.main(args) --input 偏好数据路径,文本文件.格式 userid\t ite ...
- Spring Boot 之 RESTfull API简单项目的快速搭建(三)
1.运行打包后的项目 java -jar spring-boot-demo-2-1-0.0.1-SNAPSHOT.jar
- http 请求报文
1.报文 2.http请求方法 restful接口 post:创建 put:更新
- SSM实战——秒杀系统之高并发优化
一:高并发点 高并发出现在秒杀详情页,主要可能出现高并发问题的地方有:秒杀地址暴露.执行秒杀操作. 二:静态资源访问(页面)优化——CDN CDN,内容分发网络.我们把静态的资源(html/css/j ...