본문 바로가기
반응형

악성코드 분석20

[상세]Win32.Backdoor.Worm.IRCBot.23552 ※잘못된 내용은 지적해주시면 감사하겠습니다. PDF 파일 : 악성코드 분석 보고서 7z 파일 : 악성코드 샘플 (암호 : sample) ※이 악성코드는 분석 및 학습용으로 공유하는 것이기 때문에 악용을 금합니다!! 2011. 5. 10.
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.
LEA 명령과 MOV 명령의 차이점 LEA(Load Effective Address) 명령은 본질적으로 산술명령이다. 어떤 메모리 주소에 접근하는 작업을 수행하는 것이 아니라 일반적으로 주소를 계산하기 위해서 사용된다. 예를 들어 ESP : 0x0012FFBC 0x0040205E : "HELLO"인 경우에 mov EBP,ESP push 0040205E mov EAX,[EBP-4] lea EBX,[EBP-4]위 명령을 실행할 경우 EAX : 0040205E EBX : 0012FFB8의 값을 가지게 된다. 즉, EAX는 EBP-4가 가리키는 주소가 가지고 있는 0040205E 값이 저장되어 문자열 "HELLO"의 시작 주소가 저장되고 EBX는 EBP-4 값 그 자체인 0012FFB8 값이 저장된다 2010. 12. 20.
플래그 설정 명령어 연산자 예시 설명 stc stc 캐리 플래그(CF)를 1로 설정한다. clc clc 캐리 플래그(CF)를 0으로 설정한다. std std 방향 플래그(DF)를 1로 설정한다. cld cld 방향 플래그(DF)를 0으로 설정한다. sti sti 인터럽트 플래그(IF)를 1로 설정한다. cli cli 인터럽트 플래그(IF)를 0으로 설정한다. 2010. 12. 9.
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.
반응형