1. Execution sequence 첫번째로 GameGuard 의실행순서는다음과같습니다 오전 10:10:03 Type : Create 오전 10:10:03 Parent ID : 0xA 오전 10:10:03 Pro

Similar documents
SRC PLUS 제어기 MANUAL

ky55別冊表紙1用.indd

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

105È£4fš

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Orcad Capture 9.x

정규식 사용하기

별지 제10호 서식

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

디지털포렌식학회 논문양식

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - o8.pptx

DocsPin_Korean.pages

[ 악성코드상세분석보고서 ] SK 커뮤니케이션즈해킹관련상세분석보고서 nateon.exe 대응 2 팀

PowerPoint 프레젠테이션

Microsoft Word - [Windows Hook] 6.HideProcess.doc

강의10

Microsoft Word - building the win32 shellcode 01.doc

PCServerMgmt7

PowerPoint 프레젠테이션


PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

MODBUS SERVO DRIVER( FDA7000 Series ) STANDARD PROTOCOL (Ver 1.00) 1

CPX-E-PB_BES_C_ _ k1

Sharing Memory Between Drivers and Applications

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<B1E2BCFAB9AEBCAD28C0CCB5BFBCF6295F F6F6B696E672E687770>

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

PowerPoint 프레젠테이션

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

untitled

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

* ~2..

untitled

Deok9_Exploit Technique

Deok9_PE Structure

CD-RW_Advanced.PDF

슬라이드 1

°ø±â¾Ð±â±â

AhnLab_template

BEef 사용법.pages

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

hlogin7

No Slide Title

화판_미용성형시술 정보집.0305

DLL Injection

thesis

장기계획-내지4차

USER GUIDE

Microsoft Word - FunctionCall

제20회_해킹방지워크샵_(이재석)

ȸ¿ø»ç¸®½ºÆ®

6주차.key

2

Chap06(Interprocess Communication).PDF

003_°³Á¤3ÀúÀ۱dz»Áö

untitled

3.20 테러 악성코드바이너리분석 손충호 (StolenByte) WOWHACKER Group 해당문서는 WOWHACKER Group 의문서이므로, 무단도용및수 정및변조는할수없습니다. 페이지 1 / 20

VTP(VLAN Trunk Protocol) Cisco 전용프로토콜로서트렁크로연결된스위치간에 VLAN 정보를공유하는기능을수행한다. 즉, 하나의스위치에서 VLAN을생성하거나, 삭제또는수정을실시하면, 트렁크로연결된다른스위치에게변경된 VLAN 데이터베이스정보를공유하는기능을담

The_IDA_Pro_Book

공개키 암호 방식

Citrix Workload Balancing 2.1 설치 가이드

GSC Incident Report-바이킹 바이러스 분석

PowerPoint Presentation

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

API 매뉴얼

02-출판과-완성

Level 1. Trivial level1]$ cat hint level2 권한에 setuid 가걸린파일을찾는다. level1]$ find / -user level2 2>/dev/null find / 최상위폴더부터찾겠다. -u

data_ hwp

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

rmi_박준용_final.PDF

DBPIA-NURIMEDIA

< C1BEC7D5C0B0BCBAB0E8C8B C0FD292E687770>

Mango-E-Toi Board Developer Manual

(Microsoft Word - \304\277\263\316\275\272\306\324\270\336\300\317\267\257_Rustock.doc)

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

282서비스업관리-마트

MB525_M_1104_L.pdf

0x <main+41>: lea eax,[ebp-264] 0x f <main+47>: push eax 0x080484a0 <main+48>: call 0x804835c <strcpy> 0x080484a5 <main+53>: add esp,0x1

Vertical Probe Card Technology Pin Technology 1) Probe Pin Testable Pitch:03 (Matrix) Minimum Pin Length:2.67 High Speed Test Application:Test Socket

Mango220 Android How to compile and Transfer image to Target

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

목 차

1217 WebTrafMon II

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

PowerPoint 프레젠테이션

<31302E204D43545F47535FC3D6C1BEBAB8B0EDBCAD2E687770>

슬라이드 1

GMW3059 적용을 위한 업체 현황 조사

Microsoft PowerPoint - IOControl [호환 모드]

W5300 Datasheet

MAX+plus II Getting Started - 무작정따라하기

W5300 Datasheet

Transcription:

#44u61l5f GameGuard 에대한간단한분석. By Dual5651 (http://dualpage.muz.ro) 요약 : 이문서는분석자의입장에서 GameGuard의동작을모니터링한것에대한것입니다. 실제 GameGuard의동작방식과는다소차이가있을수있습니다. 이문서에등장하는모든등록상표에대한저작권은해당저작권자에게있습니다.

1. Execution sequence 첫번째로 GameGuard 의실행순서는다음과같습니다. 00000011 오전 10:10:03 Type : Create 00000012 오전 10:10:03 Parent ID : 0xA78 00000013 오전 10:10:03 Process ID : 0x848 00000014 오전 10:10:03 EPROCESS : 0x82E45DA0 00000015 오전 10:10:03 Process Name : Loader.exe 대게, 게임을실행시키기전, Loader 가먼저실행된다. 00000016 오전 10:10:04 Type : Create 00000017 오전 10:10:04 Parent ID : 0x848 Loader.exe 00000018 오전 10:10:04 Process ID : 0x6B8 00000019 오전 10:10:04 EPROCESS : 0x83FC4DA0 00000020 오전 10:10:04 Process Name : game.exe game.exe 이 Loader 에의해실행된것을볼수있다. 00000021 오전 10:10:04 Type : Destroy 00000022 오전 10:10:04 Parent ID : 0xA78 00000023 오전 10:10:04 Process ID : 0x848 00000024 오전 10:10:04 EPROCESS : 0x82E45DA0 00000025 오전 10:10:04 Process Name : Loader.exe Game.exe 를실행시킨후, Loader.exe 는파괴된다. 00000034 오전 10:10:05 Type : Create 00000035 오전 10:10:05 Parent ID : 0x6B8 game.exe 00000036 오전 10:10:05 Process ID : 0x1C4 00000037 오전 10:10:05 EPROCESS : 0x819BBB28 00000038 오전 10:10:05 Process Name : GameGuard.des GameGuard.des 의역할은보호를수행하기위한초기화작업등을수행하는 것으로보인다. Game.exe 에의해실행된다.

00000039 오전 10:10:08 Type : Create 00000040 오전 10:10:08 Parent ID : 0x6B8 game.exe 00000041 오전 10:10:08 Process ID : 0x4A4 00000042 오전 10:10:08 EPROCESS : 0x829D0DA0 00000043 오전 10:10:08 Process Name : GameMon.des gamemon.des 은실제적인감시자의역활로보인다. ( 많은프로세스에접근을시도한다.) 이파일이메모리에로드될쯤해서 SDT Restore과정이수행되어진다. (SDT Restore 0.2에기반을둔것이아닌, 0.1에기반을둔것으로보인다.) 00000044 오전 10:10:16 Type : Destroy 00000045 오전 10:10:16 Parent ID : 0x6B8 game.exe 00000046 오전 10:10:16 Process ID : 0x1C4 00000047 오전 10:10:16 EPROCESS : 0x819BBB28 00000048 오전 10:10:16 Process Name : GameGuard.des 초기화작업을마치고, gamemon.des 가실행된후, GameGuard.des 는파괴된다. 사용자가 game.exe의종료를요구하면, 다음과같은순서에따라파괴되게된다. 00000292 오전 10:11:02 Type : Destroy 00000293 오전 10:11:02 Parent ID : 0x848 00000294 오전 10:11:02 Process ID : 0x6B8 00000295 오전 10:11:02 EPROCESS : 0x83FC4DA0 00000296 오전 10:11:02 Process Name : game.exe 게임이먼저사용자의요구에따라파괴된다. 00000297 오전 10:11:09 Type : Destroy 00000298 오전 10:11:09 Parent ID : 0x6B8 game.exe 00000299 오전 10:11:09 Process ID : 0x4A4 00000300 오전 10:11:09 EPROCESS : 0x829D0DA0 00000301 오전 10:11:09 Process Name : GameMon.des 다른프로세스에 Injection하여둔, npggnt.des를모두 unload 하고, 사용하였던 Device Driver를 unload한후, GameMon.des 도파괴된다.

2. Hook Chain GameGuard 는다음과같은 Hooking 을시도한다. 2.1 User Level GameGuard 는모든프로세스에 npggnt.des 를 Injection 시키는데, 이파일은다음과같은 Hooking 을시도한다. + [0x7C930000] ntdll.dll - target : 0x458AA5D0 ( npggnt.des), func : NtLoadDriver - target : 0x458AA720 ( npggnt.des), func : NtOpenProcess - target : 0x458AA020 ( npggnt.des), func : NtProtectVirtualMemory - target : 0x458AD6A0 ( npggnt.des), func : NtQuerySystemInformatio - target : 0x458AA270 ( npggnt.des), func : NtReadVirtualMemory - target : 0x458AB9D0 ( npggnt.des), func : NtSuspendProcess - target : 0x458AB5A0 ( npggnt.des), func : NtSuspendThread - target : 0x458AB860 ( npggnt.des), func : NtTerminateProcess - target : 0x458AB6F0 ( npggnt.des), func : NtTerminateThread - target : 0x458AA430 ( npggnt.des), func : NtWriteVirtualMemory - target : 0x458AD6A0 ( npggnt.des), func : RtlGetNativeSystemInfor - target : 0x458AA5D0 ( npggnt.des), func : ZwLoadDriver - target : 0x458AA720 ( npggnt.des), func : ZwOpenProcess - target : 0x458AA020 ( npggnt.des), func : ZwProtectVirtualMemory - target : 0x458AD6A0 ( npggnt.des), func : ZwQuerySystemInformatio - target : 0x458AA270 ( npggnt.des), func : ZwReadVirtualMemory - target : 0x458AB9D0 ( npggnt.des), func : ZwSuspendProcess - target : 0x458AB5A0 ( npggnt.des), func : ZwSuspendThread - target : 0x458AB860 ( npggnt.des), func : ZwTerminateProcess - target : 0x458AB6F0 ( npggnt.des), func : ZwTerminateThread - target : 0x458AA430 ( npggnt.des), func : ZwWriteVirtualMemory + [0x7C800000] kernel32.dll - target : 0x458A70E0 ( npggnt.des), func : CreateProcessInternalW - target : 0x458AAB80 ( npggnt.des), func : DebugActiveProcess - target : 0x458AACA0 ( npggnt.des), func : DeviceIoControl - target : 0x458ABB10 ( npggnt.des), func : GetProcAddress

- target : 0x458AAFA0 ( npggnt.des), func : LoadLibraryExW - target : 0x458AD0B0 ( npggnt.des), func : MapViewOfFile - target : 0x458AD310 ( npggnt.des), func : MapViewOfFileEx - target : 0x458ABC50 ( npggnt.des), func : MoveFileW - target : 0x458AA970 ( npggnt.des), func : OpenProcess - target : 0x458A8F80 ( npggnt.des), func : ReadProcessMemory - target : 0x458A96D0 ( npggnt.des), func : VirtualProtect - target : 0x458A9DB0 ( npggnt.des), func : VirtualProtectEx - target : 0x458A9240 ( npggnt.des), func : WriteProcessMemory + [0x77F50000] ADVAPI32.dll - target : 0x458AB4D0 ( npggnt.des), func : CreateProcessWithLogonW + [0x77E20000] GDI32.dll - target : 0x458ABE40 ( npggnt.des), func : GetPixel + [0x77CF0000] USER32.dll - target : 0x458AC080 ( npggnt.des), func : GetWindowThreadProcessI - target : 0x458A7FE0 ( npggnt.des), func : PostMessageA - target : 0x458A8350 ( npggnt.des), func : PostMessageW - target : 0x458A7410 ( npggnt.des), func : SendInput - target : 0x458A87F0 ( npggnt.des), func : SendMessageA - target : 0x458A8A10 ( npggnt.des), func : SendMessageW - target : 0x458A8A40 ( npggnt.des), func : SetCursorPos - target : 0x458A8BA0 ( npggnt.des), func : SetWindowsHookExA - target : 0x458A8DF0 ( npggnt.des), func : SetWindowsHookExW - target : 0x458A78B0 ( npggnt.des), func : keybd_event - target : 0x458A7D70 ( npggnt.des), func : mouse_event + [0x762B0000] WINSTA.dll - target : 0x458AD570 ( npggnt.des), func : WinStationTerminateProc * - 주로 Macro를차단할목적이나, game.exe,gamemode.des 로의접근을차단하는것에목적을둔 Hook들로보인다. 2.2 Kernel Level GameGuard가사용하는 sys파일은 dump_wmimmc.sys 라고알려져있으며, 다음과같은 SSDT Hooking을시도를합니다. service number : 31 + related nt function list_

- NtConnectPort - ZwConnectPort - redirected address : 0x848B2560 service number : 122 + related nt function list_ - NtOpenProcess - ZwOpenProcess - redirected address : 0xF7A6C682 service number : 128 service number : 137 + related nt function list_ - NtProtectVirtualMemory - ZwProtectVirtualMemory - redirected address : 0xF7A6C7FA service number : 186 + related nt function list_ - NtReadVirtualMemory - ZwReadVirtualMemory - redirected address : 0xF7A6C702 service number : 277

+ related nt function list_ - NtWriteVirtualMemory - ZwWriteVirtualMemory - redirected address : 0xF7A6C77E * 주로 game.exe 로의접근을차단하기위한 hook 으로보인다. service number : 502 + related function list - SendInput - redirected address : 0xF7A6C962 * KeServiceDescriptorShadow 의 SendInput 을 Hook 하여 Macro 를 차단하려는시도를하는것으로보인다. 또 ntoskrnl.exe 의 export table 에서다음과같은함수의 Hooking 을시도한다. module name : ntoskrnl.exe - base address : 0x804D9000 - entry point address : 0x806AE2BE - module full path : \WINDOWS\system32\ntoskrnl.exe + hooked function list + hooked function name : KeAttachProcess - hook type : opcode patching - redirected address : 0xF79A513E - hook module information_ : not found. + hooked function name : KeStackAttachProcess - hook type : opcode patching - redirected address : 0xF79A5038 - hook module information_ : not found.

* 보호하는 Process 로의메모리공간전환을근본적으로차단하고자 설치한 Hook 으로보인다. 3. Miscellaneous GameMon.des 는 C:\MyDocuments\Local Settings\Temp 에다음과같은파일들을생성한다. np5a.tmp np5b.tmp np5c.tmp np5d.tmp np5e.tmp np5f.tmp np60.tmp np61.tmp 위파일들은각각내용은다르며, PE포맷을가진실행파일이다. ggscan.des 라는파일은 GameMon.des 에만로드된다. Game.exe 내에도 npggnt.des 는설치되나, Hooking 의범위에서는 제외되는것으로보인다. npsc.des 라는파일은 game.exe 에만로드된다.