DLL, MFC 실전 모듈 리버싱
DLL, MFC 실전 모듈 리버싱
월간 마이크로소프트웨어 2008년 6월호
1, 2회를 거쳐오면서 C와 C++문법에 대한 디스어셈블링이 이제 어느 정도 감이 잡혔을 것 같다. 이번회는 DLL과 MFC등을 살펴보면서 실전 모듈에 대한 접근 방법을 살펴본다. 익스포트 함수와 MFC 클래스의 구조, 그리고 헤더 파일과 MSDN을 이용한 리버스 엔지니어링에 대해 알아보자.
------------------------------------------------------
강병탁 window31@empal.com, http://www.window31.com | 바이너리 취약점 분석 업무를 하고 있다. 안티 크래킹/안티 디버깅 엔진 개발을 다년간 해왔으며 시스템 프로그래밍과 리버스 엔지니어링에 관심이 많다. 악성 코드나 해킹툴이 내부에 담고 있는 천재적인 알고리즘에 감탄하며 오늘도 IDA를 돌린다.
------------------------------------------------------
연재 순서
1회 | 2008. 4 | C 문법과 디스어셈블링
2회 | 2008. 5 | C++ 클래스와 디스어셈블링
3회 | 2008. 6 | DLL, MFC 실전 모듈 리버싱
4회 | 2008. 7 | 4GL 고급 언어 역분석
5회 | 2008. 8 | 안티 디버깅과 리버스 엔지니어링
------------------------------------------------------
연재 가이드
운영체제| 윈도우 2K/XP/2003
사용도구| Visual Studio, IDA, OllyDBG
기초지식| C/C++, ASM, Win32 API, MFC
응용분야| 리버스 엔지니어링/시스템 프로그래밍/해킹/보안
------------------------------------------------------
다루는 내용
DLL도 C/C++로 코드가 이루어지기 때문에 기본적인 사항은 C/C++에 대한 디스어셈블링과 별반 차이가 없다. 다만 WinMain()대신에 DllMain()이 존재한다는 것, 그리고 각각의 ul_reason_for_call 에 대한 분류코드가 들어가며, 익스포트 함수가 있다는 것(물론 없는 경우도 있다). 그정도의 간단한 차이점을 생각할 수 있다. 따라서 이번회는 실제 어셈 코드나 스택의 계산법, 레지스터 이용 등에 대한 세부적인 설명보다는 DLL, MFC 와 관련된 굵직굵직한 내용을 다뤄보도록 하자.
이올린에 북마크하기
