본문 바로가기

스터디/SWING 리버싱

(7)
[리버싱] LAB 6-3 실습 분석 대상: Lab06-03.exe IDA로 분석하기 위해 열었는데, IDA가 제대로 분석하지 못했다. file의 속성을 확인해보니, 32bit 파일에 해당하기 때문에 32bit IDA로 분석해야한다. 다시 제대로 32bit IDA로 열어보니, 다음과 같은 디컴파일한 코드를 확인할 수 있었다. [코드 진행] step1) sub_401000함수의 return값이 0이라면, 이 프로그램은 종료된다. 만일 sub_401000함수의 return값이 1이라면, 이 프로그램은 진행되어 다음 단계로 진입한다. step2) sub_401040함수의 return값이 1이라면, 내부의 코드가 실행된다. (sub_401040함수의 return값이 0이라면, 바로 프로그램은 종료된다.) step3) sub_401271(aSu..
[Reversing] Concept of IAT & EAT and Practice Concept of IAT & EAT [STEP 1] 라이브러리 등장 필요한 함수를 누군가 이미 만들어놓았다면 직접 코드를 작성하지 않고도 가져다 사용할 수 있다. 이를 라이브러리 함수라고 한다. printf("hello world!"); 도 원래는 직접 작성해야 하지만, 화면에 출력해주는 printf함수를 구현해놓았기 때문에 한줄로 구현할 수 있는 것이다. 참고자료: printf 구현 방법 Code for printf function in C - Stack Overflow [STEP 2] DLL(동적 라이브러리) 등장 윈도우 개발자들이 개발하기 시작하면서, 라이브러리 함수를 직접 포함하지 않고 필요할 때마다 갖다 쓰는 DLL 방식이 등장했다. 시기 방법 DOS 사용 시절... Static library..
[Dreamhack] rev 4, rev5, rev 6 보호되어 있는 글입니다.
[Reversing] 패킹 & UPX 문서화 및 PEiD 결과 비교 패킹이란? 프로그램 코드의 크기를 줄이기 위해 압축하거나, 프로그램 분석을 어렵게 하기 위해 암호화를 하는 것. 패킹을 하면, 악성코드가 은폐되고 문자열 검색이 안됨. (실제 악성코드들 중 몇몇은 리버싱을 막기 위한 패킹이 되어있음) 실습과정 0. 준비 1. 툴 없이 언패킹 2. PEiD 결과 비교 * PEiD? 패커를 탐지해주는 툴. 패킹 여부 확인 가능. 0. 준비 notepad.exe 32bit 버전과 upx를 다운 받아 동일한 폴더에 놓는다. (EP Section, 컴파일 환경 등 출력 가능) 참고자료: upx 다운로드 링크(Release UPX 3.96 · upx/upx (github.com)), PEiD 다운로드 링크(Download PEiD free - latest version (softf..
[dreamhack] rev2, rev3 보호되어 있는 글입니다.
[Reversing] PE헤더 PE 파일이란? 윈도우 운영체제에서 사용되는 실행파일의 형식 종류: exe, scr, sys, dll, ocx 등 32bit 형태의 실행파일 : PE 혹은 PE32 64bit 형태의 실행파일 : PE+ 혹은 PE32+ 실행과정 PE 파일 실행 PE 헤더 정보를 메모리에 매핑 -실제 프로세스를 위한 메모리 할당 -섹션 정보를 메모리에 복사 -import 정보 처리 -기준 재배치 처리 실제 프로그램 코드로 분기 notepad.exe파일이 일반적인 pe파일의 기본 구조를 담고 있으므로 주로 실습에 사용됨. 파일종류 File Memory 위치 표현 방법 offset VA(절대주소) 파일 내용 text(코드), data, rsrc 섹션에 나뉘어서 저장됨 VA(Virtual Address) : 가상 메모리 절대주소..
[1주차] 과제1, 과제2, 과제3 보호되어 있는 글입니다.