본문 바로가기

Security study/Reversing

(10)
5week HW_LAB 6-4 보호되어 있는 글입니다.
5week HW_LAB 6-3 보호되어 있는 글입니다.
DLL Ejection 코드 보호되어 있는 글입니다.
DLL Injection 코드 보호되어 있는 글입니다.
32bit IAT, EAT 로딩 과정 및 개념 [0] DLL (Dynamic Linked Library) - 정의 : 동적링크, 실행파일에서 해당 라이브러리 기능을 사용 시 파일을 참조하여 기능을 호출. - 파일형식 : Linux - *.so, Windows - *.dll - Explicit Linkint : 프로그램에서 사용되는 순간 로딩하고 사용이 끝나면 메모리에서 해제 - Implicit Linking : 프로그램이 시작할 때 같이 로딩되어 프로그램이 종료될 때 메모리에서 해제 [1] IAT(Import Address Table) - 정의 : 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지 기술한 테이블 (1) IMAGE_IMPORT_DESCRIPTOP(IID) -> 자신이 어떤 라이브러리를 import하고 있는지 명시해주는 구조체,..
notepad.exe 패킹 언패킹(tool없이 패킹 풀기 & PEID 결과 비교) notepad.exe 파일 UPX로 패킹하기 notepad.exe 파일을 설치 후 upx.exe와 같은 경로로 옮긴다. upx로 notepad.exe를 패킹하여 notepad_upx.exe 파일을 생성하자. PEID 비교 둘의 차이점은 패킹된 notepad_upx.exe 파일을 PEID에 넣었을 때는 upx 0.89.6 - 1.02 ~ 라는 문자열을 확인할 수 있다는 점이다. 패킹된 파일이라는 것을 알 수 있다. PEview 비교 직접 pe 파일의 구조를 hex 값을 보면서 비교해본 결과 MS-DOS Stub program 까지는 일치하는 것을 볼 수 있었다. 그 후 IMAGE_NT_HEADERS 부터 달라지는 값을 확인할 수 있었다. tool 없이 패킹 풀기 패킹된 파일을 언패킹에 성공하면 위의 화면과..
PE 헤더(PE Header) [1] DOS Header - IMAGE_DOS_HEADER 구조체 IMAGE_DOS_HADER 구조체는 "WinNT.h" 헤더 파일에 정의되어 있고 64비트로 구성되어 있다. typedef struct _IMAGE_DOS_HEADER // DOS .EXE header { WORD e_magic; // Magic number WORD e_cblp; // Byte on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraphs WORD e_minalloc; // Minimum extra paragraphs needed WORD e_maxalloc; ..
어셈블리 명령어 정리 [1] 데이터 이동 명령어 - MOV : 값을 넣어줌, operand1 1, 1->0)으로 변경 - SHL : 왼쪽으로 쉬프트 연산 * 최하위 비트는 0으로 채워지고 기존 값은 CF 플래그 레지스터에 저장 - SHR : 오른쪽으로 쉬프트 연산 * 최상위 비트는 부호비트로 채워지고 CF 플래그 레지스터에 저장 - ROL/RCL : 왼쪽으로 쉬프트 연산, 최하위 비트는 최상위비트로 채워짐 - ROR/RCR : 오른쪽으로 쉬프트 연산, 최상위 비트는 최하위비트로 채워짐 [4] 제어 명령어 - CMP : 두 개의 오퍼랜드 비교(뺄셈 연산 후 플래그 설정) - TEST : 두 개의 오퍼랜드 비교(AND 연산 수행 후 플래그를 설정) - CALL : 해당되는 주소의 함수를 호출하여 수행 코드 위치로 옮김 - INT..