能力值:
( LV2,RANK:10 )
|
-
-
2 楼
在OD反汇编窗口,右击,查找->所有命令,输入“call reg[32]”,单击查找。在弹出的查找结果窗口中右击,在每个命令上设置断点。如果有部分没有被断的,用F2断下即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
分析下你问题:
1. 断点有两类,一类是cpu支持的数据断点,一类是调试器实现的普通断点。你要的断点只能通过普通断点间接实现。
2. 普通断点的实现是,调试器更改被调试程序的内存,将代码段的指令改成int3(cc),触发断点后再由调试器恢复。
3. 根据你的情况,需要在搜索所有汇编,在找到的位置插入断点。因为刚才说的断点的实现,加错位置的断点是有风险的,所以要精确添加。
4. 批量查找添加,这类操作肯定由脚本一类的实现比较好。windbg可以做到这些,不过代价会比较大,s命令可以查找但要精确判断是否是汇编指令还需要其他验证,# call????e[a-ds][ix]这个命令可以精确查找但是输出格式受限,所以还要加一堆解析判断,最终要做的会比较多。
做你想要的这种断点的工作量会比较大,实际上你想要达到的效果肯定可以通过其他的方式来实现,花费绝对比这个要小很多。
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
脚本搜索指令,不过有可能下到其他指令中间
|
|
|