반응형

공부해요/리버싱_핵심원리 50

22. 악의적인 목적으로 사용되는 키로거

악성 키로거의 목표 키로거의 주요 목표는 돈임. 키로거는 사용자가 입력한 키보드 정보를 저장하고 이를 빼돌리는 기능을 통해 민감한 정보를 수집함. 정보화 사회에서 정보는 곧 가치이므로, 악성 키로거는 결국 금전적 이익을 목표로 함 활용 사례온라인 게임: 계정 탈취를 통한 게임 아이템 및 계정 판매인터넷 뱅킹: 로그인 정보와 금융 정보 탈취기업 정보: 기밀 정보 및 데이터 유출을 통한 경제적 손실 초래키로거의 종류와 향후 발전 방향 하드웨어 키로거 하드웨어 키로거는 작은 USB 메모리처럼 생긴 장치로, 키보드 케이블 끝에 연결해 PC에 설치됨 내부에 flash memory를 탑재해 키보드로부터 들어오는 전기 신호를 직접 저장함 물리적으로 접근이 필요하지만, 탐지가 어렵고 데이터 수집 후 간단히 제거 가능함..

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가 가리..

14. 실행 압축

데이터 압축어떤 형태의 파일이든 내부는 바이너리로 되어 있음 -> 압축 알고리즘을 사용해 크기를 줄일 수 있음비손실 압축압축 파일 100% 복원 가능보관 및 이동에 용이하도록 하려는 목적으로 사용7-zip, 빵집과 같은 프로그램 이용Run-Length, Lempel-Ziv, Huffman 알고리즘손실 압축압축 파일 100% 복원 불가압축률을 높이는 목적멀티미디어 파일들(jpg, mp3, mp4)에서 대부분 사용   실행 압축실행(PE: Portable Executable) 파일을 대상으로 파일 내부에 압축해제 코드를 포함하고 있어서 실행되는 순간에 메모리에서 압축을 해제시킨 후 실행시키는 기술실행 압축된 파일도 PE파일, 내부에 원본 PE파일과 decoding루틴 존재. EP코드에 decoding루틴이 ..

13. PE File Format

PE(Portable Executable) 파일은 Windows 운영 체제에서 사용되는 실행 파일 형식을 의미하며, Microsoft에서 기존 UNIX 시스템에서 사용된 COFF(Common Object File Format)를 기반으로 개발됨. 주로 32비트 및 64비트 Windows 시스템에서 실행되는 프로그램 및 라이브러리를 위해 설계됨.32비트 파일은 PE(Portable Executable) 형식을 따르며, 64비트 파일은 PE+ 또는 PE32+로 불림.  PE File Format종류주요 확장자실행 계열EXE, SCR라이브러리 계열DLL, OCX, CPL, DRV드라이버 계열SYS, VXD오브젝트 파일 계열OBJ EXE 파일: 주로 프로그램 실행 파일로 사용되며, 사용자가 직접 실행 가능함.D..

반응형