mov EDI,EDI (Hot Patching)

DLL 등을 리버싱하다보면 함수가 5개의 NOP 코드와 함께 MOV EDI,EDI로 시작되는데, 이 코드는 핫패칭을 위해 존재하는 코드이다. 핫 패칭은 필요한 코드를 시스템 재부팅 없이 즉각 메모리에 적용할 수 있는 기술로써, mov EDI,EDI에 앞의 5바이트 NOP 코드를 가리키도록 short JMP 명령을 패치하고, 5바이트 NOP 코드에 실제 long jmp 명령을 넣을 수 있게 MS에서 추가로 삽입한 코드이다. ※5바이트만 있으면 32비트 메모리 … 더 읽기

PE 구조

PE(Portable Excutable) 구조-PE포맷은 프로그램 실행 파일의 제일 첫 부분에 존재한다. DOS HeaderDOS StubPE File HeaderOptional HeaderSection TableSections IMAGE_DOS_HEADER IMAGE_NT_HEADER PE\0\0 IMAGE_FILE_HEADER IMAGE_OPTIONAL_HEADER IMAGE_SECTION_HEADER DOS Header-도스 헤더 부분은 IMAGE_DOS_HEADER라는 구조체로 구성되어 있다. typedef struct _IMAGE_DOS_HEADER{ WORD e_magic; //magic number WORD e_cblp; //Bytes on last page of file WORD e_cp; //Pages in file WORD e_crlc; //Relocations WORD … 더 읽기

어셈블리 코드 해석

원본 : http://www.daniweb.com/forums/post382693.html#post382693 간단한 C++ 코드의 어셈블리 코드와 해석 -C++ 코드- int main() {         short x=6;         short y=9;         short z;          z = x+y;         return 0; } -어셈블리 코드-         .file    “CSCILab03-1.cpp” ; This is the input source file.  This will probably make it into the ; assembler output as some kind of debug record for … 더 읽기
바로가기