您能解释一下为什么 IDA-Pro 会与以下简单的x86 指令混淆吗?
...
.text:0000000000001885 jnz loc_1AD0
.text:000000000000188B loc_188B:
.text:000000000000188B mov byte ptr [var+9], 1
.text:000000000000188B some_func endp ; sp-analysis failed
.text:000000000000188B
.text:000000000000188B ; ---------------------------------------------------
.text:0000000000001890 db 4Ch
.text:0000000000001891 ; ---------------------------------------------------
.text:0000000000001891
.text:0000000000001891 _debug_info_seg_0:
.text:0000000000001891 mov eax, esp
.text:0000000000001893 cmp rbx, 20h
...
这种混乱迫使我手动将不正确的数据重新定义为代码,然后重新定义子程序以修复错误计算的 endp 位置。
...
.text:0000000000001885 jnz loc_1AD0
.text:000000000000188B loc_188B:
.text:000000000000188B mov byte ptr [r14+9], 1
.text:0000000000001890 mov rax, r12 <<<FIXED!>>>
.text:0000000000001893 cmp rbx, 20h
.text:0000000000001897 jb loc_1A80e
...
该问题在其他简单的 x86-x64 指令中多次发生。知道为什么吗?以及如何自动纠正这些?