Нет такого файла или каталога в двоичном файле, который существует - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь запустить бинарный файл из набора Гидры. (На самом деле, я запускаю саму ghidra, но он не запускает бинарный файл изнутри.)

[nix-shell:~]$ ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile 
bash: ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile: No such file or directory

Не могу понять, в чем проблема: я прочитал недостающие библиотеки может вызвать это, и ldd сообщил, что libstdc ++. so.6 отсутствует. После долгих гадостей по поводу подбора libstdc ++. So.6 (кажется, что там nix усложняет жизнь), меня встречает та же ошибка:

[nix-shell:~]$ ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile 
bash: ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile: No such file or directory

[nix-shell:~]$ ldd ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile 
        linux-vdso.so.1 (0x00007fffd9293000)
        libstdc++.so.6 => /nix/store/f09zmq3sqiy0dnx8g4f1arngkjd4kih7-gcc-7.4.0-lib/lib64/libstdc++.so.6 (0x00007f20ca795000)
        libm.so.6 => /nix/store/h0p0h3rh1q4i2yavzm3yqi716s9yaj2f-glibc-2.27/lib/libm.so.6 (0x00007f20ca5ff000)
        libgcc_s.so.1 => /nix/store/f09zmq3sqiy0dnx8g4f1arngkjd4kih7-gcc-7.4.0-lib/lib64/libgcc_s.so.1 (0x00007f20ca5e6000)
        libc.so.6 => /nix/store/h0p0h3rh1q4i2yavzm3yqi716s9yaj2f-glibc-2.27/lib/libc.so.6 (0x00007f20ca430000)
        /lib64/ld-linux-x86-64.so.2 => /nix/store/h0p0h3rh1q4i2yavzm3yqi716s9yaj2f-glibc-2.27/lib64/ld-linux-x86-64.so.2 (0x00007f20ca921000)

У кого-нибудь есть еще идеи? Немного больше информации:

[nix-shell:~]$ file ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile 
./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=bd3c148954c7800224c513a9d91ce61e50cb1a03, not stripped

1 Ответ

1 голос
/ 11 февраля 2020

В выводе команды file interpreter /lib64/ld-linux-x86-64.so.2, похоже, неправильно. возможно попробуйте это, чтобы заставить исполняемый файл работать:

patchelf --set-interpreter $(patchelf --print-interpreter `which cp`) \
  ./ghidra/Ghidra/Features/Decompiler/os/linux64/decompile
...