JNI
  • 2025-01-07Frida Hook 入门(3)| Native 层代码 Hook 实战
    作者:梦玄网络安全标签:Frida,动态分析,NativeHook,JNI,逆向工程前言在Android应用中,Native层代码(通常用C/C++编写)是很多安全研究和动态分析的重点领域,尤其是处理加密、解密、JNI调用的场景。相比Java方法,Native层Hook分析的难度更高,但Frida的强大功能
  • 2025-01-03一文解秘Rust如何与Java互操作
    使用场景JAVA与Rust互操作让Rust可以背靠Java大生态来做更多事情,而Java也可以享受Rust语言特性的内存安全,所有权机制,无畏并发。互操作的典型场景包括:性能优化:利用Rust处理计算密集型任务,提高Java应用的整体性能。系统级编程:结合Rust的底层控制能力与
  • 2024-12-2149天精通Java(Day 31):JNI与本地方法接口
  • 2024-12-10conftest.c:1:10: fatal error: jni.h: No such file or directory
     001、rocky9中编译安装R报错:conftest.c:1:10:fatalerror:jni.h:Nosuchfileordirectory这个错误表明编译器在尝试编译一个C语言源文件时,无法找到头文件jni.h。jni.h是JavaNativeInterface(JNI)的头文件,它允许Java代码调用本地C/C++代码。 002、编译时缺乏jni.h的
  • 2024-09-19Java JNA、JNI、ProcessBuilder、Runtime.getRuntime.exec()详解
     Java提供了几种方式与非Java代码进行交互(比如调用本地库或执行外部程序),其中包括JNA、JNI、ProcessBuilder和Runtime.getRuntime().exec()。下面是对每种方式的详细解释。1.JNA(JavaNativeAccess)简介JNA是Java与本地代码进行交互的一种高层次API,它允许Java程序调
  • 2024-09-18Java JNA、JNI、ProcessBuilder、Runtime.getRuntime.exec()详解
    Java提供了几种方式与非Java代码进行交互(比如调用本地库或执行外部程序),其中包括JNA、JNI、ProcessBuilder和Runtime.getRuntime().exec()。下面是对每种方式的详细解释。1.JNA(JavaNativeAccess)简介JNA是Java与本地代码进行交互的一种高层次API,它允许Java
  • 2024-09-16java读取寄存器数据
    在Java中直接读取硬件寄存器(如CPU寄存器、I/O端口等)通常不是一个直接的任务,因为Java设计之初就是为了跨平台的安全性和易用性,它并不直接提供访问底层硬件的API。不过,在嵌入式系统、工业控制或需要直接与硬件交互的特定场景中,可能会使用JNI(JavaNativeInterface)或JNA(JavaNativeAc
  • 2024-09-06android利用jni读取assets文件夹下的文件
    一、概述在jni的开发中,有时候会在c/c++层读取assets文件夹下的图片。有两种方式可以选择:方式一:在java/kotlin层把文件读取出来,然后以字符串的形式传递给jni层。方式二:java/kotlin层传递一个文件名,jni利用AAssetManager读取文件内容目前介绍的是第二种方
  • 2024-09-06android从java/kotlin层传递bitmap给jni并使用其像素
    一、概述在做jni开发的时候,有些情况下会直接通过java/kotlin层传递bitmap给jni,并取出其数据进行利用。例如:OpenGLES绘制纹理、保存像素图片等。二、代码示例1.在cmake中引入可以操作jni层BitmapInfo的libjnigraphics-landroid2.导入头文件#in
  • 2024-09-03JNI -cmake sample
    CMakeLists.txtcmake_minimum_required(VERSION3.16)set(CMAKE_CXX_STANDARD11)project(test)set(SRCsrc/HelloWorld.cpp)#配置cpp源文件到SRC变量中set(EXECUTABLE_OUTPUT_PATH./build)#配置输出目录set(JAVA_HOME$ENV{JAVA_HOME})#获取系统环境变量中的
  • 2024-08-31【大数据】Java与Python的无缝对接:探讨Java调用Python的方法与原理
    文章目录一、引言二、Java调用Python的原理1.JNI(JavaNativeInterface)2.Jython3.进程间通信三、Java调用Python的实现方法及示例1.使用JNI调用Python2.使用Jython调用Python3.使用进程间通信调用Python4.性能和安全性考虑5.实际应用场景6.最佳实践四、总结一、
  • 2024-08-27JNI DEMO
       make.shjavac-h.HelloJNI.javag++-I"$JAVA_HOME/include"-I"$JAVA_HOME/include/dawin"-shared-olibhelloJNI.dylibHelloJNI.cppjavacHelloJNI.javajavaHelloJNI HelloJNI.javapublicclassHelloJNI{privatenative
  • 2024-08-02让C++通过JNI来callback回调kotlin侧代码
    kotlin一次通过jni调用C++侧,然后C++侧多次回传数据让C++通过JNI来callback回调kotlin侧代码1.定义Kotlin接口在Kotlin中定义一个用于接收C++回调的接口:interfaceDataCallback{funonDataReceived(data:String)}2.定义C++侧的JNI方法在C++侧,实现接收指令和
  • 2024-07-28jin版本
    VersionInformationGetVersionjintGetVersion(JNIEnv*env);Returnstheversionofthenativemethodinterface.ForJavaSEPlatform21andlater,itreturnsJNI_VERSION_21.ThefollowingtablegivestheversionofJNIincludedineachreleaseoftheJav
  • 2024-07-26创建 Java 虚拟机JVM中的参数说明
    1、上一篇创建虚拟机的代码加参数备注varOptions:array[0..4]ofJavaVMOption;VM_args:JavaVMInitArgs;ErrCode:Integer;begin{创建Java虚拟机}FJavaVM:=TJavaVM.Create(JNI_VERSION_1_8);//这个选项设置Java类路径,指定JVM应该在哪里
  • 2024-07-26delphi android发送与接收广播
    在Delphi中,可以使用TLocalBroadcastManager类来发送和接收广播。以下是一个示例:发送广播:```delphiuses Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers,Androidapi.JNI.JavaTypes,Androidapi.JNI.LocalBroadcastManager;procedureSendBroadcast(constAAction:
  • 2024-07-15Java JNI 学习笔记
    JavaJNI学习笔记JNI(JavaNativeInterface)是Java提供的一种接口,使得java代码可以与其他语言(如C和C++)编写的代码进行交互。具体来说,JNI允许你在Java中调用本地(Native)代码,或者从本地代码调用Java方法。基本概念jni.h:这是JNI的头文件,使用javac生成,定义了JNI
  • 2024-06-08vscode编译c/c++找不到jni.h文件
    解决办法:一、下载JDK访问Oracle官网的Java下载页面:JavaDownloads|Oracle选择适合您操作系统的JDK版本:对于Windows,选择“Windowsx64”或“Windowsx86”(取决于您的系统是64位还是32位)。对于Linux,选择适合您Linux发行版的压缩包。对于Mac,选择“.dmg”或“.pkg”安装