CODE INJECTION 시스템B 김한슬.

Slides:



Advertisements
Similar presentations
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
Advertisements

DB 프로그래밍 학기.
DB 프로그래밍 학기.
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
제 08 장 자바 빈즈 학기 인터넷비즈니스과 강 환수 교수.
Network Lab. Young-Chul Hwang
연결리스트(linked list).
-Part2- 제3장 포인터란 무엇인가.
스크립트 SWF 파일 Exploit Drive by Download 분석.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
Unix Project2 <test character device 생성>
시스템 보안 [Buffer Overflow] DEC, 15, 2013 By 박동혁.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
C 프로그래밍.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
26. 매크로와 전처리기.
DK-128 ADC 실습 아이티즌 기술연구소
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
부트로더와 Self Programming
WinCE Device Driver 실습 #2
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
자바 5.0 프로그래밍.
11장. 1차원 배열.
Grade Server Team14. Attention Seeker
Operating Systems Chapter 03 프로세스 개념.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
메모리 관리 & 동적 할당.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
자바 5.0 프로그래밍.
System.Threading Process / Thread SD50 – C# & .NET Platform.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
데이터베이스실험실 석사 2학기 조정희 TCP/IP Socket Programming… 제 18장 윈도우 기반 쓰레드 사용하기 데이터베이스실험실 석사 2학기 조정희
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
계산기.
CHAP 21. 전화, SMS, 주소록.
다중처리 기술 School of Electronics and Information. Kyung Hee University.
Canary value 스택 가드(Stack Guard).
( Windows Service Application Debugging )
데이터 동적 할당 Collection class.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
05. General Linear List – Homework
발표자 : 이지연 Programming Systems Lab.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
제 4 장 Record.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
Completion Port기반의 채팅프로그램
 6장. SQL 쿼리.
Reversing 발표자 : 박현우.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
7 생성자 함수.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

CODE INJECTION 시스템B 김한슬

목차 Code injection이란? Code injection의 소스코드 Code injection의 디버깅

Codeinjection.exe process 상대방의 프로세스에 독립 실행코드를 삽입한 후 원격스레드 형태로 실행하는 기법 / Thread인젝션이라고도 함. Codeinjection.exe process 1.inject data &code 2. Execute Target.exe process Thread param = 데이터 2. Threadproc() =코드

Dll injection과의 차이 Dll injection : dll의 코드에서 사용되는 모든데이터는 dll의 데이터영역에 위치하여 dll을 통째로 프로세스메모리에 삽입. Code injection : 필요한 코드부분만 인젝션하되 그 코드에서 사용되는 데이터도 같이 인젝션해주어야 정상적으로 코드가 실행. 인젝션된 데이터의 주소를 코드에서 잘 알아볼수 있도록 프로그래밍 해야함.

Code injection의 장점 메모리를 조금만 차지한다. 흔적을 찾기어렵다. 별도의 Dll파일 없이 code injector프로그램 있으면 구현가능.

Code injection 실습 Notepad를 실행시켜 pid를 확인한 후,

Code injection 실습 Codeinjection.exe pid로 실행시켜 메세지박스 출력하는 기능.

Code injection 소스코드 Main함수 : injectCode()함수 호출, 함수파라미터로 pid값 전달.

Code injection 소스코드 ThreadProc() : 상대방 프로세스에 실제 인젝션할 코드 독립적으로 실행하기 위해서 코드와 데이터를 함께 인젝션해문자열이나 api도 스레드파라미터로 넘어온 thread param구조체에서 사용 네개의 문자열과 두개의 api(loadlibrarya,getprocaddress:모든라이브러리함수 호출가능)를 가지고있음

Code injection 소스코드 InjectCode() : dll인젝션코드와 유사. 상대방 프로세스에 data와 code를 각각 메모리할당과 인젝션. CreateRemoteThread() api로 원격스레드 실행.

Code injection 디버깅 OllyDbg로 notepad.exe실행 후 notepad를 running.

Code injection 디버깅 인젝션된 스레드 코드 시작부터 디버깅되도록 옵션변경. → notepad에 스레드가 생성되면 해당 스레드함수 시작코드에서 디버깅 멈춤.

Code injection 디버깅 Process explorer로 notepad의 pid값을 구하고 Cmd로 codinjection.exe pid로 실행

Code injection 디버깅 코드인젝션이 성공하면 인젝션된 스레드 코드 시작위치에서 디버깅이 멈춘것을 확인 할 수 있다. = ThreadProc()함수 시작위치에서 멈춤.