angr / angr/angr-management

Branches that leave the function are not always clickable

未关闭
#43 1 条评论 0 个 reaction 已指派 1 人 已被 @ltfish 认领 在 GitHub 查看
bug
主要语言
Python
星标
1.2k
派生
131
平均合并
1 天 11 小时
30 天内合并 PR
14

描述

Consider the following small program:

```
global _start

_start:
call main

main:
mov rdi, 42
mov rax, 60
syscall
ret
```

When loading that program into `angr-management`, the `_start` function is displayed like this:

![pic](https://user-images.githubusercontent.com/3192959/37642571-df4dbc9c-2c1d-11e8-87ec-4792a28f0281.png)

Note that the `main` reference is not clickable (it would have a different color if it was clickable).

The reason for this is that when building the supergraph, edges to blocks outside of the current function are removed. When we later register the out branches of each node, the `_start` node no longer has any outgoing edges (since they got removed in the first step).

It only works correclty if `main` is identified as a `FunctionNode`, but not all branch targets that leave the current function lead to a `FunctionNode`.

贡献指南

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

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

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