自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 C++程序编译原理基础

而在C语言中,strlen的符号就只是strlen,这也正是C++支持函数重载的原因,同样命名的函数,编译器会进行不同的修饰,因而后续在链接阶段可以被正确区分。如果你按照我先前的教程安装了Clion,那么此时会有一套自带的编译工具链,其中就包含了g++编译器,接下来,打开Clion终端。众所周知,计算机只认 0 1这俩数据,我们人为的规定了一些01串, 比如00000101,这样的指令是可以被计算机识别的。可以看到蓝色的部分我们是认识的,就是获取字符串长度的函数,其他的则是修饰符。

2025-10-12 16:23:42 687

原创 Windows上安装Clion开发OpenCV

set(OpenCV_DIR "C:\\Program Files\\OpenCV") 这一行是设置OPENCV的目录,也即是OPenCVConfig.cmake所在目录。我的是“C:\Program Files\OpenCV\x64\mingw\bin”推荐下载4.5.5,切换到此分支之后点击绿色按钮“Code”我的是:C:\Program Files\OpenCV。之后重启clion,重新打开项目,配置CMake。来到这里,找到名为path的环境变量,点击编辑。打开这个git仓库,里面有编译好的。

2025-10-11 10:28:36 690

原创 jniroot实现中,为什么要创建管道?

因为所谓的权限,其实是文件访问权限(一切皆文件),uid为0的用户作为root用户具有所有文件的所有权限,为了使我们加载的动态库具有root权限,就必须依靠一个root用户来加载,libsu依靠shell命令构建管道进程,在管道进程中加载动态库,此时,动态库就是uid为0的用户。此外,关于之前反馈的管道空对象问题,可以尝试更新libsu版本来解决。那么,由它加载的动态库,uid也为0,也就具有访问所有文件的权限。图中有两个进程,显然第一个进程是管道进程 它的uid为0。

2024-08-11 00:08:34 379 1

原创 安卓基于libsu框架拉起su进程并创建IPC管道以实现跨进程读取(JniRoot方案)

传统的跨进程实现需要反射Activity方法等一系列操作才能在ipc中创建su进程从而实现跨进程通信,但是Magsik作者Johnwu曾开发过一款libsu框架,该框架给出了jniroot的一键化函数。对于实现游戏的读写,可以将C层源代码编译为可执行文件,在有root的环境中赋予其最高权限并执行,此思路弊端也很明显,即数据的传输,速度过慢,或者不方便,基于此便有了jniroot方案。在管道类中加载动态库,此时,该动态库即为root环境。关于跨进程的详细逻辑,可浏览此社区小五的帖子。

2022-10-24 10:40:53 4902 10

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除