변성 코드

Metamorphic code

변성 코드는 실행 시 논리적으로 동등한 버전의 자체 코드를 일부 해석에 따라 출력하는 코드다.이것은 Quine과 유사하지만, Quine의 소스 코드는 자신의 출력과 정확히 동일하다.또한 변성 코드는 보통 기계 코드를 출력하지만 자체 소스 코드는 출력하지 않는다.

개요

변성 코드는 안티바이러스 소프트웨어패턴 인식을 피하기 위해 컴퓨터 바이러스에 의해 사용된다.변성 바이러스는 종종 자신의 바이너리 코드를 임시로 변환하여 그들 자신의 임시 표현을 편집한 다음 편집된 양식을 다시 기계 코드로 변환한다.[1]이 절차는 바이러스 자체로 이루어지며, 따라서 변성 엔진 자체도 변화를 겪게 되는데, 이는 바이러스의 어떤 부분도 그대로 남아 있지 않다는 것을 의미한다.이는 다형 엔진이 자체 코드를 다시 쓸 수 없는 다형 코드와 다르다.

변성 코드는 일부 바이러스가 새로운 파일을 감염시키려 할 때 사용하는 것으로, 그 결과 다음 세대는 결코 현 세대처럼 보이지 않을 것이다.돌연변이 코드는 (사용하는 해석에 따라) 정확히 같은 일을 하겠지만, 아이의 이항 표현은 전형적으로 부모의 것과 완전히 다를 것이다.돌연변이는 NOP 명령 삽입(브러트 힘), 사용할 레지스터 변경, 점프를 통한 흐름 제어 변경, 기계 명령어를 동등한 명령으로 변경 또는 독립적인 명령 순서 변경 등의 기법을 사용하여 달성할 수 있다.

변태주의는 휴리스틱 분석으로부터 바이러스를 보호하지 않는다.[citation needed]

변형 코드는 또한 바이러스가 두 개 이상의 다른 운영 체제(윈도우즈리눅스 등) 또는 심지어 다른 컴퓨터 아키텍처에서 실행 파일을 감염시킬 수 있다는 것을 의미할 수 있다.종종, 그 바이러스는 그 안에 여러 개의 바이러스를 가지고 다니면서 이것을 한다.그리고 나서 바이러스의 시작은 그것이 실행되어야 하는 모든 플랫폼에 대한 기계 코드를 수정하기 위해 암호화된다.[2]이는 주로 대상 플랫폼을 알 수 없는 원격 공격 사출 코드에서 사용된다.

변성 바이러스

참고 항목

참조

  1. ^ [1] 2007년 6월 2일 웨이백머신보관
  2. ^ "Phrack Magazine". phrack.org.
  3. ^ 피터 페리 "Crima River, VB, 2008년

외부 링크