연산 루틴 리버싱에 대한 기본적 접근
월간 마이크로소프트웨어 2008년 1월호
[F-Secure Reverse Engineering 대회 - 레벨 1, 2 분석 ]
연산 루틴 리버싱에 대한 기본적 접근
강병탁 window31@nexon.co.kr, www.window31.com | 온라인 게임 보안 솔루션인 nProtect GameGuard 엔진 개발을 다년간 해왔으며, 안티 게임해킹 연구, 해킹툴 분석 등의 업무를 담당했다. 시스템 프로그래밍과 리버스 엔지니어링에 관심이 많으며 현재는 넥슨 보안팀에서 온라인 게임 취약점에 대해 연구하고 있다
얼마전 F-Secure에서 리버싱 대회가 열렸다. 시리얼 연산의 다양한 처리방법에서부터 TLS Callback을 이용한 안티 디버깅 트릭에 이르기까지 리버스 엔지니어링의 묘미에 흠뻑 적셔줄 재미있는 소재가 다양하게 등장하였다. 연산 루틴 분석시에 코드 트릭에 대한 기본적 접근 방법과 원리등에 대해 알아보자.
연재순서
1회 | 2008. 1 | 연산 루틴 리버싱에 대한 기본적 접근
2회 | 2008. 2 | Code Redirect, Fake Code, Allocate 기법 분석
연재가이드
운영체제 | 윈도우2000/XP/2003
사용도구 | Olly Debugger, HPEView
기초지식 | C/C++, ASM, Win32 API
응용분야 | 리버스 엔지니어링/시스템 프로그래밍/해킹/보안
해커들 최고 명예의 전당인 데프콘(www.defcon.org)이 올해 15회를 맞이하며 얼마전 막을 내렸다. 미국 라스베가스 에서는 세계에서 내노라 하는 해커, 보안 종사자들이 모여들어 해킹 대결을 펼치며, 공격, 방어 등의 현란한 전술과 두뇌 각축전을 보여주었다. 한국에서도 널루트, 와우해커 등의 쟁쟁한 해킹 그룹 멤버들이 연합을 구성하여 “Song of Freedom” 이라는 팀으로 참가해 순위권에 등극, 한국의 이름을 세계에 알리는데 공헌했다. “Song of Freedom”은 보안 관계자, 해킹 대회 입상자, 대학교 보안 동아리 등에서 활동해온 우수한 인재들이며 보안/해킹 커뮤니티에서 이들 닉을 모르는 사람이 없을 정도로 모두 하나같이 해킹 잘하고 리버싱에 능통한 멤버들로 구성되어 있다. 세계적 해킹 대회에서 3일간의 대 장정을 거치며 한국인의 실력을 보여준 이들의 기사를 읽고 있자면 보면 같은 보안 업계에 종사하는 사람으로써 매우 자랑스움이 느껴진다.
이와 비슷한 맥락으로 국내외에선 때때마다 여러 해킹대회가 열리고 있다. 그러나 사실 침해사고 대응이나 웹해킹 대회에 비하여 리버스 엔지니어링 대회는 사실 그 횟수가 많은 편이 아니라고 할 수 있다. 그나마 최근 들어 리버싱에 대한 인식이 넓어지면서 커뮤니티나 스터디도 하나둘씩 생겨나고 있긴 하는데, 아직도 체계적으로 정리되어 있거나 알맹이 풍부한 자료를 찾기는 쉽지 않은 감이 있다. 그런 면에서 종종 보이는 리버스 엔지니어링 대회는 아주 고무적인 것이다. 지난달에는 올해 2회째를 맞는 F-Secure 주최의 리버스 엔지니어링 대회가 열려 많은 리버서들의 의욕감을 고취시켜주었다. F-Secure는 해외 안티 바이러스 전문업체로 외산 엔진 중에 나름 기능을 인정받고 있는 백신인데, 국내에는 사실 그렇게 이름이 알려져 있지 않은 편이다. 이런 와중에 백신회사가 일반적인 광고가 아닌 이런 해킹 대회를 통해 이름을 선전하는 것도 꽤나 멋진 일이라 생각된다. 더욱이 백신사의 직원들은 사실 누구보다도 더 리버스 엔지니어링에 친숙한 사람들이 아닌가. 매일 바이러스의 바이너리를 뜯어보는 것이 삶의 일부분인 그들이 직접 이렇게 대회를 통해 리버싱 인식을 확산시켜, 음지에서 잠재력만 보유하고 있는 수많은 리버서들의 활동 공간을 넓혀줘야 하는데 큰 역할을 해야 한다고 본다. 따라서 이번 F-Secure의 리버싱 대회도 2회에서 중단되는 것이 아닌 내년에도 또 더욱 좋은 문제로 대회의 양질을 높혔으면 하는 바램이다.
pdf 다운로드
http://imaso.co.kr/?doc=articledb/pdf_index.html&v2=1&keywords=%B8%B6%BC%D2DB%3BPDF+%BC%AD%BA%F1%BD%BA
목차)
1. Level 1
2. Level 2
3. Level 2의 Anti-Debugging Trick
4. TLS Callback
5. Level 3 예고
