Reversing 발표자 : 박현우.

Slides:



Advertisements
Similar presentations
1/ 편집 기능 사용하기 – 실습 1 글자 모양을 바꾸고 싶은 곳을 블록 설정 [ 글자 모양 ] 대화 상자에서 [ 글꼴 ] ‘ 궁서체 ’, [ 글자 색 ] ‘ 토마토색 ’ 으로 선택 → [ 설정 ] 클릭 → 글자 모양 변경.
Advertisements

옴니아 2 무선 인증 매뉴얼 ( 윈도우 모바일 폰 설정 동일 ). ▶다음 화면은 옴니아 2 및 윈도우모바일을 사용하는 스마트폰 기기들의 무선인증을 하기 위한 화면입니다. ▶윈도우 모바일폰의 경우 무선인증서를 발급받기 위해 폰의 레지스트리 설정을 조정해 주어야 합니다.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
임직원 APP 설치 가이드 경영전략처 정보기획 TF 팀. 임직원 App- 운영체제 구분  안드로이드 갤럭시, 갤럭시노트, 갤럭시 S4 [ 삼성전자 ] 옵티머스 [LG 전자 ] 베가 [ 팬텍 모토로이 [ 모토롤라 ]  ios 아이폰 [ 애플.
실행파일 (PE) 의 구조. PE(Portable Executable)  정의 : PE 구조로 된 PE 파일들은 플랫폼에 관계없이 Win32 운영 체제가 돌아가는 시스템이면 어디서든 실행 가능하다는 의미 EXE 와 DLL 등의 파일구조를 PE 파일 포맷이라고 명명함.
난이도 : 초급 제1장 앱 인벤터 소개 및 준비.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
엑셀리포트를 이용한 날짜별 리포트 자동 저장 방법
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Image & Video processing
피티라인 파워포인트 템플릿.
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
코크파트너 설치 가이드 Window 7.
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
SSL - VPN 사용자 가이드 - IT 지원실 네트워크 운영팀 -.
연결리스트(linked list).
컴퓨터 프로그래밍 기초 [Final] 기말고사
PHP입문 Izayoi 김조흔.
Linux/UNIX Programming
DPR-1630&1615 IP공유기 셋팅 방법 고객지원팀 작성자 : 정청석.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
Ubiquitous Computing Practice - Part I (Installation) -
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
Java 기초 (Java JDK 설치 및 환경설정)
한국골프대학 종합정보시스템 Windows Vista 사용자를 위한 Component 설치안내서
한국골프대학 종합정보시스템 Windows 7 사용자를 위한 Component 설치안내서
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
① 모든 인터넷 브라우저를 닫는다 ② uninstall_flash_player.exe 실행하여 flash player 삭제한다
파이프와 exec 시스템 호출 (ls | wc)
Root Filesystem Porting
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
6강. Servlet 본격적으로 살펴보기-II
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
자바 설치 매뉴얼 1. 실행중인 모든 프로그램을 종료한다. 2. 설치된 자바를 모두 제거한다.
자바 설치 매뉴얼 1. 실행중인 모든 프로그램을 종료한다. 2. 설치된 자바를 모두 제거한다.
Slice&link.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
자바응용.
7가지 방법 PowerPoint에서 공동 작업하는 다른 사용자와 함께 편집 작업 중인 사용자 보기
IPython Notebook + Spark + TensorFlow on MacOS
영상처리 실습 인공지능연구실.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
HyperWorks Apps 설치 가이드.
인천대학교 웹과 인터넷 수업 개요 및 내용 소개.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
데이터 동적 할당 Collection class.
소리 편집 안 재 형.
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
WZC 무선 연결 방법 (Windows 7 Ver.).
기초 C언어 제14주 실습 전처리 및 비트필드, 스트림과 파일 입출력, 동적메모리와 연결 리스트
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
05. General Linear List – Homework
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
발표자 : 이지연 Programming Systems Lab.
웹과 모바일 홈페이지의 이해와 제작 폰트_레이아웃
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
피티라인 파워포인트 템플릿.
CODE INJECTION 시스템B 김한슬.
엑셀 리포트를 웹 클라이언트에서 사용시 설정 방법
Presentation transcript:

Reversing 발표자 : 박현우

# contents 1. DLL Injection 2. DLL Ejection 3. PE 패치를 이용한 DLL 로딩

1. Dll 인젝션이란? DLL(Dynamic Linked Library) : 동적 연결 라이브러리 다른 프로세스에 침투하는 가장 쉽고 강력한 방법 다른 프로세스가 LoadLibrary() API를 스스로 호출하도록 명령하여 내가 원하는 DLL 파일을 강제로 삽입하는 것

1. Dll 인젝션이란? 예) notepad에 통신기능을 추가하여 메신저나 텍스트 웹브라우저 등으로 바꿔버릴 수 있다.

1. DLL 인젝션 방법 원격 스레드 생성(CreateRemoteThread() API) 레지스트리 이용(AppInit_DLLs 값) 메시지 후킹(SetWindowsHookEx() API)

1. DLL 인젝션 실습 방법 : 메모장에 DLL 파일을 인젝션하고, 인젝션된 DLL 파일은 인터넷에 접속하여 http://www.naver.com/index.html 파일을 다운받도록 한다. 실습 파일 notepad.exe , InjectDll.exe , myhack.dll 순서 InjectDll.exe와 myhack.dll 파일을 다운받아 C:\work\ 에 복사 메모장(notepad.exe) 을 실행하여 PID(Process ID) 를 확인 cmd 창에서 InjectDll.exe 를 실행

1. DLL 인젝션 실습

1. DLL 인젝션 실습

1. DLL 인젝션 실습

2. DLL 이젝션 실습 DLL 인젝션의 반대 다른 프로세스가 FreeLibrary() API 를 스스로 호출하도록 명령하여 삽입한 DLL 파일을 제거하는 것 (CreateRemoteThread()로 인젝션한 경우만 가능) 실습 파일 - EjectDll.exe 방법 : cmd 창에서 EjectDll.exe 실행

2. DLL 이젝션 실습

3. PE 패치를 이용한 DLL 로딩 지금까지 알아 본 것은 DLL을 ‘실행 중인 프로세스’에 DLL을 강제로 인젝션하는 방법 < 목 표 > 대상 프로그램 파일 자체를 직접 수정하여 실행 시 내가 원하는 DLL을 자동으로 로딩하도록 한다. 한 번 적용해 놓으면 별도의 인젝션 과정 없이 프로세스가 시작할 때마다 원하는 DLL을 로딩

3. PE 패치를 이용한 DLL 로딩 < 알고 있어야 하는 개념 > PE(Potable Executable) Header 구조 IAT(Import Address Table) IID(Image Import Descriptor) : 임포트하는 DLL파일 마다의 구조체 IDT(Import Directory Table) : PE 파일에서 임포트하는 DLL에 대한 정보가 구조체 리스트 형식으로 저장 INT(Import Name Table) RVA(Relative Virtual Address) : 메모리에서의 상대적 주소

3. PE 패치를 이용한 DLL 로딩 실습 파일 TextView.exe , myhack3.dll , 실습 파일 TextView.exe , myhack3.dll , < 패치 아이디어 > IDT 리스트의 마지막에 myhack3.dll 파일을 추가! (DLL 파일은 ‘구글 웹사이트’의 index.html 파일을 다운)

3. PE 패치를 이용한 DLL 로딩

3. PE 패치를 이용한 DLL 로딩

3. PE 패치를 이용한 DLL 로딩 이 부분을 다른 넓은 위치로 옮기기 위한 빈 영역을 찾는다!

3. PE 패치를 이용한 DLL 로딩 이 비어있는 영역이 진짜 Null Padding 영역인지 확인 필요!

3. PE 패치를 이용한 DLL 로딩 TextView.exe 패치 작업! PEView : PE 헤더 정보를 확인하는데 사용 HxD(Hex Editor) : 실제로 파일의 값을 변경(패치)하는데 사용 패치 할 새로운 영역의 주소로 IDT를 옮긴다. myhack3.dll을 위한 IID구조체를 구성하여 IDT의 끝에 추가. 정상적으로 실행하기 위한 값(INT, Name, IAT) 세팅. IAT 섹션의 속성(Characteristics) 변경.

3. PE 패치를 이용한 DLL 로딩 이제 IMPORT table이 주소 8C80 위치에 존재하는 걸로 간주된다.

3. PE 패치를 이용한 DLL 로딩 TextView.exe 패치 작업! – 1) 2) IDT 복사 myhack3.dll을 위한 IID 구조체 추가

3. PE 패치를 이용한 DLL 로딩 TextView.exe 패치 작업! – 3) INT, Name, IAT 세팅

3. PE 패치를 이용한 DLL 로딩 TextView.exe 패치 작업! – 4) 속성 변경

3. PE 패치를 이용한 DLL 로딩 WRITE 속성이 추가됨! – 메모리에 로딩될 때 실제 함수 주소로 덮어써야 하므로 필요

3. PE 패치를 이용한 DLL 로딩 확인!

3. PE 패치를 이용한 DLL 로딩 확인!

감사합니다.