슬라이드 1

Similar documents
Boundary Scan Design(JTAG) JTAG 의특징 Boundary Scan은기기의 input과 Output 핀들에대해가능하게해주는기본 DFT(Design for Test) 구조이다. 그림1에서는 IEEE Std 에상응하는기본 Boundary S

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

RealDSP UT 프로그램 메뉴얼

USBJTAG_V30_manual.hwp

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

DE1-SoC Board

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

JMOD : ATmega128 기본모듈 사용자설명서 제이씨넷

슬라이드 제목 없음

PowerPoint 프레젠테이션

CAN-fly Quick Manual

ºÎ·ÏB

Microsoft PowerPoint - e7.pptx

디지털공학 5판 7-8장

<4D F736F F F696E74202D20454D43BCB3B0E8B4EBC3A5BBE7B7CA2828C1D629B8B6B7E7C0CEC6F75FBDC5C1D6C8A3292E707074>

PowerPoint Presentation

_USB JTAG Ver1.0 User's Manual.hwp

PRO1_09E [읽기 전용]

Install stm32cubemx and st-link utility

ADP-2480

PowerPoint 프레젠테이션

슬라이드 제목 없음

Orcad Capture 9.x

Microsoft Word - EastSocket매뉴얼_ _.doc

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - AVR Dragon.doc

PowerPoint 프레젠테이션

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

슬라이드 1

Macaron Cooker Manual 1.0.key

Remote UI Guide

Microsoft Word - MV210_CPUSpec.doc

E-Con

API 매뉴얼

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

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

Car Hacking Training - 몽이와함께하는자동차해킹 - 강의소개 - 최근스마트카, 커넥티드카, 자율주행차와같은키워드들과함께차량에대한관심이나날이증가되고있습니다. 하지만이처럼자동차의기능이확장되고특히인터넷과주변기기에연결될수록해커로부터공격을당할수있는접점은더욱다양해

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

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

구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용 용이 TMS320F2808 ZGMS - 100MHz 탑재 : 확장된 온도규격 (-40 도 ~ 125 도) 적용 Ultralo

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

Microsoft PowerPoint - 02-Development-Environment-1.ppt

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee


<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

슬라이드 1

PowerPoint 프레젠테이션

1. 제품소개및설명 제품특징 그림. 개발장비사진 - AVR FLASH READ/WRITE 가능 - AVR ISP 프로그래밍방식을지원하는 ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega 등다수의 AVR MC

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

<4D F736F F D20B0B3B9DFC8AFB0E65FB4D9BFEEB7CEB5E55FB5F0B9F6B1EBBCB3C1A42E646F63>

PowerPoint Template

Microsoft Word - PLC제어응용-2차시.doc

하드웨어 해커가 되어보자!

<C6F7C6AEB6F5B1B3C0E72E687770>

Microsoft PowerPoint - ccs33_bios_PRD.ppt [호환 모드]

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft Word - Automap3

歯DCS.PDF

Mango220 Android How to compile and Transfer image to Target

ODS-FM1

<STM32CubeMX Guide In Korean>

PRO1_04E [읽기 전용]

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

59

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

airDACManualOnline_Kor.key

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

R50_51_kor_ch1

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft PowerPoint - 30.ppt [호환 모드]

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

*Revision History 날짜 내용 최초작성 Tel Fax [2] page

PowerPoint 프레젠테이션

TMS0F85 초소형메모리모듈매뉴얼 *Revision History 날짜 내용 Rev Rev..5., 부트모드선택회로설명추가, 참조전압회로설명추가 - Rev..5., 그림및표에캡션추가, JTAG PD핀전압선택설명추가 0

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - hw8.ppt [호환 모드]

텀블러514

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

<4D F736F F D E20B4DCB8BB20C1A1B0CB20B9D720C1B6C4A120B8C5B4BABEF35F76312E335F2E646F63>

Microsoft Word - EISC-GANG_User_Guide_V1.4.doc

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

BJFHOMINQJPS.hwp

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

STM32F2xx 시리즈의특성 Core: ARM 32-bit Cortex -M3 CPU with Adaptive real-time accelerator (ARTAccelerator ) allowing 0-wait state execution performance fro

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

BMP 파일 처리

5" TFT- LCD 및감압터치지원 : 800x480 USB Host 2.0, USB OTG 2.0, GPS, Wireless LAN, Ethernet 10/100Mbps 통신지원 300 만화소 CMOS Image Sensor 고해상도카메라모듈내장 전원은베이스보드에서공

Microsoft Word - AVRISP mkII 장비 운용.doc

Microsoft PowerPoint - ARM 개발 환경.ppt

Microsoft PowerPoint - CPLD_수정1.pptx

USBISP_V20_manual.hwp

Transcription:

JTAG Hacking mongii@grayhash

개요 하드웨어디버깅표준인 JTAG 의개념에대해이해한다. AVR 을이용하여 JTAG 을직접제어하는도구를개발해봄으로써작동원리를이해한다. 동적디버깅, Flash Memory Dump 등각종 JTAG 활용예제에대해알아본다.

JTAG 의개념이해하기 JTAG = 하드웨어디버깅의표준 CPU를마음대로제어할수있다. 즉, JTAG 연결에성공하면, 모든것을다할수있다.

JTAG 의탄생 JTAG : Joint Test Action Group 기술이름이자동시에그룹이름 하드웨어디버깅의표준 1990 년 : IEEE 에서표준화 기능 각 Pin 들의상태모니터링 Firmware 코드를 line by line 으로디버깅가능 Firmware dump, writing 가능 그외하드웨어적인모든것가능

JTAG 연결에사용되는핀들 TDI : Test Data In TDO : Test Data Out TMS : Test Mode Select TCK : Test Clock TRST : Test Reset (Optional)

TAP Controller JTAG 를제어하는핵심장치 JTAG 이무엇을할지명령을내릴수있다. 줄여서 TAPC 라고한다.

TAPC 상태도 (State machine)

TMS 와 TCK 를먼저이해하자 TMS 와 TCK 는 TAPC 의상태를변화시킨다. TMS : 방향전환 TCK : 이동

TDO, TDI, TRST TDO : JTAG 으로부터출력이나오는핀 TDI : JTAG 이입력을받는핀 TRST ( 필수는아니다 ) 리셋핀 Test-Logic Reset LOW 신호를주면 JTAG 이초기화됨 즉, TAPC 와레지스터들이초기화됨

Rising edge 와 Falling edge TCK : Clock 제공 ( 해커 -> 대상장비 ) TDI/TMS : Rising Edge 에실어보낸다. TDO : Falling Edge 직후에받는다.

TAPC 의상태설명

IR 과 DR IR : Instruction Register ( 명령레지스터 ) 4 비트크기 JTAG 을어떤모드로작동시킬것인가? 외부로노출된 TDI 와 TDO 를내부의어디에연결시킬지결정한다. 연결대상 : 내부 Boundary Cell 혹은특정레지스터 DR : Data Register ( 데이터레지스터 ) 실제데이터전송을위한레지스터 위 IR 에의해연결된대상의값이 DR 에저장된다. IR 의값에따라자동으로연결된다 종류 Boundary Cell 의값 그외레지스터들의값 (ex. ID Register, Bypass Register)

Instruction 의종류 (AVR 기준 ) 1111 : BYPASS JTAG 제어없이신호를그냥 bypass 시킴 0001 : TDI 와 TDO 를 ID 레지스터에연결 0010 : TDI 와 TDO 를 Cell 에연결, SAMPLE, 모니터링 0000 : TDI 와 TDO 를 Cell 에연결, EX-Test MCU 의출력핀을제어한다. 가장많이사용되는기능 1100 : RESET

대상 CPU, MCU 의 JTAG 이해하기

Atmega128A datasheet 254~255p

TAPC 상태설명 Test-Logic-Reset JTAG 초기화 Run-Test/Idle JTAG 작동시작

TAPC 상태설명 Select DR-Scan DR 영역과 IR 영역에대한분기점 Capture DR 현재 Cell 의내용을캡쳐 이때, 값이업데이트된다 Shift DR 해당값을 TDO 으로 1 비트씩출력 Exit1 DR, Pause DR, Exit2 DR : 분기점 Update DR Shift 하면서새로들어간 DR 값업데이트

TAPC 상태설명 Select IR-Scan : 분기점 Capture IR 현재 IR 의값을가져온다 Shift IR 새로운 IR 값을넣고, 동시에출력 Exit1 IR, Pause IR, Exit2 IR : 분기점 Update IR 앞서받은 IR 값업데이트

SHIFT-IR 과 SHIFT-DR TMS=0 일때자신을다시실행한다. 즉, 자신을다시실행할때마다값이 shift 된다. 이때새로운값을넣어주면 (TDI) 동시에기존값이밖으로 (TDO) 출력된다.

무엇을어디로 Shift 시키는가? SHIFT-IR TDI 가 IR 로연결된다. 즉, 우리가보내는입력이 IR 로전달된다. 동시에기존값이 TDO 로나온다. SHIFT-DR TDI 가 DR 로연결된다. 즉, 우리가보내는입력이 DR 로전달된다. 동시에기존값이 TDO 로나온다.

Capture-IR 과 Shift-IR Capture-IR IR 값을빼내올준비를한다. ( 값획득 ) 실제빼오는건 SHIFT-IR 에서한다. Shift-IR 쓰기와읽기를동시에한다 새값을넣으면기존값은나온다.

TAPC 를 reset 하는방법 1. /TRST 에 LOW 신호를준다. * TRST 핀이있을경우에해당 2. TMS 를 1 로둔채최대 6 번이동한다. - 현재어떤상태에있던지무조건 reset 으로간다.

JTAG 시스템의회로도

JTAG tool 개발실습 - IDCODE 읽기 -

IDCODE 읽기과정요약 IR 에 IDCODE 명령패턴을집어넣는다. Shift-IR, Update-IR 이용 DR 값을읽어서꺼내온다.

ID 레지스터란? Identification Register 32비트 비트 0 : IDCODE 존재여부 비트 1~11 : 제조사 비트 12~26 : 부품번호 비트 27~31 : 버전번호

ID 레지스터란?

IDCODE 요청 IR 레지스터 0001 이되어야함 즉, JTAG 의명령모드를 0001 로바꾸어야함 어떻게? TAPC 의상태를 Shift-IR 까지옮긴후, TDI 에 0001 을순서대로입력한다. 최하위비트부터입력, 즉반대로 1000 그럼 DR 레지스터에 IDCODE 가담길준비가된다.

IDCODE 획득 Shift-DR 로이동 DR <-> TDI/TDO 연결 TCK 가 1->0 으로변할때값이나옴 TDI 에아무값 ( 그냥 0) 을 32 번밀어넣어줘서 32 비트의 IDCODE 가나온게만든다.

실습문제 래빗보드 IDCODE 를가져오는 JTAG 툴을개발해보세요. 절차 JMOD128 보드의입출력핀을래빗보드의 JTAG 핀에입력한다. (TDO, TDI, TMS, TCK) TAPC 상태변화를통해 JTAG 을제어한다. TDO 로 IDCODE 값을얻어온다.

주의사항 래빗보드의 AVR 퓨즈비트들중 JTAGEN 값이 ENABLE 되어있어야한다. 퓨즈비트란? MCU 의기본상태를설정하는값 JTAGEN 상태에선 PORTF 의상위 4 비트를사용하지못하게된다.

핀들의현재값알아내기 (Monitoring)

핀들의현재값알아내기 IR => SAMPLE(Monitor) 모드 (0010) 로선택 DR 에 boundary-scan cell chain 이연결된다 Shift-DR : 204 개의 0 을밀어넣기 동시에 TDI 로나오는값을빼온다

결과출력예제

Boundary-Scan Order 몇번째 Boundary 가어떤핀에연결되어있는지를보여주는지도 Atmega128A : 총 204 개 254page 에있다. http://www.atmel.com/images/atmel- 8151-8-bit-AVR- ATmega128A_Datasheet.pdf

BSDL Boundary-scan Description Language Files (BSDL) Boundary Scan order 정보를담고있는공식파일포맷 AVR : http://www.atmel.com/tools/avrbsdlfiles.aspx

Atmega128 BSDL

Atmega128 BSDL

실습문제 래빗보드전핀의현재상태를가져오는 JTAG 툴을개발해보세요.

핀들의값제어하기

핀들의값제어하기 앞서얻어낸비트배열을가지고있는다. 제어를원하는비트를변조한다. IR => EXTEST 모드로변경한다. Shift-DR : 204개의새로운패턴을밀어넣는다. Update-DR을해준다.

JTAG 을이용한 Firmware 획득

일반적인 Firmware 획득 Flash memory 를 PCB 에서 desoldering 한다.

일반적인 Firmware 획득 Rom writer 혹은직접개발한도구를이용하여 Firmware 를획득한다.

일반적인 Firmware 획득 01010011101101010111~~ Flash memory 프로토콜에맞게전기신호를전송한다.

JTAG 을이용한 Flash Memory 덤프

JTAG 을이용한 Flash Memory 덤프 01010011101101010111~~ CPU 야너는이제부터 Flash dumper 다 ~

CPU 별 JTAG 장비들예시 ARM 용 ARM 용 AVR 용 MIPS 용

ARM 용 JTAG (JK JTAG)

ARM 용 JTAG (H-JTAG)

ARM 용 JTAG (J-Link)

JTAG 을이용한갤럭시 S1 Firmware 획득실습

갤럭시 S1 Spec ARM Cortex A8 : 이에맞는 JTAG 장비필요

갤럭시 S1 의하드웨어구성

갤럭시 S 의저장장치구성 onenand 여러개의파티션으로분할 /system/ (300 메가 ) /dbdata/ (100 메가 ) /cache/ (30 메가 ) movinand 2 개의파티션으로분할 내장 SD 카드 (14 기가 ) /data/ (2 기가 ) /dev/block/mmcxxx

RIFFBOX JTAG 실습장비소개

무적의 RIFFBOX JTAG 핸드폰, 스마트폰복구용도의 JTAG 일반디버깅용도로도사용가능 상대적으로저렴하다.

RIFFBOX JTAG 호환목록

RIFFBOX JTAG 호환목록

OneNAND 제어가능

갤럭시 S1 JTAG 포트찾기

갤럭시 S1 JTAG 포트찾기

갤럭시 S1 JTAG 포트찾기

어떻게연결하지? 1. 납땜 실납 확대도구 본인은세번의실패후에포기하였습니다.. 2. 전용 JIG 이용 해외쇼핑몰에서구매가능 http://www.aliexpress.com/item/gpg-33-in- 1-EASY-JIGS-33-IN-1-GPG-EASY- JIGS/1708309400.html

JTAG 납땜시도이야기

JTAG 전용 JIG

갤럭시 S1 <-> RIFFBOX 연결

갤럭시 S1 <-> RIFFBOX 연결

RIFFBOX JTAG 설치 http://www.riffbox.org/

RIFFBOX JTAG 설치 Drive 미인식시수동설치 \RIFF JTAG Manager\Drivers\

RIFFBOX JTAG 설치 RIFF Box JTAG Manager 실행 Box Service -> Firmware Update

갤럭시 S1 (M110S) 모듈설치 Box Service -> Check for Updates

JTAG 연결테스트 JTAG connect 후에도 target device 는정상적으로작동한다. (Halt the Target 을실행하지않는한 )

메모리읽기 / 쓰기테스트 Memory Read/Write 는올바른주소를 Address 에먼저설정해야함 Target Go 도마찬가지

펌웨어덤프실습

덤프된펌웨어파일의포맷 Samsung RFS(Robust File System)

펌웨어바이너리내의파일추출

펌웨어바이너리내의파일추출

펌웨어바이너리내의파일추출

펌웨어바이너리내의파일추출

펌웨어바이너리내의파일추출

JTAG 을이용한갤럭시 S1 Debugging 예제

UserfulPlugins -> emmcdiskpartitions 설치

Useful Plugins 탭 -> Activate Plugin

Boot Loader 덤프

Binary 로딩

Binary 로딩

Header 영역 SKIP

Binary 로딩

GDBServer 설치

GDBServerRIFF.exe 실행

Remote debugger 세팅

Debugger -> Start process

JTAG 동적디버깅참고영상 http://www.riffbox.org/riff_jtag_gdb_server_ida_debug_samsung_i9100.swf

JTAG Pin 찾기

JTAG 핀을찾는방법들 PCB 에 JTAG 이라고인쇄된식자확인 TDO, TDI, TMS, TCK 식자확인 CPU JTAG 핀들과의연결추적 JTAG Pin Scanning

JTAG 찾기예제

다양한 JTAG 인터페이스들

JTAG 찾기예제

JTAG 찾기예제

JTAG 찾기예제

JTAG 찾기예제

JTAG 찾기예제

JTAG 찾기예제

JTAG Pin Scanner

JTAG Pin Scanner https://github.com/cyphunk/jtagenum/blob/master/jtagenum.pde

JTAGulator 사용예제

JTAGulator 사용예제

JTAGEnum 사용예제

결론 JTAG 은개발자는물론해커에게매우유용한디버깅시스템이다. JTAG 을이용하면 Flash Memory 덤프및 Real-time debugging 이가능해진다. JTAG 연결에성공하면, 대상기기의내부를장악한것과다름없다.

Q/A

감사합니다.