下面命令对32位程序有效,当修改内存属性为读写执行并大小是0x57e0时断下,并打印出地址、大小、和新属性值
bp kernel32!VirtualProtect ".if((poi(@esp+4*3)==40)&(poi(@esp+4*2)==57e0)){.printf \"addr=0x%08x size=0x%08x newProtect=0x%08x\\n\",poi(@esp+4),poi(@esp+4*2),poi(@esp+4*3);.echo hit!!! }.else{gc}; " "
比较坑的是.printf命令,换行要用\\n才行。
.if()中两个条件 用一个&符号分割