SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
게임 해킹툴의
변칙적 공격 기법 분석

www.CodeEngn.com
2013 CodeEngn Conference 09

박근영
2013.11.30
Contents
01

[ 공격 기법 1 ] 게임 코드 조작 By OpenProcess

02

[ 방어 기법 1 ] OpenProcess 접근 방어

03

[ 공격 기법 2 ] 게임 코드 조작 By BrainSwitching

04

[ 공격 기법 3 ] 게임 코드 조작 By DLL-Injection

05

[ 방어 기법 2 ] 메모리 CRC 비교

06

[ 공격 기법 4 ] 게임 코드 조작 By DR 조작
기사 자료

© AhnLab, Inc. All rights reserved.
실험 대상
TargetFPS.exe

© AhnLab, Inc. All rights reserved.
[공격 기법 1]

게임 코드 조작 By OpenProcess

TargetFPS.exe
CodeModify.exe
코드 조작 by OpenProcess
hProcess =OpenProcess(…,TargetFPS_PID)
VirtualProtectEx(hProcess, 0x4071e7, 0x3,
PAGE_EXECUTE_READWRITE , ..)
szPatchedByte[0] = 0x90;
szPatchedByte[1] = 0x90;
szPatchedByte[2] = 0x90;
WriteProcessMemory(hProcess,
0x4071e7, szPatchedByte, 3, ..)

© AhnLab, Inc. All rights reserved.
[방어 기법 1]

OpenProcess 접근 방어

TargetFPS.exe
Protector_dll.dll

OpenProcess
접근 방어
IF (OpenProcess 대상 PID==TargetFPS PID)
IF (접근 시도 Process != OS Process)
return FAIL

CodeModify.exe
코드 조작 by OpenProcess
hProcess =OpenProcess(…,TargetFPS_PID)
VirtualProtectEx(hProcess, 0x4071e7, 0x3,
PAGE_EXECUTE_READWRITE , ..)
szPatchedByte[0] = 0x90;
szPatchedByte[1] = 0x90;
szPatchedByte[2] = 0x90;
WriteProcessMemory(hProcess,
0x4071e7, szPatchedByte, 3, ..)

© AhnLab, Inc. All rights reserved.
[공격 기법 2]

게임 코드 조작 By BrainSwitching

TargetFPS.exe
Protector_dll.dll

OpenProcess
접근 방어
IF (OpenProcess 대상 PID==TargetFPS PID)
IF (접근 시도 Process != OS Process)
return FAIL

© AhnLab, Inc. All rights reserved.

CodeModify.exe

BrainSwitching.exe

코드 조작 by OpenProcess
[공격 기법 2]

게임 코드 조작 By BrainSwitching

CodeModify.exe CodeModify.섹션별VA,
BrainSwitching.exe
WriteProcessMemory(TaskMgr_PI->hProcess, pTaskMgr_Image , CodeModify.헤더 데이
pTaskMgr_Image = VirtualAllocEx(TaskMgr_PI->hProcess, CodeModify.이미지베이스,
+
ResumeThread(TaskMgr_PI->hThread)
SetThreadContext(TaskMgr_PI->hProcess, &Context)
Context.Eax = (CodeModify.이미지베이스 + &Context)
GetThreadContext(TaskMgr_PI->hProcess,CodeModify.엔트리포인트주소)
NtDll ! UnmapViewOfSection(TaskMgr_PI->hProcess, TaskMgr.이미지베이스)
CreateProcess(.. ”TaskMgr.exe”, .. ,CREATE_SUSPENDED, .. , &TaskMgr_PI)
CodeModify.섹션별 데이타, ..) X 섹션개수
타, ..)
CodeModify.이미지전체사이즈, ..)

CreateProcess(..)

TaskMgr.exe

CodeModify.exe

(Process)

(File-base)

NtDll ! UnmapViewOfSection(..)

header

header

VirtualAllocEx(..)

.text

.text

WriteProcessMemory(..)
WriteProcessMemory(..)

.rdata

.rdata
GetThreadContext(..)

.data

.data

.rsrc

.rsrc

Ctx.Eax = CodeModify.이미지
SetThreadContext(..)
ResumeThread(..)

© AhnLab, Inc. All rights reserved.
[공격 기법 3]

게임 코드 조작 By DLL-Injection

TargetFPS.exe
Protector_dll.dll

OpenProcess
접근 방어
IF (OpenProcess 대상 PID==TargetFPS PID)
IF (접근 시도 Process != OS Process)
return FAIL

CodeModify.exe

BrainSwitching.exe

코드 조작 by OpenProcess

DLL_Injector.exe
CodeModify_dll.dll
코드 조작 by DLL-인젝션

VirtualProtect(0x4071e7, 0x3,
PAGE_EXECUTE_READWRITE , ..)
szPatchedByte[0] = 0x90;
szPatchedByte[1] = 0x90;
szPatchedByte[2] = 0x90;
memcpy((LPVOID) 0x4071e7,
szPatchedCodes, 3);
© AhnLab, Inc. All rights reserved.
[방어 기법 2]

메모리 CRC 비교

TargetFPS.exe
Protector_dll.dll

OpenProcess
접근 방어

Memory CRC
비교

if (원본Mem_Crc32 != 현재Mem_Crc32)
코드조작 감지!

CodeModify.exe

BrainSwitching.exe

코드 조작 by OpenProcess

DLL_Injector.exe
CodeModify_dll.dll
코드 조작 by DLL-인젝션

© AhnLab, Inc. All rights reserved.
[공격 기법 4]

게임 코드 조작 By DR 조작

TargetFPS.exe
Protector_dll.dll

OpenProcess
접근 방어

Memory CRC
비교

CodeModify.exe

BrainSwitching.exe

코드 조작 by OpenProcess

DLL_Injector.exe
CodeModify_dll.dll
코드 조작 by DLL-인젝션
DR_Modify_dll.dll
코드 조작 by DR 조작

© AhnLab, Inc. All rights reserved.
[공격 기법 4]

게임 코드 조작 By DR 조작

LONG __stdcall DebugHookHandler(PEXCEPTION_POINTERS ExceptionInfo)
{ …
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; | THREAD_GET_CONTEXT |
if(ExceptionInfo->예외발생주소 == 0x4071e7)
hThread = OpenThread( THREAD_SUSPEND_RESUME
SuspendThread(hThread )) &ctx )
Kernel32 ! AddVectoredExceptionHandler(0, DebugHookHandler)
{
ResumeThread( hThread |THREAD_QUERY_INFORMATION, FALSE, TargetThreadID )
SetThreadContext( 0x004071e7
ctx.Dr0 = (DWORD) hThread,
THREAD_SET_CONTEXT
ExceptionInfo->ContextRecord->Eip = 0x004071e7 + 0x3; Return..;
ctx.Dr7 |= 0x00000001
}…
}

TargetFPS.exe
DR_Modify_dll.dll
코드 조작 by DR 조작
AddVectoredExceptionHandler(..)
hThread = OpenThread(..)
SuspendThread( hThread )
ctx.ContextFlags=
CONTEXT_DEBUG_REGISTERS;
ctx.Dr0 = 0x4071e7;
ctx.Dr7 |= 0x00000001;
SetThreadContext( hThread,&ctx );
ResumeThread( hThread );

© AhnLab, Inc. All rights reserved.
[공격 기법 4]

게임 코드 조작 By DR 조작

Kernel32 ! AddVectoredExceptionHandler(0, DebugHookHandler)
hThread = OpenThread( THREAD_SUSPEND_RESUME | THREAD_GET_CONTEXT |
THREAD_SET_CONTEXT |THREAD_QUERY_INFORMATION, FALSE, TargetThreadID )
SuspendThread( hThread )
ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS;
ctx.Dr0 = (DWORD) 0x004071e7
ctx.Dr7 |= 0x00000001
SetThreadContext( hThread, &ctx )
ResumeThread( hThread )
LONG __stdcall DebugHookHandler(PEXCEPTION_POINTERS ExceptionInfo)
{ …
if(ExceptionInfo->예외발생주소 == 0x4071e7)
{
ExceptionInfo->ContextRecord->Eip = 0x004071e7 + 0x3; Return..;
}…
}

© AhnLab, Inc. All rights reserved.
[공격 기법 4]

게임 코드 조작 By DR 조작

Debug Register

DR0 = BP 주소

[예외 핸들러]
인터럽트 1

인터럽트 발생 당시
의 CPU 레지스터 정
보를 갖고 있음

© AhnLab, Inc. All rights reserved.
[공격 기법 4]

게임 코드 조작 By DR 조작

Debug Register

• Debug Register: 디버깅 목적으로 프로세서에서 사용하는 레지스터
• DR0 ~ DR3
• BreakPoint를 설정할 주소를 저장
• DR6
• 디버그 상태 레지스터

• DR7
• 디버그 제어 레지스터 : breakpoint 상태를 선택적으로 활성화/비활성화

© AhnLab, Inc. All rights reserved.
조작 기법별 테크맵
TargetFPS.exe
Protector_dll.dll

OpenProcess
접근 방어

Memory CRC
비교

CodeModify.exe

BrainSwitching.exe

코드 조작 by OpenProcess

DLL_Injector.exe
CodeModify_dll.dll
코드 조작 by DLL-인젝션
DR_Modify_dll.dll
코드 조작 by DR 조작

© AhnLab, Inc. All rights reserved.
Thank you
Q&A
www.CodeEngn.com
2013 CodeEngn Conference 09
© AhnLab, Inc. All rights reserved.

Contenu connexe

Tendances

게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델Seungmo Koo
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)Seungmo Koo
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP AdvSeungmo Koo
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012Woojin Do
 
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기Jong Wook Kim
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화Seungmo Koo
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스noerror
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3Heungsub Lee
 
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈Minwoo Kim
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로Jaeseung Ha
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해Nam Hyeonuk
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCPSeungmo Koo
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 

Tendances (20)

게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv게임서버프로그래밍 #2 - IOCP Adv
게임서버프로그래밍 #2 - IOCP Adv
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
 
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
 
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
KGC 2014 가볍고 유연하게 데이터 분석하기 : 쿠키런 사례 중심 , 데브시스터즈
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
[NDC2015] C++11 고급 기능 - Crow에 사용된 기법 중심으로
 
Iocp 기본 구조 이해
Iocp 기본 구조 이해Iocp 기본 구조 이해
Iocp 기본 구조 이해
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 

Similaire à [2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석

[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start
[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start
[2007 CodeEngn Conference 01] 이강석 - Malware Analysis StartGangSeok Lee
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 
응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx
응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx
응컴 기말 - 4주차_명승훈_임희진_지상훈.pptxssuser506c05
 
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 ExploitGangSeok Lee
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8Jinkyoung Kim
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전James (SeokHun) Hwang
 
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석GangSeok Lee
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법Youngjun Chang
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)Covenant Ko
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기Jaeseung Ha
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작GangSeok Lee
 
Windows Debugging Technique #3
Windows Debugging Technique #3Windows Debugging Technique #3
Windows Debugging Technique #3Wooseok Seo
 
악성코드와 개인 정보 보호
악성코드와 개인 정보 보호악성코드와 개인 정보 보호
악성코드와 개인 정보 보호Youngjun Chang
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법Youngjun Chang
 
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라INSIGHT FORENSIC
 
테스트가 뭐예요?
테스트가 뭐예요?테스트가 뭐예요?
테스트가 뭐예요?Kyoung Up Jung
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrusJinookawk
 
악성코드와 개인 정보 보호
악성코드와 개인 정보 보호악성코드와 개인 정보 보호
악성코드와 개인 정보 보호Youngjun Chang
 

Similaire à [2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석 (20)

[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start
[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start
[2007 CodeEngn Conference 01] 이강석 - Malware Analysis Start
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx
응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx
응컴 기말 - 4주차_명승훈_임희진_지상훈.pptx
 
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8
 
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
 
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
[2012 CodeEngn Conference 06] x82 - 모바일 스마트 플랫폼 원격, 로컬 취약점 공격 분석
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
 
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
[NDC2015] 언제 어디서나 프로파일링 가능한 코드네임 JYP 작성기 - 라이브 게임 배포 후에도 프로파일링 하기
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger 활용과 플러그인 제작
 
Windows Debugging Technique #3
Windows Debugging Technique #3Windows Debugging Technique #3
Windows Debugging Technique #3
 
악성코드와 개인 정보 보호
악성코드와 개인 정보 보호악성코드와 개인 정보 보호
악성코드와 개인 정보 보호
 
보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법보안 위협과 악성코드 분석 기법
보안 위협과 악성코드 분석 기법
 
Dll 하이재킹
Dll 하이재킹Dll 하이재킹
Dll 하이재킹
 
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
(Ficon2016) #2 침해사고 대응, 이렇다고 전해라
 
테스트가 뭐예요?
테스트가 뭐예요?테스트가 뭐예요?
테스트가 뭐예요?
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrus
 
악성코드와 개인 정보 보호
악성코드와 개인 정보 보호악성코드와 개인 정보 보호
악성코드와 개인 정보 보호
 

Plus de GangSeok Lee

[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안GangSeok Lee
 
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
 
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 FuzzingGangSeok Lee
 
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼GangSeok Lee
 
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?GangSeok Lee
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KOGangSeok Lee
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study ENGangSeok Lee
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KOGangSeok Lee
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis ENGangSeok Lee
 
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드GangSeok Lee
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)GangSeok Lee
 
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기GangSeok Lee
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다GangSeok Lee
 
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과GangSeok Lee
 
[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware TrackerGangSeok Lee
 
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualizationGangSeok Lee
 
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploitsGangSeok Lee
 
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론GangSeok Lee
 
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽GangSeok Lee
 
[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against Botnet[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against BotnetGangSeok Lee
 

Plus de GangSeok Lee (20)

[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
 
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
 
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
 
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
 
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
 
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
 
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
 
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
 
[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker
 
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
 
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
 
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
 
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
 
[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against Botnet[2010 CodeEngn Conference 04] Max - Fighting against Botnet
[2010 CodeEngn Conference 04] Max - Fighting against Botnet
 

[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석

  • 1. 게임 해킹툴의 변칙적 공격 기법 분석 www.CodeEngn.com 2013 CodeEngn Conference 09 박근영 2013.11.30
  • 2. Contents 01 [ 공격 기법 1 ] 게임 코드 조작 By OpenProcess 02 [ 방어 기법 1 ] OpenProcess 접근 방어 03 [ 공격 기법 2 ] 게임 코드 조작 By BrainSwitching 04 [ 공격 기법 3 ] 게임 코드 조작 By DLL-Injection 05 [ 방어 기법 2 ] 메모리 CRC 비교 06 [ 공격 기법 4 ] 게임 코드 조작 By DR 조작
  • 3. 기사 자료 © AhnLab, Inc. All rights reserved.
  • 4. 실험 대상 TargetFPS.exe © AhnLab, Inc. All rights reserved.
  • 5. [공격 기법 1] 게임 코드 조작 By OpenProcess TargetFPS.exe CodeModify.exe 코드 조작 by OpenProcess hProcess =OpenProcess(…,TargetFPS_PID) VirtualProtectEx(hProcess, 0x4071e7, 0x3, PAGE_EXECUTE_READWRITE , ..) szPatchedByte[0] = 0x90; szPatchedByte[1] = 0x90; szPatchedByte[2] = 0x90; WriteProcessMemory(hProcess, 0x4071e7, szPatchedByte, 3, ..) © AhnLab, Inc. All rights reserved.
  • 6. [방어 기법 1] OpenProcess 접근 방어 TargetFPS.exe Protector_dll.dll OpenProcess 접근 방어 IF (OpenProcess 대상 PID==TargetFPS PID) IF (접근 시도 Process != OS Process) return FAIL CodeModify.exe 코드 조작 by OpenProcess hProcess =OpenProcess(…,TargetFPS_PID) VirtualProtectEx(hProcess, 0x4071e7, 0x3, PAGE_EXECUTE_READWRITE , ..) szPatchedByte[0] = 0x90; szPatchedByte[1] = 0x90; szPatchedByte[2] = 0x90; WriteProcessMemory(hProcess, 0x4071e7, szPatchedByte, 3, ..) © AhnLab, Inc. All rights reserved.
  • 7. [공격 기법 2] 게임 코드 조작 By BrainSwitching TargetFPS.exe Protector_dll.dll OpenProcess 접근 방어 IF (OpenProcess 대상 PID==TargetFPS PID) IF (접근 시도 Process != OS Process) return FAIL © AhnLab, Inc. All rights reserved. CodeModify.exe BrainSwitching.exe 코드 조작 by OpenProcess
  • 8. [공격 기법 2] 게임 코드 조작 By BrainSwitching CodeModify.exe CodeModify.섹션별VA, BrainSwitching.exe WriteProcessMemory(TaskMgr_PI->hProcess, pTaskMgr_Image , CodeModify.헤더 데이 pTaskMgr_Image = VirtualAllocEx(TaskMgr_PI->hProcess, CodeModify.이미지베이스, + ResumeThread(TaskMgr_PI->hThread) SetThreadContext(TaskMgr_PI->hProcess, &Context) Context.Eax = (CodeModify.이미지베이스 + &Context) GetThreadContext(TaskMgr_PI->hProcess,CodeModify.엔트리포인트주소) NtDll ! UnmapViewOfSection(TaskMgr_PI->hProcess, TaskMgr.이미지베이스) CreateProcess(.. ”TaskMgr.exe”, .. ,CREATE_SUSPENDED, .. , &TaskMgr_PI) CodeModify.섹션별 데이타, ..) X 섹션개수 타, ..) CodeModify.이미지전체사이즈, ..) CreateProcess(..) TaskMgr.exe CodeModify.exe (Process) (File-base) NtDll ! UnmapViewOfSection(..) header header VirtualAllocEx(..) .text .text WriteProcessMemory(..) WriteProcessMemory(..) .rdata .rdata GetThreadContext(..) .data .data .rsrc .rsrc Ctx.Eax = CodeModify.이미지 SetThreadContext(..) ResumeThread(..) © AhnLab, Inc. All rights reserved.
  • 9. [공격 기법 3] 게임 코드 조작 By DLL-Injection TargetFPS.exe Protector_dll.dll OpenProcess 접근 방어 IF (OpenProcess 대상 PID==TargetFPS PID) IF (접근 시도 Process != OS Process) return FAIL CodeModify.exe BrainSwitching.exe 코드 조작 by OpenProcess DLL_Injector.exe CodeModify_dll.dll 코드 조작 by DLL-인젝션 VirtualProtect(0x4071e7, 0x3, PAGE_EXECUTE_READWRITE , ..) szPatchedByte[0] = 0x90; szPatchedByte[1] = 0x90; szPatchedByte[2] = 0x90; memcpy((LPVOID) 0x4071e7, szPatchedCodes, 3); © AhnLab, Inc. All rights reserved.
  • 10. [방어 기법 2] 메모리 CRC 비교 TargetFPS.exe Protector_dll.dll OpenProcess 접근 방어 Memory CRC 비교 if (원본Mem_Crc32 != 현재Mem_Crc32) 코드조작 감지! CodeModify.exe BrainSwitching.exe 코드 조작 by OpenProcess DLL_Injector.exe CodeModify_dll.dll 코드 조작 by DLL-인젝션 © AhnLab, Inc. All rights reserved.
  • 11. [공격 기법 4] 게임 코드 조작 By DR 조작 TargetFPS.exe Protector_dll.dll OpenProcess 접근 방어 Memory CRC 비교 CodeModify.exe BrainSwitching.exe 코드 조작 by OpenProcess DLL_Injector.exe CodeModify_dll.dll 코드 조작 by DLL-인젝션 DR_Modify_dll.dll 코드 조작 by DR 조작 © AhnLab, Inc. All rights reserved.
  • 12. [공격 기법 4] 게임 코드 조작 By DR 조작 LONG __stdcall DebugHookHandler(PEXCEPTION_POINTERS ExceptionInfo) { … ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; | THREAD_GET_CONTEXT | if(ExceptionInfo->예외발생주소 == 0x4071e7) hThread = OpenThread( THREAD_SUSPEND_RESUME SuspendThread(hThread )) &ctx ) Kernel32 ! AddVectoredExceptionHandler(0, DebugHookHandler) { ResumeThread( hThread |THREAD_QUERY_INFORMATION, FALSE, TargetThreadID ) SetThreadContext( 0x004071e7 ctx.Dr0 = (DWORD) hThread, THREAD_SET_CONTEXT ExceptionInfo->ContextRecord->Eip = 0x004071e7 + 0x3; Return..; ctx.Dr7 |= 0x00000001 }… } TargetFPS.exe DR_Modify_dll.dll 코드 조작 by DR 조작 AddVectoredExceptionHandler(..) hThread = OpenThread(..) SuspendThread( hThread ) ctx.ContextFlags= CONTEXT_DEBUG_REGISTERS; ctx.Dr0 = 0x4071e7; ctx.Dr7 |= 0x00000001; SetThreadContext( hThread,&ctx ); ResumeThread( hThread ); © AhnLab, Inc. All rights reserved.
  • 13. [공격 기법 4] 게임 코드 조작 By DR 조작 Kernel32 ! AddVectoredExceptionHandler(0, DebugHookHandler) hThread = OpenThread( THREAD_SUSPEND_RESUME | THREAD_GET_CONTEXT | THREAD_SET_CONTEXT |THREAD_QUERY_INFORMATION, FALSE, TargetThreadID ) SuspendThread( hThread ) ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; ctx.Dr0 = (DWORD) 0x004071e7 ctx.Dr7 |= 0x00000001 SetThreadContext( hThread, &ctx ) ResumeThread( hThread ) LONG __stdcall DebugHookHandler(PEXCEPTION_POINTERS ExceptionInfo) { … if(ExceptionInfo->예외발생주소 == 0x4071e7) { ExceptionInfo->ContextRecord->Eip = 0x004071e7 + 0x3; Return..; }… } © AhnLab, Inc. All rights reserved.
  • 14. [공격 기법 4] 게임 코드 조작 By DR 조작 Debug Register DR0 = BP 주소 [예외 핸들러] 인터럽트 1 인터럽트 발생 당시 의 CPU 레지스터 정 보를 갖고 있음 © AhnLab, Inc. All rights reserved.
  • 15. [공격 기법 4] 게임 코드 조작 By DR 조작 Debug Register • Debug Register: 디버깅 목적으로 프로세서에서 사용하는 레지스터 • DR0 ~ DR3 • BreakPoint를 설정할 주소를 저장 • DR6 • 디버그 상태 레지스터 • DR7 • 디버그 제어 레지스터 : breakpoint 상태를 선택적으로 활성화/비활성화 © AhnLab, Inc. All rights reserved.
  • 16. 조작 기법별 테크맵 TargetFPS.exe Protector_dll.dll OpenProcess 접근 방어 Memory CRC 비교 CodeModify.exe BrainSwitching.exe 코드 조작 by OpenProcess DLL_Injector.exe CodeModify_dll.dll 코드 조작 by DLL-인젝션 DR_Modify_dll.dll 코드 조작 by DR 조작 © AhnLab, Inc. All rights reserved.
  • 17. Thank you Q&A www.CodeEngn.com 2013 CodeEngn Conference 09 © AhnLab, Inc. All rights reserved.