Hack
-
부트킷Hack/Pwnable 2015. 2. 25. 13:33
부트킷이란? - 시스템에 설치된 OS로 제어권이 넘어오기전에 MBR코드를 감염시켜 OS의 부트제어 코드를 패치시키도록 하는 악성코드 MBR(Master Boot Record)를 조작하는 악성코드 MBR이란? - 하드디스크의 맨 앞에 기록되어있는 512바이트의 시스템 기동용 영역이다. 하드 - MBR - 부트섹터 - Ntlddr(NTFS.sys,Ntoskrnl.exe) - OS - App 부트킷의 종류 스미트닛 부트킷(Smitnyl Bootkit) - 부트섹터를 감염시킴으로써 백신이 진단,치료를 어렵게만듬 파괴형 부트킷(Destroyer Bootkit) -MBR을 아무의미없는 문자열로 채워 부팅을 불가능하게만든다. 스미트닛 부트킷분석 -ZwConnectPort()푸킹, 메모리를 할당해 DLL이미지를 로드하..
-
Hot PatchingHack/Reversing 2015. 2. 25. 13:16
리버싱을 하다보면 NOP다음에 MOV EDI, EDI코드가 있는것을 한번쯤 본적 있을것이다. 이를 핫패칭이라하는데, 핫패칭은 필요한코드를 별다른 재부팅없이 바로 메모리에 적용할수있는 기술이다. 함수 바로앞에 NOP를 포함해 5바이트가존재하는데, NOP,NOP,NOP,NOP,MOV EDI,EDI NOP에 JMP를 덮어씌워 실제 사용되는코드에 오버라이트하지않고 점프할수있다.MS에서 제공해주는 코드이다. 해당 5바이트만 존재하면 32비트 주소 어디든지 점프할수있다.
-
64BIT Executable and Linkable FormatHack/Reversing 2015. 2. 15. 11:01
e_ident[EI_MAG0] ~e_ident[EI_MAG3] - 7F뒤에 ELF라는 스트링이 따라서 달려온다, ELF로는 7F 45 4C 46이 오게된다 e_ident[EI_CLASS] -32비트, 64비트 구분공간 값이 1과 2로 나타내어진다.( 01 : 32BIT , 02: 64BIT) 해당 파일은 64비트라는것을 알수있다. e_ident[EI_DATA] -리틀엔디언, 빅엔디언을 나타낸다 (01: LE, 02: BL) e_ident[EL VERSION] -ELF의 버전을 나타낸다 (1: Original ELF) e_type - 1: relocatable, 2: executable, 3: shared, or core, 4: respectively. e_machine - 시스템 아키텍쳐를 나타낸다. 0..
-
ELF 구조Hack/Reversing 2015. 2. 13. 13:04
ELF는 Executable and Linkable Format의 약자로, 프로그램을 다시짜고, 재컴파일해야할 필요성을 없앴다. ELF Section .text- 프로그램의 텍스트 또는 실행가능한 명령어들을 담고있다. 해당 섹션은 EXE의 섹션과 동일한 역할을한다.Type: SHT_PROGBITSFlags: SHT_ALLOC + SHT_EXECINSTR .data-프로그램 메모리영역에 제공되는 초기화된 변수(데이터)들을 담고있다.Type: SHT_PROGBITSFlags: SHT_ALLOC + SHT_WRITE .rodata-프로세스의 이미지에서 쓰기 불가능한 세그먼트에 사용되는 읽기전용 데이터들을 담고있다. .bss- 프로그램의 메모리 영역에 제공되는 초기화되지않은 변수(데이터)들을 담고있다. 목적파일..