Linux
이 블로그는 '모두의 리눅스'라는 책을 이용해 개인적으로 공부한 내용을 간략하게 적은 것이기 때문에 책 내용과 다를 수 있다는 점 고려해서 참고해주시기 바랍니다! 1. 셸이란? 2장은 셸이란 무엇일까? 라는 주제였다. 셸이라.. 나에겐 너무나도 어려운 개념 중 하나였다. 예전에 드림핵의 문제를 풀 때 shell basic 이랑 clamshell coding 문제가 진짜 어려웠는데 이게 shell이랑 관련이 있었던거로 기억한다. (너무 예전에 해서 정확하겐.. 모른다.) 근데 책에서 설명을 명확하게 해 주었다. 셸은 커널의 인터페이스에 해당한다. 명령어를 실행하는 것은 커널이고 이 커널의 결과를 출력하는 소프트웨어가 셸이다. 그럼 왜 둘을 분리해두었을까 라는 의문이 가장 먼저 든다. 그 이유는 리눅스 외의..
이번 여름방학때 리눅스 스터디에 참여하게 되었다. '모두의 리눅스'라는 책으로 매일 공부해 나가는 스터디인데 마침 다음학기에 시스템 프로그래밍이 있기도 하고 리눅스를 너무 얕게 알고 있다는 생각이 들어 본격적으로 공부해보고자 한다. 목표는 방학 때 이 책을 다 끝내는 것이다. 나는 그냥 공부한 내용을 개인적으로 정리하기 위해서 블로그를 쓰고 있기 때문에 모든 내용이 들어가있지 않을 수도 있고 설명이 조리있지 않을 수 있다. 그 점 감안하여 읽어주시면 좋을 것 같다. 1. 리눅스 설치 1장에서는 리눅스 설치를 진행하였다. 의외로 여기서 좀 힘이 들었다. 나는 가상머신으로 리눅스를 사용해본 적이 있었음에도 조금 헤맸다. 모두의 리눅스 책에서는 virtual box를 사용해서 평소에 나는 vmware 사용하지..
시스템 해킹을 진행하다 보면 많은 tool이 필요하다. 정수를 리틀엔디안의 패킷으로 바꾸는 함수 등 시스템 해킹에 특히나 자주 쓰이는 함수들이 있다. 이런 편리한 함수들을 모아서 파이썬 라이브러리로 만들어 둔 것이 pwntool이다. 이것을 사용하게 된다면 훨신 편리하게 해킹을 진행할 수 있을 것이다. pwntools에 관한 문서이다. 읽어보면 좋은 정보를 얻을 수 있을 것이다. https://docs.pwntools.com/en/stable/ pwntools — pwntools 4.7.0 documentation © Copyright 2016, Gallopsled et al. Revision 67b28491. docs.pwntools.com 설치 방법 pwntools은 github에서 공유하고 있다. ..
지난시간에는 디버그가 무엇인지, 그리고 gdb 사용법을 알아보았다. https://mobuk.tistory.com/18 [Pwnable] DBG(디버거) 사용법 버그(bug)와 디버깅(debugging) 개발을 하면서 발생한 프로그램의 결함을 버그라고 한다. 버그는 '벌레'라는 뜻으로 최초의 프로그래머 그레이스 호퍼에 의해 발생한 용어이다. 그가 Mark Ⅱ를 개발할 mobuk.tistory.com 이번시간에는 지난시간 내용에 이어서 gdb를 조금 더 편리하게 사용할 수 있도록 도와주는 gdb 플러그인인 pwndbg에 대해 알아보겠다. 설치 방법 https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse ..
버그(bug)와 디버깅(debugging) 개발을 하면서 발생한 프로그램의 결함을 버그라고 한다. 버그는 '벌레'라는 뜻으로 최초의 프로그래머 그레이스 호퍼에 의해 발생한 용어이다. 그가 Mark Ⅱ를 개발할 당시 컴퓨터가 오작동이 계속 일어났지만, 원인을 찾지 못해 헤매었다. 하지만 원인은 생각보다 간단했다. 바로 컴퓨터에 나방(벌레)가 붙어있어서 오작동이 발생했던 것이다. 이때부터 프로그래밍 과정 중 오류를 버그라고 하게 되었으며, 오류를 찾는 일을 벌레를 잡는 일 즉, '디버깅'이라고 하게 되었다. 디버거(debugger) 디버거는 용어 그대로 디버깅을 할 때 도움을 주는 도구이다. 디버거는 프로그램을 어셈블리 코드 단위로 실행시키면서 실행결과를 사용자에게 보여준다. 디버깅을 거치면서 개발자는 자신..