IDA Pro 中的奇怪函数:只有一个以 jmp sub_xxxxxx 结尾的基本块(而不是 ret)

逆向工程 艾达 拆卸 蟒蛇 编译器 职能
2021-07-01 22:02:40

没有 ret 作为最后一条指令但跳转到标签的 IDA Pro 函数

在分析 ELF 文件 /usr/bin/curl(Ubuntu 14.04,64 位)时,我偶然发现了一个奇怪的函数(见图)。它被定期调用 viacall sub_403D90但不以 ret 结尾。相反,它跳转到一个标签/另一个函数 ( sub_403C90)。这很奇怪,因为似乎没有返回到sub_403D90,因为从sub_403C90控制流开始,没有跳转,只有 rets。

有人可以向我解释这是为什么吗?有道理吗?

1个回答

这只是一点点优化。Acall xxxx后跟 aret可以优化为 a jmp xxxx