yara 예제

위의 예에서 100에서 $a 표현식은 파일 내의 오프셋 100(또는 실행 중인 프로세스에 적용되는 경우 가상 주소 100)에서 문자열 $a 있는 경우에만 적용됩니다. $b 문자열은 오프셋 200에 나타납니다. 두 오프셋은 소수이지만 가상 주소를 작성할 때 매우 편리한 C 언어에서와 같이 숫자 앞에 접두사 0을 추가하여 헥사데피만 숫자를 작성할 수 있습니다. 또한 YARA의 이전 버전보다 높은 연산자의 우선 순위는 한 번에 하나의 프로세스만 확인할 수 있음을 의미하는 processID를 제공해야 하는 단일 프로세스와 일치시킬 수 있는 기능을 가지고 있었습니다. 이러한 한계를 극복하기 위해 YARA는 WMI에 대한 지원을 도입하여 모든 실행 중인 프로세스를 한 번에 스캔할 수 있습니다. 예를 들어 조건은 모든 프로그래밍 언어(예: if 문)에서 찾을 수 있는 부울 식에 지나지 않습니다. 여기에는 일반적인 부울 연산자 및 관계형 연산자도 포함될 수 있습니다 .==, <=, <=, == 및 !==. 또한 산술 연산자 (+, -, *, , %) 및 비트 연산자(&, |, <<, , ~, ^)는 숫자 식에 사용할 수 있습니다. 위의 예에서는 대괄호로 묶이고 하이픈으로 구분된 숫자 쌍이 점프입니다. 이 점프는 4~6바이트의 임의의 시퀀스가 점프의 위치를 차지할 수 있음을 나타냅니다.

다음 문자열은 패턴과 일치합니다: 텍스트 문자열에 적용할 수 있는 또 다른 수정자는 전체 단어입니다. 이 수정자는 문자열이 영숫자가 아닌 문자로 구분된 파일에 나타나는 경우에만 일치합니다. 예를 들어 문자열 도메인이 전체 단어로 정의된 경우 www.mydomain.com 일치하지 않지만 www.my-domain.com www.domain.com 일치합니다. 위의 모든 예제에서 문자열 수는 숫자 상수로 지정되었지만 숫자 값을 반환하는 모든 식을 사용할 수 있습니다. 모든 키워드도 사용할 수 있습니다. yarGen을 사용하거나 다운로드하지 않으려면 Joe Security에서 제공하는 온라인 도구 Yara Rule Generator를 사용할 수도 있습니다. 따라서 샌드박스에 업로드된 단일 샘플과 전체 파일 시스템에 거짓 긍정을 최소화하는 데 사용할 수 있는 최적의 Yara 규칙을 작성하는 방법에 대한 기사를 작성하기로 결정했습니다. 이러한 규칙은 포함된 문자열을 기반으로 하며 이해하기 쉽습니다. 당신은 실행 의 역 설계를 이해할 필요가 없습니다 나는 여전히 실제로 사용할 때 메모리 누수 또는 기타 오류로 이어질 수있는 “테스트”기능으로 고려 “pe”와 같은 새로운 Yara 모듈을 피하기로 결정했다. 대부분의 경우 문자열 식별자가 조건에서 사용되는 경우 연결된 문자열이 파일 또는 프로세스 메모리 내에 있는지 알고 자하지만 경우에 따라 문자열이 파일의 특정 오프셋또는 일부 가상 추가에 있는지 알아야 합니다. 프로세스 주소 공간 내에서 고삐를 조입니다.