LINUX

포스트: 477|조회수: 0|TERM
Items

Posts

477 posts

[bash: grep] 파일 안에 섞인 바이너리(binary) 데이터 제거

반달가면|2018년 4월 20일

텍스트 파일에 뭔가 문제가 생겨서 중간에 바이너리(binary) 데이터가 포함된 경우 이를 제거하기 위한 방법이다. 간혹 텍스트 중간에 바이너리 바이트가 일부 삽입되어 있는 희한한 상태로 인하여 다른 부분에서 작업이 안되는 문제가 있어서 고육지책으로 셸 스크립트(shell script)를 만들어서 제거했다. 파일 내용을 한줄씩 읽어서 혹시라도 내용 중간에 바이너리가 있을 경우 이를 제외한 나머지만 모아서 별도의 파일로 다시 저장하도록 했다. 아래와 같이 작업. # 탭을 변수로 할당 tab=`echo -e "\t"` # 대상 파일: ~/my_file.txt target_file=~/my_file.txt # 결과 파일: ~/my_file.txt.result res_file=~/my_file.

[0410] Slab Memory Corruption Case Study#2 - 디버깅

Guillermo Austin Kim|2018년 4월 20일

난이도: 하 이제 커널 로그부터 볼게요. 이전과 비슷한 패턴인데 약간 다른 것 같네요.1 [ 2551.510956 / 04-07 15:43:12.844][3] =============================================================================2 [ 2551.510994 / 04-07 15:43:12.844][3] BUG kmalloc-256 (Tainted: G W ): Invalid object pointer 0xe216ce103 [ 2551.511015 / 04-07 15:43:12.844][3] -----------------------------------------------------------------------

[Linux][Kernel] 슬랩 메모리: kfree 소개

Guillermo Austin Kim|2018년 4월 10일

이번에는 kfree에 대해서 알아봅니다. 이번에도 패치 코드를 하나 작성할게요. 이번에는 kmalloc 함수로 메모리를 할당 후 kfree 함수를 호출해서 메모리를 해제합니다. 그리고 바로 커널 크래시를 유발하죠. 커널 크래시가 발생하면 코어 덤프(vmcore)가 생깁니다. 이 파일을 Trace32로 올려서 메모리 해제 시 어떤 동작을 하는 지 상세히 알아 보려고 하거든요. 우선 할당된 메모리 주소는 0xE7AE1300입니다.(static u32 *) austin_debug_data = 0xE7AE1300 0xE7AE1300 메모리 공간은 어떤 값들로 구성됐는지 알아볼까요?_____address|_data________|value_____________|symbolNSD:E7AE1300|6B 6B 6B

script - 리눅스에서 터미널창 작업 내용을 파일로 저장(갈무리)하기

반달가면|2018년 4월 10일

리눅스에서 터미널창에서 작업한 내용(명령어 입력, 결과 출력 등)을 파일로 저장(갈무리)하고 싶을 경우, script를 이용하면 되겠다. 아래의 예시를 보자. # 터미널창 작업 내용을 파일 terminal_log.txt 파일에 갈무리 script terminal_log.txt Script started, file is terminal_log.txt 작업을 마치고 갈무리를 중단하려면 컨트롤(ctrl) + d 키를 누르거나, 터미널창에서 exit라고 입력하면 된다. # 갈무리 종료 exit Script done, file is terminal_log.txt 이전에 저장했던 파일에 덧붙여서 저장(append)하고 싶을 경우에는 -a 옵션을 사용한다. # 터미널창 갈무리 시작, t