반응형 Security/Windows System26 ※PEB(Process Environment Block)란? 다시 복습!복습! ※PEB(Process Environment Block)?- 유저레벨에서 프로세스의 정보를 담는 구조체 ※PEB구조체 : Windows 7 typedef struct _PEB{ UCHAR InheritedAddressSpace; UCHAR ReadImageFileExecOptions; UCHAR BeingDebugged;// 디버깅중 인지를 체크 UCHAR BitField; ULONG ImageUsesLargePages: 1; ULONG IsProtectedProcess: 1; ULONG IsLegacyProcess: 1; ULONG IsImageDynamicallyRelocated: 1; ULONG SpareBits: 4; PVOID Mutant; PVOID ImageBaseAddre.. 2017. 8. 21. ※TLS(Thread Local Storage)란? 이미 전에 공부해서 알고 있는 내용들이지만 다시 한번 정리하는 개념으로 TLS에 대한 내용을 진행해보았습니다. 이후 예제코드는 TLS를 이용한 안티디버깅프로그램을 제작해보았습니다. ※TLS(Thread Local Storage)란? - Thread별로 독립된 데이터 저장공간. 쓰레드내에서 독립적으로 전역변수나 정적변수를 만들어줄때 사용 ※DataDirectory - TLS프로그래밍시 PE포맷에서 optionalHeader의 DataDirectory[9]이 세팅되며 다음의 구조를 가진다. typedef struct _IMAGE_TLS_DIRECTORY64 { ULONGLONG StartAddressOfRawData; ULONGLONG EndAddressOfRawData; ULONGLONG AddressOf.. 2017. 8. 21. 윈도우 부팅과정(Windows Boot Process) ※부팅과정(Windows Boot Process) : 부팅 전체적인 그림은 다음과 같습니다. 1. Run BootManager ① BIOS Firmware - POST : 부팅시 가장 먼저 동작. 하드웨어를 점검합니다. - Load Boot Manager : 디스크의 첫번째 섹터인 MBR(Master Boot Record)로 부터 파티션 테이블을 검색하여 부팅가능한 파티션의 VBR(Volume Boot Record)를 읽습니다. VBR은 16bit Boot Manager(%System-Drive%\bootmgr) 프로그램을 읽습니다. 16bit코드는 (32bit/64bit)코드 앞에 붙어서 존재합니다. ② EFI Firmware - POST : BIOS과정과 동일합니다. - Load BootCode : .. 2017. 8. 21. MBR부팅과정 디버깅 ※MBR부팅과정 디버깅방법 ①VMX파일 수정 - vm을 종료한 뒤, 다음을 vmx파일에 추가합니다. debugStub.listen.guest32 = "TRUE" debugStub.hideBreakpoints = "TRUE" debugStub.listen.guest32.remote = "TRUE" monitor.debugOnStartGuest32 = "TRUE" 추가가 되었다면 vm을 부팅합니다. 해당 VM은 일시정지상태로 신호를 기다립니다. ②IDA를 통하여 VM에 Attach. OK이후 : 선택 ③16비트로 설정. -[Edit]-Segments-[Edit segment]로 접근 - Segment bitness를 16bit로 설정. ④BIOS이후인 0x7c00에 bp를 걸고 진행. 2017. 8. 8. 이전 1 2 3 4 5 6 7 다음 반응형