다형성 코드: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
새 문서: 컴퓨터 용어로 '''다형성 코드'''({{lang|en|polymorphic code}})는 원래의 알고리즘을 건드리지 않고 그대로 유지하면서 뮤테이트(mutate)를 수행...
 
0 개의 출처 구조, 1 개의 링크를 깨진 것으로 표시 #IABot (v2.0beta14)
1번째 줄:
컴퓨터 용어로 '''다형성 코드'''({{lang|en|polymorphic code}})는
원래의 [[알고리즘]]을 건드리지 않고 그대로 유지하면서 뮤테이트(mutate)를 수행하기 위한 [[다형성 엔진]]을 사용하는 코드이다. 즉, 실행할 때마다 코드는 스스로 변화되지만 코드의 기능([[의미론|시맨틱]])은 전혀 변하지 않는다. 이를테면 1+3과 6-2는 각기 다른 값과 동작을 사용하지만 둘 다 같은 결과를 수행한다. 이 기법은 [[컴퓨터 바이러스]], [[셸코드]], [[웜]]이 자신의 존재를 숨기기 위해 사용되곤 한다.<ref name="rugha">Raghunathan, Srinivasan (2007). ''Protecting anti-virus software under viral attacks''. M.Sc. Thesis, Arizona State University.[https://pdfs.semanticscholar.org/0676/da6041ea51a3e8d80c597e503680e925aed0.pdf]{{깨진 링크|url=https://pdfs.semanticscholar.org/0676/da6041ea51a3e8d80c597e503680e925aed0.pdf }}</ref>
 
[[암호화]]는 코드를 숨기는 가장 흔한 방식이다. 암호화와 함께 코드의 주요 본체(페이로드라고도 함)는 암호화되며 의미없는 것으로 나타난다. 이전처럼 코드가 기능하려면 복호화 함수를 코드에 추가해야 한다. 코드가 실행될 때 이 함수는 페이로드를 일고 실행 전에 복호화를 수행한다.