# Copyright (c) 2019. The YARA Authors. All Rights Reserved. # # Redistribution and use in source and binary forms, with or without modification, # are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation and/or # other materials provided with the distribution. # # 3. Neither the name of the copyright holder nor the names of its contributors # may be used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. COPTS = [ "-D_GNU_SOURCE", "-DHAVE_STDBOOL_H=1", # Tell the compiler we want the C99 standard. "-std=c99", ] cc_library( name = "blob", hdrs = ["blob.h"], ) cc_library( name = "util", srcs = ["util.c"], copts = COPTS, textual_hdrs = ["util.h"], deps = ["@//:libyara"], ) cc_test( name = "test_alignment", srcs = ["test-alignment.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_arena", srcs = ["test-arena.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_atoms", srcs = ["test-atoms.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_binary( name = "mapper", srcs = ["mapper.c"], copts = ["-O0"], ) cc_test( name = "test_rules", srcs = ["test-rules.c"], copts = COPTS, data = [ "data/base64", "data/baz.yar", "data/foo.yar", "data/include/bar.yar", "data/xor.out", "data/xorwide.out", "data/xorwideandascii.out", ], linkstatic = True, deps = [ ":blob", ":mapper", ":util", "@//:libyara", ], ) cc_test( name = "test_pe", srcs = ["test-pe.c"], copts = COPTS, data = [ "data/05cd06e6a202e12be22a02700ed6f1604e803ca8867277d852e8971efded0650", "data/079a472d22290a94ebb212aa8015cdc8dd28a968c6b4d3b88acdd58ce2d3b885", "data/079a472d22290a94ebb212aa8015cdc8dd28a968c6b4d3b88acdd58ce2d3b885.upx", "data/3b8b90159fa9b6048cc5410c5d53f116943564e4d05b04a843f9b3d0540d0c1c", "data/6c2abf4b80a87e63eee2996e5cea8f004d49ec0c1806080fa72e960529cba14c", "data/ChipTune.efi", "data/c6f9709feccf42f2d9e22057182fe185f177fb9daaa2649b4669a24f2ee7e3ba_0h_410h", "data/ca21e1c32065352d352be6cde97f89c141d7737ea92434831f998080783d5386", "data/e3d45a2865818756068757d7e319258fef40dad54532ee4355b86bc129f27345", "data/mtxex.dll", "data/mtxex_modified_rsrc_rva.dll", "data/pe_imports", "data/pe_mingw", "data/tiny", "data/tiny-idata-51ff", "data/tiny-idata-5200", "data/tiny-macho", "data/tiny-overlay", "data/weird_rich", ], linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_elf", srcs = ["test-elf.c"], copts = COPTS, data = [ "data/elf_with_imports", ], linkstatic = True, deps = [ ":blob", ":util", "@//:libyara", ], ) cc_test( name = "test_api", srcs = ["test-api.c"], copts = COPTS, data = [ "data/baz.yar", "data/x.txt", ], linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_bitmask", srcs = ["test-bitmask.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_math", srcs = ["test-math.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_string", srcs = ["test-string.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_stack", srcs = ["test-stack.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) # This test fails when running under ASAN cc_test( name = "test_exception", srcs = ["test-exception.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], ) cc_test( name = "test_macho", srcs = ["test-macho.c"], copts = COPTS, data = [ "data/tiny-macho", "data/tiny-universal", ], linkstatic = True, deps = [ ":blob", ":util", "@//:libyara", ], ) cc_test( name = "test_dex", srcs = ["test-dex.c"], copts = COPTS, linkstatic = True, deps = [ ":blob", ":util", "@//:libyara", ], ) cc_test( name = "test_dotnet", srcs = ["test-dotnet.c"], copts = COPTS, data = [ "data/0ca09bde7602769120fadc4f7a4147347a7a97271370583586c9e587fd396171", "data/756684f4017ba7e931a26724ae61606b16b5f8cc84ed38a260a34e50c5016f59", "data/bad_dotnet_pe", "data/tiny", ], linkstatic = True, deps = [ ":blob", ":util", "@//:libyara", ], ) cc_test( name = "test_re_split", srcs = ["test-re-split.c"], copts = COPTS, linkstatic = True, deps = [ ":util", "@//:libyara", ], )