Hxd
-
[리버싱 핵심원리 study] 32장 계산기, 한글을 배우다Reverse Engineering 2021. 1. 22. 22:33
DLL 인젝션은 동작 원리와 구현이 비교적 간단하다는 장점이 있지만, 대상 프로세스의 IAT에 후킹을 원하는 API가 존재하지 않는 경우 사용할 수 없다는 단점이 있다. 이번 실습에서는 계산기에 DLL을 인젝션 하여 숫자 대신 한글이 출력되도록 API 후킹을 진행한다. 1. 대상 API 선정 PEView를 통해 calc.exe에서 임포트하는 API들을 확인해보자. 위와 같이 SetWindowText() API가 IAT에 있는 것을 확인할 수 있는데, 해당 API는 텍스트 에디터에 문자열을 출력해주는 기능을 한다. SetWindowText의() API의 구조는 다음과 같다. BOOL SetWindowTextA( HWND hWnd, LPCSTR lpString ); API의 hWnd는 윈도우 핸들이고, lp..
-
[리버싱 핵심원리 study] 18장 UPack PE 헤더 상세 분석Reverse Engineering 2020. 12. 30. 21:38
1. UPack 설명 UPack은 중국의 dwing이라는 사람이 만든 PE 패커로, UPack의 등장으로 많은 PE 유틸리티들이 정상적으로 동작하지 않았다. 이러한 특징을 이용해 많은 악성 코드 제작자들이 자신의 코드를 UPack으로 실행 압축하여 배포하였고, 현재 대부분의 AV 제품들은 UPack으로 실행 압축된 파일들을 악성코드로 분류한다. (이번 실습을 진행하면서 Windows Defender에 지속적으로 탐지되어 매우 애먹었다.) 2. UPack으로 notepad.exe 실행 압축하기 UPack의 윈도우형 최신 버전인 WinUPack 0.39를 이용하였다. PEView로 압축된 notepad.exe를 살펴보자. 위와 같이 헤더 부분을 정확하게 읽어내지 못하는 것을 확인할 수 있다. 예전 버전의 P..
-
[리버싱 핵심원리 study] 17장 실행 파일에서 .reloc 섹션 제거하기Reverse Engineering 2020. 12. 29. 23:48
1. .reloc 섹션 EXE 형식의 PE 파일에서 Base Relocation Table은 실행에 큰 영향을 끼치지 않으므로, 제거 후 실행 테스트를 해도 정상적으로 실행이 잘 된다. (DLL, SYS는 필수) 2. reloc.exe .reloc 섹션을 제거하는 실습으로 다음과 같은 과정을 진행한다. (1) .reloc 섹션 헤더 정리 (2) .reloc 섹션 제거 (3) IMAGE_FILE_HEADER 수정 (4) IMAGE_OPTIONAL_HEADER 수정 1) .reloc 섹션 헤더 정리 위와 같이 PEView로 예제 파일을 살펴보면 270 offset에서 시작하는 것을 확인할 수 있다. 270 ~ 297 영역을 HxD를 이용하여 0으로 바꾸자. (IMAGE_SECTION_HEADER의 크기는 3..
-
[리버싱 핵심원리 study] 13장 PE File Format (3)Reverse Engineering 2020. 12. 28. 23:40
[리버싱 핵심원리 study] 13장 PE File Format (2) [리버싱 핵심원리 study] 13장 PE File Format (1) PE(Portable Executable) 파일은 Windows 운영체제에서 사용되는 실행 파일 형식이다. 기존 UNIX의 COEF(Common Object File Format)을 기반으로 Microsoft에서.. maple19out.tistory.com - IAT IAT(Import Address Table)에는 Windows 운영체제의 핵심 개념인 process, memory, DLL 구조 등에 대한 내용이 함축되어 있다. IAT란 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지를 기술하는 테이블이다. - DLL DLL(Dynamic Linked ..