Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Changing return type to one requiring indirect return does not update parameter locations

未关闭
#8,429 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
cpp

调研方向

Start by reproducing the behavior in Binary Ninja 5.4.10468-dev using the supplied binary, type definitions, and return-type changes. Verify the parameter locations for Class::small, Class::pair, Class::big, and Class::huge; done means this is not explicitly pinned to rdi for big or huge and indirect returns update the locations correctly.

由索引模型根据 Issue 内容生成。

描述

Core: Calling Convention

Version and Platform (required):

  • Binary Ninja Version: 5.4.10468-dev Ultimate, 32fed8b7
  • OS: macos
  • OS Version: 26.5.2
  • CPU Architecture: arm64

Bug Description:
Changing the return type of a function in a mac-x86_64 binary:

100000390    struct Class* Class::big(struct Class* this)

to Big results in:

100000390    struct Big Class::big(struct Class* this @ rdi)

Big is:

struct Big
{
    int64_t a;
    int64_t b;
    int64_t c;
    int64_t d;
};

and causes the return value to be passed indirectly. this should move to rsi, but becomes explicitly pinned to rdi.

Steps To Reproduce:

  1. Download dynamic mountain raises freely.
  2. Define these types:
struct Big
{
    int64_t a;
    int64_t b;
    int64_t c;
    int64_t d;
};

struct Class
{
    int64_t x;
};

struct Huge
{
    int64_t v[0x10];
};

struct Pair
{
    int64_t a;
    int64_t b;
};

struct Small
{
    int64_t a;
};
  1. Change the return types of each of Class::small, Class::pair, Class::big, and Class:huge to their matching type.

Expected Behavior:
this does not grow an explicit location in Class::big or Class::huge.

Binary:
dynamic mountain raises freely

主要语言
C++
星标
1.3k
派生
298
平均合并
4 天 13 小时
30 天内合并 PR
20

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Vector35/binaryninja-api 的其他 Issue

查看 Vector35/binaryninja-api 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。