当前位置: 首页 > news >正文

门户网站怎样做wordpress清新模板

门户网站怎样做,wordpress清新模板,又拍 wordpress插件,建设者网站如何静态链接 YARA 库,实现免依赖的独立可执行文件部署 适用于嵌入式设备、安全产品发布、或避免目标系统安装 YARA 共享库的场景。 ✅ 目标 编译 YARA 为 静态库(.a)使用静态库编译你的 C 程序生成 完全静态链接的可执行文件(不…

如何静态链接 YARA 库,实现免依赖的独立可执行文件部署
适用于嵌入式设备、安全产品发布、或避免目标系统安装 YARA 共享库的场景。


✅ 目标

  • 编译 YARA 为 静态库(.a
  • 使用静态库编译你的 C 程序
  • 生成 完全静态链接的可执行文件(不依赖 libyara.so
  • 实现“拷贝即运行”的免依赖部署

🧰 一、环境准备(以 Linux 为例)

推荐在干净的构建环境中操作(如 Ubuntu 20.04/22.04):

sudo apt-get update
sudo apt-get install build-essential autoconf automake libtool pkg-config

🔧 二、从源码编译 YARA(静态库模式)

1. 下载 YARA 源码

git clone https://github.com/VirusTotal/yara.git
cd yara
git checkout v4.3.2  # 推荐稳定版本(或最新 v4.x)

✅ 注意:静态编译需关闭动态库生成,开启静态库。


2. 配置并编译(仅静态库)

./bootstrap.sh          # 第一次需要生成 configure 脚本
./configure \--enable-static \--disable-shared \--disable-magic \--without-crypto \--prefix=/usr/local
参数说明:
参数说明
--enable-static生成 .a 静态库
--disable-shared禁止生成 .so 动态库
--disable-magic禁用 libmagic(避免额外依赖)
--without-crypto禁用 OpenSSL(hash.md5 等模块)
--prefix安装路径

⚠️ 如果你需要 hash 模块(如 hash.md5),需安装 OpenSSL 并启用:

sudo apt-get install libssl-dev
./configure ... --with-crypto

3. 编译并安装

make -j$(nproc)
sudo make install

安装后你会看到:

  • 静态库:/usr/local/lib/libyara.a
  • 头文件:/usr/local/include/yara.h, /usr/local/include/yara/*

📦 三、编写测试程序(复用之前的示例)

保存为 yara_static.c

#include <stdio.h>
#include <yara.h>int callback(YR_SCAN_CONTEXT* context, int msg, void* data, void* user_data)
{if (msg == CALLBACK_MSG_RULE_MATCHING){printf("✅ 匹配规则: %s\n", ((YR_RULE*)data)->identifier);}return CALLBACK_CONTINUE;
}int main()
{YR_COMPILER* compiler;YR_RULES* rules;FILE* fh;yr_initialize();yr_compiler_create(&compiler);fh = fopen("test.yar", "r");if (!fh) { perror("规则文件"); return 1; }yr_compiler_add_file(compiler, fh, NULL, NULL);if (compiler->errors > 0) {printf("规则编译失败\n");return 1;}yr_compiler_get_rules(compiler, &rules);fclose(fh);// 扫描自身(文本匹配)yr_rules_scan_file(rules, "yara_static.c", 0, callback, NULL, 0);yr_rules_destroy(rules);yr_compiler_destroy(compiler);yr_finalize();return 0;
}

🔗 四、静态编译你的程序

gcc -o yara_static yara_static.c \-I/usr/local/include \/usr/local/lib/libyara.a \-lpthread -lm -lz

关键点说明:

为什么需要
libyara.aYARA 静态库(主逻辑)
-lpthreadYARA 使用线程
-lm数学函数(某些模块使用)
-lzzlib,用于处理压缩或内存操作

✅ 此时生成的 yara_static完全静态链接 的可执行文件(不依赖任何外部 .so)。


🔍 五、验证是否静态链接成功

# 检查是否依赖动态库
ldd yara_static

✅ 正确输出应为:

not a dynamic executable

或:

statically linked

❌ 如果显示 libyara.so,说明仍动态链接了,需检查编译命令。


🧪 六、测试运行

创建规则文件 test.yar

rule FoundCFile
{strings:$main = "main()" asciicondition:$main
}

运行:

./yara_static

输出:

✅ 匹配规则: FoundCFile

🚀 七、跨平台静态编译(可选:生成 Windows 版)

你可以使用 交叉编译 生成 Windows 静态可执行文件(.exe):

安装交叉编译器(Ubuntu)

sudo apt-get install gcc-mingw-w64

重新编译 YARA(Windows 静态库)

# 在 yara 源码目录
make cleanCC=x86_64-w64-mingw32-gcc \
CFLAGS="-static" \
./configure \--host=x86_64-w64-mingw32 \--enable-static \--disable-shared \--disable-magic \--without-crypto \--prefix=/tmp/yara-win64make && make install

编译 Windows 可执行文件

x86_64-w64-mingw32-gcc -o yara.exe yara_static.c \-I/tmp/yara-win64/include \/tmp/yara-win64/lib/libyara.a \-lpthread -lm -lz -static

生成的 yara.exe 可在 Windows 上直接运行,无需安装任何依赖!


📦 八、部署建议

场景建议
安全网关/EDR静态链接,嵌入扫描引擎
嵌入式设备使用 musl-gcc 编译更小体积
分析工具发布打包为单文件工具(如 yara-scan.exe
容器内运行无需安装 libyara,减少镜像体积

📏 九、生成文件大小优化(可选)

静态链接后体积较大(~2-5MB),可通过以下方式减小:

# 1. 编译时优化
gcc -Os -s -DNDEBUG ...  # 启用优化、去符号、关闭调试# 2. 去除符号表
strip --strip-all yara_static# 3. 使用 upx 压缩(可选)
upx --best --compress-exports=0 yara_static

可将 3MB → 1MB 左右。


✅ 总结:静态链接 YARA 的完整流程

# 1. 编译 YARA 静态库
./bootstrap.sh
./configure --enable-static --disable-shared --without-crypto
make && sudo make install# 2. 编译你的程序(静态链接)
gcc -o myscanner myscan.c /usr/local/lib/libyara.a -lpthread -lm -lz -static# 3. 验证
ldd myscanner  # 应显示 not a dynamic executable# 4. 部署到任意 Linux 主机,无需安装 YARA

📎 附件:一键构建脚本(build_static_yara.sh)

#!/bin/bash
git clone https://github.com/VirusTotal/yara.git
cd yara
git checkout v4.3.2./bootstrap.sh
./configure --enable-static --disable-shared --disable-magic --without-crypto --prefix=/usr/local
make -j$(nproc)
sudo make installecho "✅ YARA 静态库已安装"
echo "现在你可以使用 /usr/local/lib/libyara.a 进行静态编译"
http://www.dtcms.com/a/524599.html

相关文章:

  • 沈阳有资质做网站的公司公司自有网站工信备案
  • 园林设计公司网站昆山网站建设网站
  • 【Linux】systemd 服务管理详解
  • Python哪个Excel库最好用?
  • 瓦力机器人-编码电机控制(基于树莓派5)
  • dw做网站怎么上线大良用户网站建设
  • Node.js 进阶:掌握高性能服务器开发的核心技术
  • Elasticsearch 的 SQL 与 DSL 转换
  • 快速做网站的软件腾讯企业邮箱电脑版登录入口
  • API测试工具进化:从Postman到Apipost的全局参数管理革命
  • 数据结构——排序的超级详解(Java版)
  • C# 加密解密字符方法Cryptography
  • 教做详情页的网站关键词优化公司电话
  • 中企动力科技股份有限公司网站梵克雅宝官网官方网
  • 自己电脑做电影网站中国建设教育协会培训中心
  • 第三章、React项目国际化介绍(`react-i18next`)
  • RHCA - DO374 | Day03:通过自动化控制器运行剧本
  • 深圳微商城网站建设温州 网站开发
  • 何谓RSS
  • 【SpringCloud】Eureka
  • 网站后台尺寸一般做多大的如何把优酷视频放到网站上
  • 帝国建站模板淘宝网络营销案例分析
  • 企业选择内容+人工智能供应商应该考虑什么?​
  • CI/CD(一)—— 从零搭建 GitLab 全流程(Docker 部署 + 实战指南)
  • 【Android】 Gradle 下载后本地使用方式(macOS / Windows通用)
  • 华为od面经-23届-Java面经
  • Kubernetes LoadBalancer系列|MetalLB介绍与配置
  • 网站制作及管理教程模板网站建设公司 东莞
  • 网站内容品质网站开发的相关语言有哪些
  • 淘宝自己网站怎么建设怎么制作网站编辑页面