Skip to content

Commit

Permalink
Merge branch 'vara-dev' into f-NewProjectOpen62541
Browse files Browse the repository at this point in the history
  • Loading branch information
boehmseb authored Oct 15, 2024
2 parents 5c664f6 + 57fc8d3 commit 9f423fd
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 1 deletion.
1 change: 1 addition & 0 deletions varats-core/varats/project/project_domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class ProjectDomains(Enum):
FILE_FORMAT = "File format"
HPC = "High Performance Applications"
HW_EMULATOR = "Hardware emulator"
MALWARE_ANALYSIS = "Malware Analysis"
PARSER = "Parser"
PLANNING = "Planning"
PROG_LANG = "Programming language"
Expand Down
78 changes: 78 additions & 0 deletions varats/varats/projects/c_projects/yara.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
"""Project file for yara."""
import typing as tp

import benchbuild as bb
from benchbuild.utils.cmd import make
from benchbuild.utils.settings import get_number_of_jobs
from plumbum import local

from varats.containers.containers import ImageBase, get_base_image
from varats.paper.paper_config import PaperConfigSpecificGit
from varats.project.project_domain import ProjectDomains
from varats.project.project_util import (
BinaryType,
ProjectBinaryWrapper,
RevisionBinaryMap,
get_local_project_repo,
verify_binaries,
)
from varats.project.varats_project import VProject
from varats.utils.git_util import ShortCommitHash
from varats.utils.settings import bb_cfg


class Yara(VProject):
"""
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.
"""

NAME = 'yara'
GROUP = 'c_projects'
DOMAIN = ProjectDomains.MALWARE_ANALYSIS

SOURCE = [
PaperConfigSpecificGit(
project_name='yara',
remote="https://github.com/VirusTotal/yara.git",
local="yara",
refspec="origin/HEAD",
limit=None,
shallow=False
)
]

CONTAINER = get_base_image(ImageBase.DEBIAN_10).run(
'apt', 'install', '-y', 'autoconf', 'autopoint', 'automake',
'autotools-dev', 'make', 'pkg-config'
)

@staticmethod
def binaries_for_revision(
revision: ShortCommitHash
) -> tp.List[ProjectBinaryWrapper]:
binary_map = RevisionBinaryMap(get_local_project_repo(Yara.NAME))

binary_map.specify_binary('yara', BinaryType.EXECUTABLE)

return binary_map[revision]

def run_tests(self) -> None:
pass

def compile(self) -> None:
"""Compile the project."""
yara_version_source = local.path(self.source_of_primary)

c_compiler = bb.compiler.cc(self)
with local.cwd(yara_version_source):
with local.env(CC=str(c_compiler)):
bb.watch(local["./bootstrap.sh"])()
bb.watch(local["./configure"])()

bb.watch(make)("-j", get_number_of_jobs(bb_cfg()))

verify_binaries(self)
3 changes: 2 additions & 1 deletion varats/varats/tools/bb_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ def update_projects(
'varats.projects.c_projects.asterisk',
'varats.projects.c_projects.bison',
'varats.projects.c_projects.bitlbee',
'varats.projects.c_projects.busybox',
'varats.projects.c_projects.brotli',
'varats.projects.c_projects.busybox',
'varats.projects.c_projects.bzip2',
'varats.projects.c_projects.capstone',
'varats.projects.c_projects.coreutils',
Expand Down Expand Up @@ -68,6 +68,7 @@ def update_projects(
'varats.projects.c_projects.vim',
'varats.projects.c_projects.x264',
'varats.projects.c_projects.xz',
'varats.projects.c_projects.yara',
'varats.projects.cpp_projects.clasp',
'varats.projects.cpp_projects.fast_downward',
'varats.projects.cpp_projects.libzmq',
Expand Down

0 comments on commit 9f423fd

Please sign in to comment.