首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angr中,如何加载和分析只包含函数指令的二进制文件,而不是ELF文件。

在angr中,如何加载和分析只包含函数指令的二进制文件,而不是ELF文件。
EN

Stack Overflow用户
提问于 2017-02-13 09:05:01
回答 1查看 504关注 0票数 1

我有一些二进制文件,每个文件都包含一个函数的指令,(最后可能更多)。文件的开始也是函数的起点。

该文件是从ELF file.The平台arm64中提取的。

那么,如何使用angr加载和分析这个文件呢?

目标:

每个函数都有一个"switch语句“,目标是获取所有的case表达式的中间部分。

示例(C代码):

代码语言:javascript
复制
void func1(int cmd){
    switch (cmd) {
    case 1:
        xxxx
        break;
    case 10:
        yyyy;
        break;
    }
}

结果:1 10

EN

回答 1

Stack Overflow用户

发布于 2017-07-31 09:11:58

我的建议是不要在本例中使用angr,因为您可以更容易地提取所有案例,例如使用r2pipe。我已经为你们创造了一个简单的例子,我希望这会有所帮助。

C码

代码语言:javascript
复制
int main(int argc, char* argv[]) {

    switch(argc) {
        case 1:
            break;
        case 2:
            break;
        default:
            break;
    }

}

python脚本

代码语言:javascript
复制
import r2pipe

r2 = r2pipe.open("switch")

r2.cmd("aa")

r2.cmdj('s main')
instructions = r2.cmdj('pdfj')

for instruction in instructions['ops']:
    if ( instruction["type"] == "cmp" ):
        print instruction["ptr"]

输出:

代码语言:javascript
复制
r2pipe.cmdj.Error: No JSON object could be decoded
1
2

我不确定在输出开始时有什么错误消息。

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42200236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档