openrasp-v8 Java macOS环境编译

前言

openrasp是百度开源的主动式防御插件,与业务松耦合,在Java语言是使用javaagent的方式注入的,笔者前几章讲过javaagent的实现原理,笔者在使用openrasp的时候,发现openrasp-v8是快照版,并且依赖JNI实现,需要对不同的硬件与操作系统编译特定的函数库。

1. 准备

cmake指令

macOS推荐brew安装,非常方便:brew install cmake

mvn指令

maven管理,配置maven的path即可,开发人员常识。

git指令

GitHub源码下载必须

2. 编译

查阅百度openrasp资料,源码编译:rasp-Java

示例是Linux的,各个平台略有区别。以macOS为例

1 、git代码

git clone https://github.com/baidu-security/openrasp-v8.git 

2、编译

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

编译过程会出现找不到jni.h的现象

jni.h这个在jvm安装目录,拷贝出来

jni.h和jni_md.h

拷贝到build64目录,再执行make

 3、复制编译函数库

mkdir -p ../java/src/main/resources/natives/osx_64 && cp java/libopenrasp_v8_java.dylib $_

因为是macOS环境,跟Linux有所区别

4、推送本地maven仓库

cd ../java

mvn install 

 至此jar就编译好了,可以编译agent的fatjar了,注入agent

<dependency>
    <groupId>com.baidu.openrasp</groupId>
    <artifactId>v8</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

总结

笔者只编译了openrasp-v8的Java版本,实际上还有PHP版本,不过使用PHP的业务几乎没有,笔者也写过小段时间的PHP,调试真方便😋。编译v8的jar关键是有C代码,使用了JNI技术,需要jni.h文件支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值