15 년전에 윈도우 파일 시스템 등을 연구하면서 생각해 놓은 것을 적는다.


일반적으로 백신은 프로그램의 10 bytes 정도 특정 패턴 코드를 가지고 잡아내게 된다.


이것을 회피하는 방법에 대한 아이디어가 대학교 1학년 때 생물 수업을 듣는 중 생각났다.


DNA 구조에서 exon 과 intron 이 존재하는데 intron 은 버려지고 exon 만 남게된다.


프로그램도 역시 쓸데없는 trash code 가 사이사이에 존재하면 백신은 프로그램을 잡을 수 없다.


trash code 는 어셈블리어로 레지스터 push, pop 을 반복하던지. jump 를 반복해도 가능하다. 더하기 빼기를 반복해도 된다.


프로그램 전체를 exon , intron 구조로 만들기는 너무 복잡하고 현실적으로 불가능하지만


간단한 loader 는 exon 과 intron 구조로 만드는 것은 가능하다.



exon & intron 구조화된 loader + 암호화된 내부 core 이런 구조를 갖추면 된다.



내부 core 는 다시 복제할 때 loader 의 exon, intron, 암호화 방식을 약간만 바꾸어주면 똑같은 프로그램이지만 백신으로 잡을 수가 없다.

신고