能力值:
( LV3,RANK:20 )
|
-
-
2 楼
bu USER32!InternalCallWinProc ".if(poi(ebp+0ch)=202) {.echo; .printf\"InternalCallWinProc\"; .echo; ?@esp;d @esp } .else {.echo; .printf\"InternalCallWinProc\"; .echo; ?@esp;d @esp; gc; } "
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
bu USER32!TranslateMessageEx+0x5h "r $t1=poi(ebp); r $t2=poi(ebp+04h); r $t3=poi(ebp+08h); .block {.if(poi(ebp+04h)=202) {.echo; .printf\"TranslateMessageEx--handle::%08x\r\n\",$t1; .echo; .printf\"TranslateMessageEx--Msg::%08x\r\n\",$t2; .echo; .printf\"TranslateMessageEx--wParam:%08x\r\n\",$t3; } .else {.echo; .printf\"TranslateMessageEx--handle::%08x\r\n\",$t1; .echo; .printf\"TranslateMessageEx--Msg::%08x\r\n\",$t2; .echo; .printf\"TranslateMessageEx--wParam:%08x\r\n\",$t3; gc; } }"
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
@(ebp+8) 是什么意思?
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
记得@是表明后面的符号是个寄存器,不会再去搜索符号表,而ebp+8明显是个表达式,最终是个数值,不知道说的对不对,菜鸟路过。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
bp user32!translatemessage ".if (poi(poi(ebp+8)+4)=0x202){} .else {gc;}"
这样就可以,验证过!OK!
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
寄存器名称前都加@比较好,这样不会解析成符号
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
poi()这个方法很好,在windbg的帮助中有介绍。有兴趣的朋友可以看一看。
|
|
|