일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 포인터
- blind sql injection
- 메소드
- python
- lord of sql injection
- window
- jQuery
- htmlspecialchars
- 자바스크립트
- element 조회
- 사칙연산
- burp suite
- sql injection
- Pwndbg
- 백준 알고리즘
- 객체
- property
- github
- 김성엽 대표님
- xss game
- 파이썬
- suninatas 풀이
- 백준 파이썬
- 조건문
- 함수
- object
- IF문
- document
- 배열
- xss game 풀이
- Today
- Total
power-girl0-0
Hooking(후킹)이란? 본문
안녕하세요-!!
오늘은 hooking에 대해서 알아보도록 할거예요-!!
첫시작인만큼 활기차게 해보아요><
Hooking(후킹) 이란?
운영체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말합니다.
[참고 : 위키 백과]
* 간섭된 함수 호출, 이벤트, 메시지를 처리하는 코드를 '후크'라고 부릅니다. [ ' 갈고리로 중간을 낚는다. ' ]
결론적으로 후킹은 '갈고리처럼 특정 함수 코드를 가로채서 원하는 행위를 한 후 원래의 코드로 돌려주는 기법'을 뜻합니다-!!
따라서 후킹은 다양한 변조가 가능한 기술로 해커들이 오래전부터 자주 사용하는 기법이라고 할 수 있습니다.
보통 후크는 소프트웨어가 이미 실행중일 때 삽입되지만,
후킹은 응용 프로그램이 실행되기도 전에 사용할 수 있는 전략입니다.
물리적 수정
응용 프로그램이 실행되기 전 리버스 엔지니어링 기법으로 실행 파일 또는 라이브러리 소스를 물리적으로 수정하여 후킹을 할 수 있습니다.
* 리버스 엔지니어링 기법이란?
이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계 기법 등 자료를 얻어내는 일을 뜻합니다.
해당 기법은
- 함수 호출을 가로채서 모니터링 할 수 있습니다.
- 완전히 다른 함수로 대체하는데 사용될 수 있습니다.
즉, 후킹은 앱이 실행되면서 특정 메소드에 hook을 걸어 본인 마음대로 메소드의 리턴값, 메소드의 내용을 패치할 수 있습니다.
대처방안으로는
래퍼 라이브러리(Wrapper library)를 통해 함수 호출을 차단하는 것입니다.
wrapper를 만들 때, 응용 프로그램을 로드하는 라이브러리는 원본 라이브러리와 동일한 기능을 가진 자신만의 라이브러를 만듭니다.
즉, 접근할 수 있는 모든 기능은 원본과 대체된 라이브러리와 모두 동일한 것입니다.
래퍼 라이브러리는 원래 라이브러리의 기능 중 하나를 호출하거나 논리의 완전히 새로운 설정으로 대체되도록 설계할 수 있습니다.
이상 hooking에 대한 글이었습니다.
그럼 다음시간에 봅시당-!! ☺
'언어 > Android' 카테고리의 다른 글
Frida-trace -i 명령어 사용하기 (0) | 2020.09.13 |
---|---|
프리다(Frida) 기본 명령어 (0) | 2020.09.13 |
프리다(Frida) 서버 설치 및 연결된 프로세스 확인하기 (0) | 2020.09.05 |
파이썬 독립된 환경 구성하기 (0) | 2020.09.04 |
프리다 (Frida)란? (0) | 2020.09.04 |