레나 리버싱 18강 / Lena's Reversing Tutorial 18 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 17강 / Lena's Reversing Tutorial 17 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 16강 / Lena's Reversing Tutorial 16 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 15강 / Lena's Reversing Tutorial 15 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 14강 / Lena's Reversing Tutorial 14 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 13강 / Lena's Reversing Tutorial 13 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 12강 / Lena's Reversing Tutorial 12 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
레나 리버싱 11강 / Lena's Reversing Tutorial 11 / Write-Up
·
Reversing/Lena's Reversing Tutorial for Newbie
Shellcode 만들기 - 4 (쉘코드 동작 원리 이해 및 제작)
·
System Hacking(OS)/Shellcode
(대부분) 시스템의 명령어 쉘을 실행시키는 기계어 코드로 작성된 쉘코드를 만들기 위해, 먼저 시스템의 명령어 쉘을 실행시키는 간단한 C 언어 프로그램을 작성하고, 이를 어셈블리어 코드로 변환한 뒤, 끝으로 불필요한 부분을 제거하여 최적화된 기계어 코드를 얻는 과정을 거친다. 먼저 시스템의 명령어 쉘을 실행시키는 간단한 프로그램을 작성한다. 본 프로그램에서는 unistd.h 헤더 파일에 정의된 execve 함수를 사용하여 "/bin/sh"에 있는 명령어 쉘을 실해시킨다. execve 함수는 파일 이름이 가리키는 실행 가능한 바이너리 파일이나 스크립트 파일을 실행하는 함수로, 함수 프로토타입(함수 원형)은 다음과 같이 정의되어 있다. * 사진이 잘렸을 경우 사진 클릭시 원본 사이즈로 보여짐 각 인자는 con..
Shellcode 만들기 - 3 (메모리 세그먼트 구조)
·
System Hacking(OS)/Shellcode
일반적으로 운영체제는 하나의 프로세스를 실행하게 되면 이 프로세스를 세그먼트(Segment) 단위로 메모리에 저장한다. 이 세그먼트는 다시 세 영역으로 구분되어, 컴파일러(Compiler)에 의해 기계어 코드로 변환된 명령어 집합이 저장되는 코드 세그먼트(Code Segment), 프로그램이 참조하는 데이터(주로 전역(global) 변수들)가 저장되는 스택 세그먼트(Stack Segment)로 나뉜다. 이 때 메모리에 저장되는 위치는 보통 실행 시간(Run Time, 실행되는 순간)에 정해지기 때문에, 컴파일 과정에서 각 명령어의 정확한 위치를 지정해 줄 수 없다. 따라서 각 세그먼트는 가상 주소인 논리적 주소(Logical Address)를 사용하여 상대적인 위치를 지정한 후, 실행 시간에 정해지는 자..