我阅读了 Tess 的关于dump the asp.net request的博客,我阅读了代码,我想知道为什么 .foreach 命令在博客的代码中需要如此多的“/ps 99”开关。
例如代码:
$$ RETURNCODE = CONTEXT->RESPONSE->_STATUSCODE ((CONTEXT+0X14)+50)
$$ ----------------------------------------------------------------------------------
.foreach /pS 2 /ps 99 (token {?poi(poi(${hc}+0x14)+50)}){
.printf "${token}\t\t"
};
这段代码在 .net 2 上,我在自己的 .net 4 上做了一些测试,
RETURNCODE = CONTEXT->RESPONSE->_STATUSCODE ((CONTEXT+0X28)+b0),.net4 上的偏移量已更改。
0:000> ? poi(0x00000000ffc59a58+0x28)+0xb0
Evaluate expression: 4291217184 = 00000000`ffc6c720
0:000> ? poi(poi(0x000000011fa2b948+0x28)+0xb0)
Evaluate expression: 200 = 00000000`000000c8
.foreach
/pS 2 --> 表示跳过最初的 2,因此前两个 'Evaluate expression:' 将跳过。
/ps 99 --> 但是为什么这里需要 99?