- 博客(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关注的人
RSS订阅