목록Hacking/Reversing (13)
minhui study
데이터 압축 ▷ 비손실 압축 : 파일 크기를 줄여서 보관 및 이동에 용이하도록 하려는 목적으로 사용됨. ▷ 손실 압축 : 파일에 의도적인 손상을 주어서 그 댓가로 압축률을 높이는 목적으로 사용된다. (jpg,mp3,mp4..) * 압축된 파일을 100% 원래대로 복원할 수 있으면 비손실 압축이고, 원래대로 복원 불가하면 손실 압축이다. ▷ 실행 압축 : 실행압축이란 말 그대로 실행 파일을 대상으로 파일 내부에 압축해제 코드를 포함하고 있어서 실행되는 순간에 미모리에서 압 축을 해제시킨 후 실행시키는 기술이다. 실행 압축된 파일 역시 PE파일이며 내부에 원본 PE파일과 decoding 루틴이 존재한다. EP(Entry Point) 코드에 decoding루틴이 실행되며서 메모리에서 압축을 해제시킨 후 실행된..
IAT(Import Address Table) 프로그램에서 어떤 라이브러리의 어떤 함수를 참조하고있는지 가르쳐주는 테이블 IMAGE_IMPORT_DESCRIPTOR PE파일은 자신이 어떤 라이브러리를 임포트하고 있는지 IMAGE_IMPORT_DESCRIPTOR구조체에 명시하고 있다. 1. IID의 Name 멤버를 읽어서 라이브러리의 이름 문자열을 얻는다 2. 해당 라이브러리를 로딩한다. → LoadLibrary(“ADVAPI32.dll”) 3. IID의 OriginalFirstThunk 멤버를 읽어서 INT 주소를 얻는다. 4. INT에서 배열의 값을 하나씩 읽어 해당 IMAGE_IMPORT_BY_NAME주소(RVA)를 얻는다. 5. IMAGE_IMPORT_BY_NAME의 ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
WOW64란? 64bit 플랫폼에서도 기존에 32bit용으로 개발된 어플리케이션이 실행될 수 있도록 하는 기능 WoW는 'Windows on Windows'를 의미하는 것으로 실제 64bit Windows 상에서 또 다른 32bit Window가 실행된다는 의미로 일종의 가상 머신(Virtual Machine) 환경을 제공한다고 이해하면 된다. WOW64 file system redirection 32bit 환경에서 만든 프로그램을 64bit 환경에서 실행시킬 때 32bit 프로그램이 system32폴더로 파일을 복사하게 되면 Windows는 자동으로 SysWOW64로 redirect하여 파일을 복사하게 된다. 그럼 system32폴더와 SysWOW64폴더는 무엇일까? 만약 64비트 윈도우즈에서 32비트..
#include "stdio.h" int L2(int &a, int &b, int &c){ if(c
먼저 main()문부터 살펴보자 → 값을 스택에 집어넣는 명령어로 main함수에서 RBP가 베이스 포인터 역할을 하게 될테니 RBP가 이전에 가지고 있던 값을 스택에 백업해두기 위한 용도로 사용된다. (나중에 main함수가 종료(return)되기 전에 이 값을 회복시켜 준다.) → 이 명령 이후부터 RBP는 현재 RSP와 같은 값을 가지게 된다. 그리고 main()함수가 끝날 때까지는 RBP값은 고정된다. 이 말은 즉 스택에 저장된 함수 파라미터와 로컬 변수들은 RBP를 통해 접근한다는 것이다. 위의 두 명령어를 통해 main()함수 스택 프레임이 생성되었다고 할 수 있다. → SUB는 빼기 명령어로 RSP에서 16을 빼라는 뜻이다. 16을 갑자기 빼는 이유가 뭘까? 16은 main()함수의 로컬 변수의..