2016-11-07 10 views
0

디버깅/단계 실행에 필요한이 EFL 파일이 있습니다. 리버스 엔지니어링 경쟁입니다. 내가해야 할 일은 특정 시점과 특정 장소에서 레지스터의 가치를 찾는 것입니다. 관심 주소를 찾기 위해 호퍼 디스어셈블러를 사용했습니다.ELF 파일 디버그

여기에 문제가 있습니다. ELF 파일을 디버깅하는 방법을 모르겠습니다. Linux 환경에서 디버깅을하는 것은 처음입니다. ELF 파일을 실행하는 방법을 배우는 것은 나에게 오래 걸렸다. 내가 사용하여 실행 ld-linux.so.2 ./[EFLFILE] [arguments]

내가 적어도 atess에 디버거를 첨부 할 수있는 방법이 있습니까? 나는 ps 명령으로 찾을 수조차 없다. 또한 원격 디버거를 사용할 수 있다고 들었습니다. Windows 컴퓨터에서 디버거를 실행하고 Linux에서 실행중인 바이너리를 검사해야합니다.

아무도 내가이 모든 것을 달성하도록 도와 줄 수 있습니까? 일반적으로 ELF 파일로 실행할 수 있습니다

+1

당신은 [GDB] (https를 사용 할 수 있습니다. org/software/gdb /)을 사용하여 리눅스에서 프로그램을 디버그 할 수있다. – daouzli

답변

0

은 다음과 같습니다

$ gdb /path/to/elffile 

또는 인수를 전달 :

$ /path/to/elffile [arguments] 

당신이 할 수 GDB를 사용하여 디버깅에

$ gdb --args /path/to/elffile arguments... 

당신의 사례 :

$ gdb --args ./[EFLFILE] [arguments] 

run 또는 r을 입력하고를 누릅니다. help을 입력하면 gdb 명령에 대한 도움말을 볼 수 있습니다.

참고 : //www.gnu : 당신이 프로그램은 일부 외부 libs가 필요한 경우, 그것을 실행하기 전에, 당신이 그 libs와 (export LD_LIBRARY_PATH=/the/path/to/libs)를 포함하는 폴더를 가리키는 LD_LIBRARY_PATH를 정의해야

+0

내가 무엇을 하든지간에 나는 결코 ELF 파일을 실행할 수 없다. '$ [filename]' "no command [filename] found " 당신이 제안한 gdb ("귀하의 경우 "에있는 행)를 사용하려고하면 sudo를 사용한 후에도 Permission이 거부됩니다. 나는 최신 우분투를 사용하고있다. – hexinx

+0

64 비트 우분투 설치시 32 비트 ELF이기 때문에 생각합니다. 나는 32 비트 시스템을 실행할 것이고 똑같은 것을 시도 할 것이다. – hexinx

+0

@hexinx 권한이 거부되면 파일에'$ chmod + x elffile' 실행 권한이 있는지 확인하십시오. 단, 독립 실행 형으로 실행할 수없는 경우 gdb가 작동하지 않습니다. – daouzli