Module(dll) list
프로세스안에 있는 dll 목록
ejection 과정
-----
Eject
참고 : http://msdn.microsoft.com/en-us/library/ms686849(v=VS.85).aspx
HANDLE hModuleSnap = INVALID_HANDLE_VALUE; // 모듈리스트의 헨들값을 담는다
MODULEENTRY32 me32;
// Take a snapshot of all modules in the specified process.
hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID );
// 모듈리스트를 구해주는 함수, 3,4번 구현할때 쓰임
// ejection할 프로세스의 PID -> dwPid
// Set the size of the structure before using it.
me32.dwSize = sizeof( MODULEENTRY32 );
// Retrieve information about the first module,
// and exit if unsuccessful
if( !Module32First( hModuleSnap, &me32 ) ){
CloseHandle( hModuleSnap ); // Must clean up the snapshot object!
exit(0);
}
do {
// me32.szModule(모듈의 이름)이나 me32.szExePath(모듈경로)과
// 여러분이 입력한 DLL PATH나 NAME 을 비교해서 같다면 반복문을 멈춤
// 그렇게 하면 me32는 찾아낸 모듈(dll)의 정보를 가짐.
} while( Module32Next( hModuleSnap, &me32 ) );
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPid);
pThreadProc = (LPTHREAD_START_ROUTINE) GetProcAddress(hKernel32, "FreeLibrary");
hThread = CreateRemoteThread(hProcess, NULL, 0, pThreadProc, me32.modBaseAddr, 0, NULL);
// Do not forget to clean up the snapshot object.
CloseHandle( hModuleSnap );
------------
악성코드
악성 메일
URL
토렌트
-> 공식 홈페이지에서 다운 받기
바이러스 - 기생적인 형태(숙주가 있어야 함), 복제
자신 또는 자신의 변형코드를 실행프로그램(Host File) 시스템 영역 등
실행 가능한 부분에 복제하는 프로그램
웜 - 컴퓨터의 기억장소 또는 내부에 코드 또는 실행파일 형태로 존재
네트워크를 통해 자신을 복제하는 프로그램
실행 시 파일이나 코드를 네트워크와 전자우편 등을 통해
다른 시스템으로 자기 복제를 시도하는 형태
트로이목마 - netpos
자기 자신을 복제하지 않지만 악의적 기능을 포함하는 프로그램
악의적 목적에 적극적으로 활용되는 프로그램 또는 데이터 형태
특징 - 사용자에게 흥미를 유발하여 설치하도록 유도
특정 정보 유출,....
스파이웨어 - 사생활 침해 가능성이 있는 유해 가능 프로그램
사용자 동의 없이 또는 사용자를 속여 설치되어 다음 작업을 수행하는 프로그램
웹브라우저의 홈페이지 설정이나 검색 설정 변경 또는 시스템 설정 변경 .
정상 프로그램의 운영을 방해, 중지 또는 삭제
정상 프로그램의 설치를 방해
운영체제 또는 타 프로그램의 .... ...
Dowloader - dropper
Rootkit - 커널영역에 백도어를 심는 것, 은폐를 위한 목적
Keylogger - 키값을 수집하는 프로그램
Exploit - 취약점을 이용한 공격
Ransom Ware - 암호화 시켜서 복호화를 빌미로 돈을 요구
Kit (VirusGenerator) - 배우지 않아도 악성코드를 제작할 수 있도록 만들어놓은 도구
---------
악성 코드 분석 방법
동작(행동)분석 -> 한번 실행 해보고 악성 코드의 증상 확인
정적 분석 -> 악성코드를 실행하지 않고 분석
동적 분석 -> 악성코드를 실행하고 단계적으로 분석
동작 분석
Filemon -> 파일의 변화 감지
Regmon -> 레지스트리의 변화 감지
tcpView -> 네트워크의 변화 탐지
-> 위의 세개를 하나로 묶어놓은 프로그램 -> ProcMon
Procexp -> dll 확인, 프로세스 변화 관찰
WinAlysis -> 시스템 상태를 스냅샷 찍기은 후 기준을 잡은 다음
악성코드 실행 후 대조
----
정적 분석
디스어셈블러 -> 기계어를 어셈블리 언어로 변환 -> IDA Pro
-> 함수 위주로 분석
IDA Pro -> 그래픽 뷰로 전체적인 흐름을 확인 할 때 유용
PEid -> 패킹여부 확인
PEVIEW -> PE 구조에서 section 부분 확인
PEBrowser ->
------
동적 분석
OllyDBG
Wireshark
-> cmd -> regedit -> 레지스트리 확인
'Reversing' 카테고리의 다른 글
gdb commands (0) | 2015.07.22 |
---|---|
analysis malicious codes (0) | 2014.10.20 |
dll injection (0) | 2014.10.16 |
The usages of loadLibrary() for making dll and function pointer (0) | 2014.10.15 |
Anti-debugging (0) | 2014.10.14 |