我知道有人问过这个问题,但我已经按照每个步骤做了,似乎没有一个奏效。
我目前正试图了解一个可执行文件的功能,其中我没有得到源代码。这意味着我无法控制它的编译等等。它是一个ELF 64位LSB pie可执行文件,ARM aarch 64文件。
为此,我回想了我的计算机体系结构课程,在那里我们学习了如何使用gdb单步执行程序。我目前正在尝试使用它,但我遇到了一个奇怪的错误,当我试图在gdb调试器中运行时,沿着于这样的错误:
/bin/bash: line 1: /home/ec2-user/filename: cannot execute: required file not found
我说“一些沿着的东西”是因为我在Ubuntu 22示例和Amazon Linux示例中都尝试过。两者都返回与上述错误相同的错误。我的理智测试
gdb thisfiledoesnotexist
gdb在进入调试器时明确地告诉我该文件不存在,而对于filename,它只在我试图运行时才声明它。我可以设置断点,做一些你在没有框架或运行程序的情况下可以做的有限的事情。
需要注意的几点:
1.文件在~/
1.我在~/目录中运行了gdb
1.我在调试器中运行了dir /home/ec2-user
1.我做了一个“普通”安装,所以只需要sudoyum/apt安装
我测试了一个bash原生的日期文件,它确实工作,所以这不是gdb的问题。
这让我相信了以下几点:
1.此可执行文件不能很好地与gdb配合使用,但也不能与lldb配合使用
1.我无法正确配置gdb。
1.我在bin/bash中缺少一些东西来允许这个可执行文件运行
任何帮助都将不胜感激!
1条答案
按热度按时间9jyewag01#
ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64,
问题(很可能)是您的系统上不存在
/system/bin/linker64
。这可能是一个Android二进制文件(使用Bionic
libc
),您正在尝试在“常规”Linux上运行它。搜索"run android app on linux"提供了许多可能的答案,尽管我不确定哪一个在这里最合适。