YR_MAJOR_VERSION, YR_MINOR_VERSION and YR_MICRO_VERSION are fixed when the caller is compiled, so a program linked against a shared libyara has no way to tell which version it actually loaded. Distros ship libyara.so in its own package precisely so it can be updated independently of its consumers, which is exactly the case the macros cannot describe. Add yr_get_version(), which reports the version of the library that is actually loaded. Any argument may be NULL if the caller does not need that component, and since the function touches no global state it can be called before yr_initialize. Closes #2136 --------- Co-authored-by: Victor M. Alvarez <[email protected]>
Important
This project is in maintenance mode. More info: https://virustotal.github.io/yara-x/blog/yara-x-is-stable/
YARA in a nutshell
YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or whatever you want to describe) based on textual or binary patterns. Each description, a.k.a. rule, consists of a set of strings and a boolean expression which determine its logic. Let's see an example:
rule silent_banker : banker
{
meta:
description = "This is just an example"
threat_level = 3
in_the_wild = true
strings:
$a = {6A 40 68 00 30 00 00 6A 14 8D 91}
$b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
$c = "UVODFRYSIHLNWPEJXQZAKCBGMT"
condition:
$a or $b or $c
}
The above rule is telling YARA that any file containing one of the three strings must be reported as silent_banker. This is just a simple example, more complex and powerful rules can be created by using wild-cards, case-insensitive strings, regular expressions, special operators and many other features that you'll find explained in YARA's documentation.
YARA is multi-platform, running on Windows, Linux and Mac OS X, and can be used through its command-line interface or from your own Python scripts with the yara-python extension.
Additional resources
Do you use GitHub for storing your YARA rules? YARA-CI may be a useful addition to your toolbelt. This is GitHub application that provides continuous testing for your rules, helping you to identify common mistakes and false positives.
If you plan to use YARA to scan compressed files (.zip, .tar, etc) you should take a look at yextend, a very helpful extension to YARA developed and open-sourced by Bayshore Networks.
Additionally, the guys from InQuest have curated an awesome list of YARA-related stuff.
Who's using YARA
- 0x101 Cyber Security
- Adlice
- AlienVault
- Avast
- BAE Systems
- Bayshore Networks, Inc.
- Binalyze
- BinaryAlert
- Blueliv
- Cado Security
- Cisco Talos Intelligence Group
- Cloudina Security
- Cofense
- Conix
- Corelight
- CounterCraft
- Cuckoo Sandbox
- Cyber Triage
- Cybereason
- Digita Security
- Dragos Platform
- Dtex Systems
- ESET
- ESTsecurity
- Elastic Security
- FactorX.ai
- Fidelis XPS
- FireEye, Inc.
- Forcepoint
- Fox-IT
- FSF
- Guidance Software
- Heroku
- Hornetsecurity
- ICS Defense
- InQuest
- IntelOwl
- Joe Security
- Kaspersky Lab
- KnowBe4
- Koodous
- Laika BOSS
- Lastline, Inc.
- libguestfs
- LimaCharlie
- Malpedia
- Malwation
- McAfee Advanced Threat Defense
- Metaflows
- NBS System
- ndaal
- NetLock
- Nextron Systems
- Nozomi Networks
- osquery
- Payload Security
- PhishMe
- Picus Security
- Radare2
- RedSocks Security
- ReversingLabs
- Scanii
- SecondWrite
- SonicWall
- SpamStopsHere
- Spyre
- stoQ
- Sublime Security
- SumoLogic
- Tanium
- Tenable Network Security
- Tenzir
- The DigiTrust Group
- ThreatConnect
- ThreatStream, Inc.
- Thug
- Threat.Zone
- TouchWeb
- Trend Micro
- UnpacMe
- UpSight Security Inc.
- Uptycs Inc
- Veeam
- Verisys Antivirus API
- VirusTotal Intelligence
- VMRay
- Volexity
- We Watch Your Website
- x64dbg
- YALIH
Are you using it? Want to see your site listed here?