GNU 컴파일러를 사용하고 디버그 모드에서 C++로 작성된 것으로 보이는 Linux 실행 파일이 있습니다. 나는 내 결론이 정확하고 적어도 그것을 다소 가독성이있는 것으로 디 컴파일 할 가능성이 있는지 알고 싶다. 코드 조각이실행 파일에 대한 정보 확인
__gnu_cxx::__concurrence_lock_error
발췌문 3
ELF file ABI version invalid ◻ invalid ELF header ◻ ELF file OS ABI invalid
발췌문 1
</heap>
<malloc version="1">
nclears >= 3 Arena %d:
system bytes = %10u
in use bytes = %10u
Total (incl. mmap):
max mmap regions = %10u
다음은 실행에서 몇 표지 미리보기를의
발췌문 4
GCC: (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5 ◻
GCC: (Ubuntu/Linaro 4.4.4-14ubuntu1) 4.4.5 20100909 (prerelease)
발췌문 5
_dl_debug_vdprintf pid >= 0 && sizeof (pid_t) <= 4
...
_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT
파일이 같이 읽을 수있는 텍스트로 가득하다 (하지만 대부분은 여전히 횡설수설). 나는 릴리스 모드로 컴파일 된 실행 파일에서 이런 종류의 텍스트를 찾아야한다고 생각하지 않는다. (다시,이 문제에 대한 나의 지식은 매우 제한적이다.) 이 실행 파일에서 어떤 디 컴파일러를 사용해야합니까?
이 문자열은 프로그램의 문자열 리터럴 일뿐입니다 (마지막 문자열은 예외 일 수 있습니다). 릴리스 또는 디버그 모드에서 프로그램에서 사용하는 문자열을 읽을 수 있습니다. 또한, 디 컴파일할지 여부를 결정하는 대신, 디 컴파일을 시도하지 않는 이유는 무엇입니까? –
@Seth 나는 그것을 의심한다. 나는 그 프로그램이하는 일을 알고 그것들과 아무런 관련이 없다. 그것의 공용 영역은 영어로조차 없다. –
그들은 라이브러리의 사용자가 아닌 라이브러리가 참조하는 문자열이 될 것이므로 프로그램이 작성된 언어는 중요하지 않습니다. 라이브러리가 디버그 모드에서만 또는 둘 모두 릴리스와 디버그에서 문자열을 사용하는지 여부에 관계없이, 알아. –