Assembly 如何检测二进制文件中的(紧密)循环?
如何在x86_64上以二进制objdump反汇编格式检测(模式匹配)一个(紧密)循环 我想应该是这样的:Assembly 如何检测二进制文件中的(紧密)循环?,assembly,binary,reverse-engineering,disassembly,objdump,Assembly,Binary,Reverse Engineering,Disassembly,Objdump,如何在x86_64上以二进制objdump反汇编格式检测(模式匹配)一个(紧密)循环 我想应该是这样的: 直接条件跳转到其前一个地址,前一个地址和此条件跳转分别是此循环的开始和结束。“到其前一个地址”。谁以前的地址?如jl 0x555,0x555是它以前的地址。很抱歉混淆了,你是否介意这是一个循环,也可以通过任何随机跳跃进入中间?这是您应该检测是否有条件分支操作码向后运行的棘手部分。不幸的是,你永远无法知道它是否有效,或者它是否只是数据或指针,因此你会得到很多误报。我的主要目的是在二进制文件中找
直接条件跳转到其前一个地址,前一个地址和此条件跳转分别是此循环的开始和结束。“到其前一个地址”。谁以前的地址?如jl 0x555,
0x555
是它以前的地址。很抱歉混淆了,你是否介意这是一个循环,也可以通过任何随机跳跃进入中间?这是您应该检测是否有条件分支操作码向后运行的棘手部分。不幸的是,你永远无法知道它是否有效,或者它是否只是数据或指针,因此你会得到很多误报。我的主要目的是在二进制文件中找到潜在的性能成本最高的循环。因此,如果在循环中有一个跳转,或者在其他地方跳转,没有多大区别。