当前位置: 首页 > 工具软件 > OpenRASP > 使用案例 >

openrasp-v8 包编译

云卓
2023-12-01

本文为百度openrasp的v8引擎包编译说明,只尝试过Java版本。

  • 为了保证最大兼容性,建议使用 JDK 6 进行编译。

文件 jdk-6u45-linux-x64-rpm.bin。执行 chmod +x 后像执行脚本一样执行安装便可以。安装后文件位置为 /usr/java/jdk1.6.0_45,需在 /etc/profile中配置

JAVA_HOME=/usr/java/jdk1.6.0_45
JRE_HOME=/usr/java/jdk1.6.0_45
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

执行配置后 执行命令 source /etc/profile

  • 然后安装 maven

文件 apache-maven-3.2.3-bin.zip,解压后在 /etc/profile 中配置即可

# 最终配置如下
JAVA_HOME=/usr/java/jdk1.6.0_45
JRE_HOME=/usr/java/jdk1.6.0_45
MAVEN_HOME=/opt/apache-maven-3.2.3/
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

配置完毕后 source 并通过 mvn -version 验证安装成功

  • 为编译所依赖的JNI模块,需要安装 c++ 编译器和 cmake 生成器

以 CentOS 为例

yum install -y centos-release-scl
# 此处 devtoolset-7-gcc-c++ 为在 centos7 上安装无误,报错请具体百度
yum install -y devtoolset-7-gcc-c++

安装完成后,执行如下命令进入编译环境

scl enable devtoolset-7 bash
  • 安装 cmake

所需文件 cmake-3.17.2-Linux-x86_64.tar.gz, 通过命令 tar -xzf cmake-3.17.2-Linux-x86_64.tar.gz 解压。使用 export PATH=/tmp/cmake-3.15.3-Linux-x86_64/bin:$PATH 临时生效(注意换个会话就失效了)。通过命令 cmake --version 验证是否成功配置。

  • 安装 git

查看是否安装过git,git --version。如果已经安装则无需安装,否则通过命令 yum安装git,yum -y install git 安装 GIT

  • clone openrasp-v8 代码

git clone https://github.com/baidu-security/openrasp-v8.git 拷贝代码。

在 openrasp-v8 根目录下执行

# 编译 openrasp-v8
mkdir -p openrasp-v8/build64 && cd openrasp-v8/build64
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LANGUAGES=java ..
make

# 复制动态链接库到 resources 目录
mkdir -p ../java/src/main/resources/natives/linux_64 && cp java/libopenrasp_v8_java.so $_

# 编译 v8-1.0-SNAPSHOT.jar,安装 v8-1.0-SNAPSHOT.jar 到 maven 本地仓库
cd ../java
mvn install

根据 maven 打包输出内容,下载 jar 包 v8-1.0-SNAPSHOT.jar

在本地使用命令 mvn install:install-file -DgroupId=com.baidu.openrasp -DartifactId=v8 -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=E:/v8-1.0-SNAPSHOT.jar将 jar 包放到本地仓库

所有上述所需文件,以及打包完成的 v8 jar 包下载链接

 类似资料: