반응형

공부해요 94

21. Windows 메시지 후킹

훅(Hook) 훅은 원하는 정보를 낚아채기 위해 사용하는 도구로, 특정 정보를 엿보거나 가로채기 위해 사용됨. 확장된 의미로 시스템이나 프로그램의 동작 흐름에 개입하여 필요한 정보를 얻거나, 데이터를 조작하는 목적에서도 사용됨 예시어떤 집단에 검문 절차가 3단계로 구성되어 있었는데, 스파이가 검문 절차 하나를 추가해 4단계로 만듦집단 내부의 사람들은 별다른 의심 없이 이 절차를 따르게 되고, 스파이는 이를 통해 필요한 정보를 쉽게 얻을 수 있게 됨이 과정에서 스파이가 추가한 검문 초소 설치 작업을 ‘훅을 건다’ 또는 ‘훅을 설치한다’고 표현함후킹(Hooking) 후킹은 훅을 통해 실제로 정보를 엿보고 조작하는 행위 자체를 의미함. 훅이 설치된 후 후킹을 통해 중간에서 정보를 가로채거나 데이터를 변경할 수..

17. 실행 파일에서 .reloc 섹션 제거하기

Reloc 섹션 설명Base Relocation Table은 PE 파일에서 하드코딩된 주소의 위치를 알려주는 정보로, 실행 파일(EXE)에서는 큰 영향을 주지 않음. 따라서 reloc 섹션을 제거해도 EXE는 정상적으로 실행될 수 있음.reloc 섹션은 보통 VC++에서 생성된 PE 파일의 마지막에 위치하며, 이 섹션을 제거하면 파일 크기가 약간 줄어듦PEView나 Hex editor를 사용해 쉽게 제거 가능   Reloc 섹션 제거 작업 단계.reloc 섹션 헤더 정리.reloc 섹션 헤더의 파일 오프셋을 찾아서, Hex editor를 사용해 해당 부분을 0으로 덮어씌움.reloc 섹션 제거.reloc 섹션의 시작 옵셋을 찾아, 해당 부분부터 파일 끝까지 삭제이 단계에서 물리적으로 섹션을 제거할 수 있..

16. Base Relcoation Table

PE 재배치(PE Relocation)PE 재배치란?PE(Portable Executable) 파일이 원래 로딩되기를 기대하는 기본 주소인 ImageBase에 로딩되지 못하고, 다른 주소에 로딩될 때 발생하는 작업을 의미함  DLL/SYS 파일에서의 PE 재배치DLL/SYS 파일: 예를 들어, TEST.EXE 프로세스에 A.DLL이 10000000 주소에 로딩된 상태에서 B.DLL이 동일한 주소로 로딩되려고 할 때, PE 로더는 충돌을 피하기 위해 B.DLL을 다른 비어있는 주소에 로딩함. EXE 파일에서의 PE 재배치EXE 파일: 실행될 때마다 랜덤한 주소에 로딩되며, 이 과정에서 재배치가 발생할 수 있음. 이는 보안을 위한 ASLR(Address Space Layout Randomization)의 일..

15. UPX 실행 압축된 notepad 디버깅

010073B2: GetModuleHandleA() API 호출 후 notepad.exe 프로세스의 ImageBase구함010073B4, 010073C0: MZ와 PE 시그니처 비교    notepad_upx.exe의 EP Code0101533060PUSHAD01015331BE 00100101MOV ESI, 0101100010153368DBE 0000FFFFLEA EDI, DWORD PTR DS: [ESI+FFFF0000]  PUSHAD 명령어: EAX~EDI 레지스터를 스택에 저장ESI/EDI 설정:ESI: 두 번째 섹션 시작 주소 (01011000)EDI: 첫 번째 섹션 시작 주소 (01001000)첫 번째 섹션: 메모리에서만 존재, 압축 해제된 원본 파일의 코드가 저장될 장소예상 동작:ESI가 가리..

반응형