본문 바로가기

리버싱8

RegFsNotify (1) 파일 시스템 변화 알림 참고 도서 : [악성코드 분석가의 비법서 Malware Analyst's Cookbook and DVD] 저자 : 마이클 할레 라이, 스티븐 어드에어, 블레이크 할스타인, 매튜 리차드출판사 : 에이콘 참고 사이트 :- [위키백과] 콜백- [Joinc] winapi 알림 기반 도구는 콜백 함수를 틍록해 파일 시스템의 변화를 탐지한다. 콜백 함수는 감시하고 있는 디렉터리에 있는 파일을 임의의 프로세스가 변화시킨 경우 윈도우가 실행하는 개발자 정의 액션 (Programmer-defined action)이다. CallBack프로그래밍에서 콜백(callback)은 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할.. 2016. 7. 7.
Registry 참고 사이트 :- [나무위키] 레지스트리- [위키백과] 윈도우 레지스트리 레지스트리란, Microsoft Windows 운영 체제의 설정 및 정보를 담고 있는 데이터베이스다. 모든 하드웨어, 운영 체제 소프트웨어, 대부분의 비운영 체제 소프트웨어, 대부분의 비운영 체제 소프트웨어, 사용자 PC 선호도 등에 대한 정보와 설정이 들어 있다. 사용자가 제어판 설정, 파일 연결, 시스템 정책, 또는 설치된 소프트웨어를 변경하면, 이에 따른 변경 사항들이 레지스트리에 반영되어 저장된다. 레지스트리는 성능 카운터와 현재 사용하고 있는 하드웨어와 런타임 정보를 노출하면서 윈도우를 커널의 운영 체제 안에 제공한다. 구조레지스트리는 키와 값이라는 두 가지 기본 요소를 포함하고 있다. 레지스트리 키는 폴더와 비슷하다. 값.. 2016. 7. 6.
Stack 참고 도서 : [리버싱 핵심원리 : 악성 코드 분석가의 리버싱 이야기] 저자 : 이승원출판사 : 인사이트 참고 사이트 :- [위키백과] 스택 Stack스택(Stack)은 제힌적으로 접근할 수 있는 나열 구조다. 접근 방법은 언제나 목록의 끝에서만 일어난다. 즉, 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조 (LIFO, Last In First Out)으로 되어 있다. 자료를 넣는 것을 푸시(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 한다. 이 때 가장 최근에 보관한 자료부터 나오게 된다. 프로세스에서 스택 메모리의 역할은 아래와 같다. 1. 함수 내의 로컬 변수 임시 저장2. 함수 호출 시 파라미터 전달3. 복귀 주소 (return address) 저장 이와 같은 역.. 2016. 6. 12.
Stub Code 참고 도서 : [리버싱 핵심원리 : 악성 코드 분석가의 리버싱 이야기] 저자 : 이승원출판사 : 인사이트 침고 사이트 : - [위키백과] 메소드 스텁- [SecurityFactory] [개념 이해] Stub 코드- [SecurityFactory] [PE File] Compiler에 따른 실행파일 분석 방법 OllyDbg를 통해 디버깅을 하다보면 Stub Code가 섞여 있는 것을 알 수 있다. Visual C++, Delphi 등의 개발툴로 제작된 실행 파일들은 대개 이와 같은 형식으로 이루어져 있다. 따라서 이런 Stub Code를 눈에 잘 익혀 두면 항후 디버깅할 때 이런 부분은 빨리 건너뛸 수 있다. 또한 Stub Code는 개발도구에 따라 달라지며, 각개발도구끼리도 버전에 따라 달라진다. 따라서 .. 2016. 6. 8.
OllyDbg (1) 참고 도서 : [리버싱 핵심원리 : 악성 코드 분석가의 리버싱 이야기] 저자 : 이승원출판사 : 인사이트 참고 사이트 :- [위키백과] OllyDbg- [L4DY_8UG] 올리디버거(Ollydbg) 설치 및 사용법 OllyDbg 정식 사이트 : http://www.ollydbg.de/Quick start - version 1.10 : http://www.ollydbg.de/quickst.htm OllyDbg디버깅 프로그램 중 하나로 디스어셈블리와 디버그가 모두 가능한 툴이다. - 바이너리 코드 분석을 위한 x86 디버거- 소스 코드가 없을 때 유용하게 사용됨- 레지스터를 추적- 함수, API 호출, Switch 문, 표 (table), constant 그리고 문자열을 인식- 오브젝트 파일과 라이브러리에서.. 2016. 6. 5.