
이 글을 읽기 전에 시스템 콜(system call) 및 셸의 개념이 헷갈린다면 여기를 참고하자 익스플로잇과 셸 코드 먼저 익스플로잇이 무엇인지부터 알아보자! 해킹 분야에서의 익스플로잇은, '상대의 시스템을 공격하는 것'을 말한다. 그럼 오늘 배울 개념인 셸코드는 무엇일까? 셸코드는 익스플로잇을 위해 작성된 기계어 코드이다. 보통 셸의 획득을 목적으로 하는 경우가 많아서 셸 코드라고 불리게 되었다. 더보기 rip의 위치를 우리가 만든 셸 코드로 옮기면 상대 시스템은 우리의 셸코드를 실행하게 될 것이다!! 그러니까 rip 위치를 조정해주는게 우리의 목적이지 않을까?(걍 내 생각이다) 그런데 셸 코드는 결국 어셈블리어,기계어로 쓰여있기 때문에, 공격할 상대 시스템이 어떤 컴퓨터 구조를 가지고, 어떤 운영체제..
end로 점프하면 프로그램이 종료된다고 가정하자. 프로그램이 종료됐을 때, 0x400000 부터 0x400019까지의 데이터를 대응되는 아스키 문자로 변환하면 어느 문자열이 나오는가? [Register] rcx = 0 rdx = 0 rsi = 0x400000 ======================= [Memory] 0x400000 | 0x67 0x55 0x5c 0x53 0x5f 0x5d 0x55 0x10 0x400008 | 0x44 0x5f 0x10 0x51 0x43 0x43 0x55 0x5d 0x400010 | 0x52 0x5c 0x49 0x10 0x47 0x5f 0x42 0x5c 0x400018 | 0x54 0x11 0x00 0x00 0x00 0x00 0x00 0x00 ================..