본문 바로가기

리버싱6

[리버싱] UPX 패킹 UPX 패킹 UPX 패킹 upx -o "생성될 패킹 파일 경로" "패킹에 사용할 파일 경로" UPX 언패킹 upx -d -o "생성될 언패킹 파일 경로" "언패킹에 사용할 파일 경로" notepad.exe 파일을 upx 패킹을 해준다. 파일 사이즈가 66048에서 48128로 줄어든 것을 확인할 수 있다. 패킹 후의 notepad_upx.exe 파일을 PE view로 확인하면, Size of Raw Data의 크기가 0 임을 알 수 있다. 압축해제 코드와 압축된 원본코드가 두 번째 섹션에 존재하여 파일이 시작되는 순간 원본 코드를 첫 번째 섹션에 압축해제시키기 때문이다. 실습 * 원본 EP를 찾는 것이 핵심 EntryPoint의 주소 : 01014280 pushad : EAX, EBX, ECX, EDX,.. 2020. 11. 2.
[리버싱] Dreamhack 4,5번 보호되어 있는 글 입니다. 2020. 11. 2.
[리버싱] 32bit로 IAT, EAT 로딩 1. IAT(Import Address Table) : 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지를 기술한 테이블 - DLL로딩 방식 중 Implicit Linking - 프로그램이 시작할 때 같이 로딩되어 프로그램이 종료될 때 메모리에서 해제되는 방법 관련 구조체 IMAGE_IMPORT_DESCRIPTOR(IID) : 자신이 어떤 라이브러리를 import하고 있는지 명시해주는 구조체. - 라이브러리 개수만큼 위 구조체의 배열 형식으로 존재. - 구조체 배열의 마지막은 NULL typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; DWORD OriginalFirstThunk; //INT(Import Name Ta.. 2020. 11. 2.
[리버싱] fs redirection, 3번, c코드 변환 보호되어 있는 글 입니다. 2020. 9. 21.
[리버싱] 호출규약(32bit/64bit), 0번, crackme, c코드 변환 보호되어 있는 글 입니다. 2020. 9. 13.
[리버싱] 32bit 레지스터, 스택 구조 및 스택 프레임 1. 32bit Register 비트란, 2진수 0과 1을 포함할 수 있는 크기 32비트 운영체제는 2^32만큼 사용하는 운영체제 32비트에서는 8개의 범용 레지스터를 사용 64비트에서는 레지스터가 4바이트에서 8바이트로 나뉨 (1) 범용 레지스터 : 16비트 레지스터 + E접두사 EAX (Extend Accumulator register) : 산술 연산 ECX (Extend Counter register) : 시프트/회전 연산과 루프 EDX (Extend Data register) : 산술 연산과 I/O 명령 EBX (Extend Base register) : 데이터의 주소를 가리키는 포인터 ESP (Extend Stack Pointer register) : 스택의 최상단을 가리키는 포인터 EBP (E.. 2020. 9. 8.