반응형 악성코드 분석/리버싱 팁3 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비트 메모리 주소의 어디든지 jmp가 가능하다. 이렇게 핫 패칭을 사용하게되면, jmp 코드가 실제 코드를 덮어쓸 염려 없이 안전하게 후킹이 가능하다. 2010. 12. 21. PE 구조 PE(Portable Excutable) 구조 -PE포맷은 프로그램 실행 파일의 제일 첫 부분에 존재한다. DOS Header DOS Stub PE File Header Optional Header Section Table Sections 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 numberWORD e_cblp;//Bytes on last page of fileWORD e_c.. 2010. 12. 9. 어셈블리 코드 해석 원본 : 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 later debugging. .text .align 2 ; .text is a section command (.data and .bss are ot.. 2010. 12. 1. 이전 1 다음 반응형