사용자 도구

사이트 도구


자주_써먹는_리눅스_꼼수

자주 써먹는 리눅스 꼼수

명령어들

gdb

혹은 cgdb. (curses based GDB). 나중에 써먹자.

CTAGS

vi툴을 이용해 소스 분석할 때 써먹으면 좋은 도구.

sudo apt-get install ctags

이후 해당 소스의 루트 앞에서

ctags -R *

이 명령을 수행하면 하위 디렉토리의 태그 까지 써먹을 수 있다. 그리고 홈 디렉토리의 .vimrc에서,

set tags=./tags,(다른 태그 경로)

이 표시를 통해 다른 태그위치를 참조할 수 있다.

vi상에서 태그 참조시.

ctrl + ] : 태그 위치로 이동.
ctrl + t : 태그 위치로 부터 돌아옴.

이 두가지 명령으로 간단하게 소스분석을 할 수 있다!

SCP : (Secure copy)

내가 보내는 쪽이냐, 받는쪽이냐에 따라,

scp (보내는 파일 ) (계정명)@(호스트 명):(호스트에서의 위치)
scp (계정명)@(호스트명):(받는것의 위치) (받는 파일)

예를 들면,

scp something.jpg  root@intoarena1.cafe24.com:/home/intoarena/
scp root@intoarena1.cafe24.com:/home/intoarena/something.jpg  something.jpg
  • '-r'옵션을 주면 폴더 카피가 가능하다.

방화벽 관련 : iptables

iptables를 참조하자.

LD_PRELOAD 그리고 dynamic 라이브러리 링킹

구글링에 나와있는 대부분의 경우에는 LD_PRELOAD를 활용한 링크 후킹 기법에 대해서 설명하고 있음.

원리는 LD_PRELOAD를 이용하여 프로그램 실행시에 다른 라이브러리보다도 LD_PRELOAD에 명시된 라이브러리를 우선적으로 탐색하여 주소가 없는 심볼에 대한 링크를 부여하는 것. 이를 이용하면 rand(), printf()와 같은 함수 이름을 두어서 미리 선언해 두어도 LD_PRELOAD 값을 이용하여 자신이 정의한 함수 심볼에 우선적으로 링크를 거는 것이 가능하다.

export LD_PRELOAD=(공유 라이브러리 이름)

문제는 이것이 bash등의 shell에서 미리 export를 통해 걸어 놓는 것이 아니라, runtime에도 가능하겠느냐는 것. 불가능 하다는 이야기가 있다.

처음 프로그램을 로딩할때, 바로 첫 코드를 시작하는 것이 아니라, ld.so를 이용하여 다이나믹 링킹을 수행한다. 이때 라이브러리는 LD_LIBRARY_PATH를 이용해서 탐색.

자주_써먹는_리눅스_꼼수.txt · 마지막으로 수정됨: 2017/08/19 22:13 (바깥 편집)