Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何检测二进制文件中的(紧密)循环?_Assembly_Binary_Reverse Engineering_Disassembly_Objdump - Fatal编程技术网

Assembly 如何检测二进制文件中的(紧密)循环?

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

如何在x86_64上以二进制objdump反汇编格式检测(模式匹配)一个(紧密)循环

我想应该是这样的:
直接条件跳转到其前一个地址,前一个地址和此条件跳转分别是此循环的开始和结束。

“到其前一个地址”。谁以前的地址?如jl 0x555,
0x555
是它以前的地址。很抱歉混淆了,你是否介意这是一个循环,也可以通过任何随机跳跃进入中间?这是您应该检测是否有条件分支操作码向后运行的棘手部分。不幸的是,你永远无法知道它是否有效,或者它是否只是数据或指针,因此你会得到很多误报。我的主要目的是在二进制文件中找到潜在的性能成本最高的循环。因此,如果在循环中有一个跳转,或者在其他地方跳转,没有多大区别。