작성자는 코알못에 100% 바이브 코딩임을 미리 알리고 시작함
그리고 실제 바이러스가 있는 파일이 없었다보니 정확한 테스트는 못했고
정상 dll파일을 일반파일의 확장자로 바꾼거, txt파일을 dll 확장자로 바꾼거로만 테스트해본거라 여러모로 부족할 수 있음
암튼 py파일부터. 아래 사진 전통임
https://kone.gg/s/somisoft/a61GsWRilmKFfZYj2c2j0b
https://kone.gg/s/somisoft/a5MGSZbQ3QIRf2LIx_6j0b
두개 보고 원글 찾아보니 대충 다른 확장자인척 (예를들면 .ogg 라거나 .png 등등) dll파일을 숨겨놨고 그게 실행되는 구조인듯함
그래서 폴더 위치를 지정하면 안에 있는 파일 전부 조사해서 숨겨진 실행파일을 찾아내는 스크립트를 AI로 만듦
목표로 한건 확장자와 도스헤더가 일치하지 않는 경우 찾는 것임
PE(Portable Executable)파일은 윈도우 운영체제에서 사용하는 '실행 파일'의 표준 형식이라 하고 DOS Header는 MZ라고 함
암튼 exe dll 같은 파일만 말할거니 PE고 나발이고 그냥 실행파일이라 부르겠음
도스헤더는 MZ 면서 확장자 엉뚱한거만 찾아내려 했더니 AI놈이 이거저거 추가 하래서 3가지 검색되게 되었음
1.확장자가 실행파일이 아닌데 도스헤더는 MZ인 경우
1-1. PE시그니처(PE\0\0)가 있는 경우("위험"으로 표시)
1-2. PE시그니처가 없는 경우("변종압축 의심"으로 표시)
2.확장자가 실행파일인데 도스헤더는 MZ가 아닌 경우("경고"로 표시)
하나씩 자세히 설명하자면
(정상처리)도스헤더가 MZ 일때 확장자가 exe dll 이면 정상으로 처리함.
악성코드 대놓고 dll로 있으면 이 스크립트로 감지 안된다는 얘기임
근데 내 목표도 아니었거니와 윈도우디펜더가 먼저 잡아도 잡았을거라 생각하고 여기선 정상으로 넘김
(2번 경우)확장자가 실행파일인데 도스헤더가 MZ 아닌 경우부터 말하자면
이건 원래 넣을 생각 없었는데 AI가 이거도 위험할 수 있어욧!! 이래서 "경고"로 넣음.
게임에 따라 .dll에 이미지나 사운드 같은 게임 리소스 넣는대서 큰 문제는 아닐듯? 암튼 깡통이 위험할 수 있대
(1번 경우)확장자가 실행파일이 아닌데 도스헤더는 MZ인 경우가 원래 찾으려던 파일들임.
PE시그니처 여부에 따라 나뉘는데 나도 이게 뭔진 모르니 AI한테 물어보도록하자. 암튼 exe나 dll 같은 PE파일이면 있는 거라더라
(1-1경우)PE시그니처가 있는 "위험"의 경우
유니티 업글하면서 생기는 .dll~.old 파일(예시 Assembly-CSharp.dll.1.2.00a.old)은 정상적이고 안전한 파일인데 전부 찾도록 하다보니 이거도 "위험"으로 뜸. 일단 확장자는 old이고 내용물은 dll 파일이다보니 탐지되어버림.
코알못이 예외처리 잘못하다간 다 예외처리하면서 스크립트의 의미가 사라져버릴까봐 냅둠
(1-2경우)PE시그니처 없는 "변종압축 의심"의 경우
앞에서 PE파일이면 시그니처 있다해놓고 뭔 개소리임? 하겠지만 깡통놈이 그런 악성코드가 있다더라
깡통놈 말로는 파일이 '패킹(Packing)'되거나 '암호화'된 경우 PE시그니처가 보이지 않을 수 있다함.
나도 이 경우는 잘 모르다보니 위의 두가지는 테스트해서 뜨는거 확인했는데 얘는 테스트 못 해봄.
PS) 글 다쓰고 생각나서 테스트해본건데 메모장 제일 처음에 MZ라고 쓴거면 그거도 탐지되더라;;
앞서 언급했듯 오탐도 있으니 알아서 잘 쓰도록하자
원본 바이러스 파일이 없다보니 암호화 생각못하고 뻘짓함
어떻게 되어있는지 확인이라도 해야 고치는데 바이러스 파일이 나한텐 없어서 고칠 수가 읎어
