일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vcruntime140.dll
- 윈도우 커널 드라이버
- pcap packet capture
- pcap packet
- arudino
- IAT Hooking
- 개발하기
- 윈도우 커널 디버깅
- packet capture
- pwnable
- HackCTF
- 개발 환경 준비
- Windows Kernel Debug
- Windows Kernel Driver
- Network Byte Order
- 윈도우 커널
- windows kernel debugging
- hacking
- 시스템해킹
- Windows Kernel
- Windows
- vcruntime.dll
- ucrtbase.dll
- 포너블
- 바이트 오더
- 해킹
- Msvcrt.dll
- apphelp.dll
- 네트워크 바이트 오더
- C언어 패킷캡쳐
- Today
- Total
목록Hacking/Memory Protection Tech (4)
미친해커
ASLR (Address Space Layout Randomization, 주소 공간 배열 무작위화) ASLR 보호기법이란 말 그대로 주소를 매번 실행 때마다 랜덤하게 배치하는 것을 말한다. PIE 보호기법과 비슷하다고도 볼 수 있는데 엄연히 다른 보호기법이다. ASLR은 데이터 영역의 주소를 랜덤하게 배치한다. 그 이유는 ret 주소를 임의로 조작할 수 있을 때 가장 필요한 것은 주소이다. 공격자가 주소를 알 수 있다면 그 주소에 ShellCode와 같은 악성코드를 주입하여 실행시킬 수 있기 때문이다. 그렇다면 그 ShellCode와 같은 것이 작성되는 영역은 데이터 영역이기 때문에 이 영역의 주소를 랜덤하게 배치되도록 만든다면 공격을 훨씬 어렵게 만들 수 있기 때문이다. 간단요약 데이터 영역의 주소를..
PIE (Position Independent Executable, 위치 독립 실행 파일) PIE 보호기법이란 메모리의 어딘가에 위치한 기계어 코드의 몸체로서 절대 주소와 관계 없이 적절히 실행된다. 즉 메모리상의 명령어들의 위치가 매번 바뀐다는 의미이다. PIE 보호기법이 적용된 프로그램은 특별한 코드 수정이 없이 어느 메모리 주소에서도 실행이 가능하며 메모리 주소의 제약을 받지 않는다. 이 보호기법은 주로 RTL(Return To Libc), ROP(Return Oriented Programming) 과 같은 바이너리에서 실행 가능한 코드의 오프셋을 필요로 하는 공격 기법을 사용하려고 할때 이 코드가 어디에 존재하는지를 알 수 없게 한다. 간단요약 프로그램이 실행 될때마다 그 메모리 주소를 바꾸어 이..
NX Bit (Never eXecute bit, 실행 방지 비트) NX Bit 보호기법이란 프로세서 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술이다. NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용되며, 프로세서 명령어가 그 곳에 상주하지 않음으로써 실행되지 않도록 만들어 준다. 실행 보호라는 일반 기술은 특정한 종류의 악성 소프트웨어를 컴퓨터에 들어오지 못하게 막는 데 사용된다. 악성 소프트웨어의 경우 자신의 코드를 다른 프로그램의 자료 기억 영역에 심어 놓은 다음 이 구역 안에서 자신의 코드를 실행하게 만들며, 이를 Buffe rOverFlow(버퍼 오버플로우) 공격이라고 한다. 간단 요약 NX Bit는 데이터 영역과 코드 영역을 나누어 데이..
리눅스 운영체제의 메모리 보호기법을 정리해볼 생각이다. (사실 나도 매번 까먹어서 정리가 필요함...) 리눅스에서 바이너리에 적용되어 있는 메모리 보호기법은 checksec을 이용하여 확인 할 수 있다. checksec [Bianry File] 커맨드를 입력하면 RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000) 이렇게 현재 바이너리에 적용되어 있는 메모리 보호기법을 볼 수 있다. 보호기법 별 자세한 설명은 다음 글부터 할 생각이다.