오토핫키 난독화 예제

19번째 IOCCC에서 최고의 쇼 항목인 오스카 Toledo Gutiérrez의 다음 예는 CP/M-80을 부팅하고 CP/M 애플리케이션을 실행할 수 있는 터미널 및 디스크 컨트롤러가 포함된 8080 에뮬레이터를 구현합니다:[13] 이제 9개의 공통된 것을 시연하고 평가합니다. 공격자가 보안 제품의 탐지를 방지하고 보안 분석가가 코드가 어려운 작업을 이해하는 데 사용할 수 있는 난독 처리 기술입니다. JSUnpack – 파이썬 소스 코드를 사용하거나 웹 사이트를 사용합니다. 다른 것들 사이에서 생성되는 숨겨진 HTTP 연결을 감지 할 수 있습니다. 의미없는 루프는 너무 오래 걸리는 경우 에뮬레이터를 코드 분석 중지로 속일 수 있다는 추가 이점이 있습니다. 예를 들어 여기를 참조하십시오. var 발사기 = 새로운 ActiveXObject («WxxSXxxxxxtx.xSxxxxlx».replace(/x/g, «»)); 발사기. 실행(«C:mGlwGrP.PxP».replace(/G/g, «a»).replace(/P/g, «e»); 작성자가 사용자 지정 알고리즘을 사용하여 문자열을 인코딩하고 원본으로 돌아가는 디코더 함수를 제공합니다: 저자는 코드를 작성하여 런타임시 프로그램에 전달될 중요한 값을 기대할 수 있습니다(예: java applet의 변수는 모두 암호 해독 키를 전달해야 합니다. 분석가는 애플릿 코드를 가지고 있지만 키가 무엇인지 밝힐 수있는 패킷 캡처에 액세스 할 수 없을 수 있습니다 : 보안 연구원에게 가장 관심이있는 마지막 두 가지에 초점을 맞출 것입니다.

자바 스크립트를 예로 들지만 기술은 대부분 다른 언어로 전송 할 수 있습니다. var 실행기 = 새 ActiveXObject(«WScript.Shell»); 발사기. 실행(«C:malware.exe»); 난독 처리 될 수있는 상수 문자열만이 아닙니다. 자바 스크립트 eval 함수를 사용하면 프로그래머가 자바 스크립트 코드를 전달 한 다음 런타임에 평가되고 실행됩니다. 따라서 전체 프로그램을 변수에 압축하고 디코딩하고 런타임에 평가할 수 있습니다. var hexString = «x57x53x63x63x72x69x70x74x2ex53x68x65x6cx6c»; var octString = «1037213413415141154154141671225556145170145» var 실행기 = 새로운 ActiveXObject (헥스스트링); 발사기. 실행(옥크스트링); 이 메서드는 특정 언어의 char 또는 문자열 대체 메서드를 사용하여 원하는 결과를 얻기 위해 문자열의 특정 문자 시퀀스를 대체합니다. 여러 플랫폼에서