이번에 파일바이러스 전용백신개발을 하고싶어서 Parite.B의 분석 및 전용백신개발을 해봤습니다. Windows7이상에서는 ASLR때문에 제대로된 감염이 되지 않아 분석환경은 XP로 진행하였습니다.
이 글에서는 분석내용은 자세하게 다루지 않고 전용백신개발하는데 있어서 필요했던 특징들만 포함하였습니다.
Parite.B는 감염파일에 Section을 생성하고 추가된 섹션에 EP값으로 조정하여 실행시 먼저 악성코드가 실행되도록합니다. 섹션헤더는 다음의 규칙을 가집니다.
|
위 규칙으로 생선된 이름으로 섹션을 추가하고 해당 섹션이 실행되도록 EP를 조정합니다. Parite.B의 치료로직을 짜는데 있어서 가장 어려웠던점은 코드의 다형성이었습니다. 생성되는 코드는 크기가 고정되지 않고 중간중간 nop처리와 어샘블리코드의 다양한 조합으로 이루어져 있어 어려웠습니다.
예) mov == push + pop
아무튼 이래저래 도전하면서 진행하였습니다. 최초에는 일반적인 ReadFile,WriteFile,SetFilePointer등을 이용하여 개발하였고 이후 MMF를 이용하여 코드를 수정하였습니다. 도전결과는????!! 성공했습니다!! 프로그램 실행 화면입니다.
치료완료라고 떳는데 과연 완료되었는지 확인해볼까요? 확인해는 프로그램은 7Zip설치파일입니다.
치료 전 |
치료 후 |
|
|
보시는 바와 같이 섹션하나가 제대로 없어졌네요!!! 실행이 잘되는지 한번확인해보겠습니다.
실행이 잘되는군요!! 코드 다형성때문에 조금 오래걸렸네요 처음에 개발당시에는 하드코딩하다보니 마음에 안들어서 프로젝트를 한번 엎었고 이후 MMF를 이용하여 개발했을 때 다른 파일바이러스와 파일다형성등 이식성 좋게 개발하다보니 오래걸렸네요...ㅠㅠ
암튼!!! 완성입니다!!
'Programming > Security Programming' 카테고리의 다른 글
[x64 Windows]프로세스 보호기능 구현 (0) | 2018.04.30 |
---|---|
SetUnhandledExceptionFilter를 이용한 AntiDebugging (0) | 2018.04.10 |
[SYSENTER Hooking] ZwOpenProcess/ ZwTerminateProcess 모니터링 (0) | 2017.07.20 |
SSDT후킹(SSDT Hooking)!! 파일삭제 거부 프로그램! (0) | 2017.06.06 |
[Win32 / C] ntdl.dlll의 InlinHook탐지 (0) | 2017.05.06 |
댓글