1 | sudo apt-get autoremove open-vm-tools |
WMBa0|
SVC 是ARM 架构中用于触发系统调用的指令。它类似于传统的 syscall 指令,主要用于在用户空间(user mode)和内核空间(kernel mode)之间进行上下文切换
作用:SVC 指令允许用户态程序请求操作系统提供的特权服务,通常是在用户程序需要执行特权操作(例如文件操作、内存分配等)时使用。执行流程:当执行 SVC 指令时,处理器会从用户模式切换到内核模式,操作系统会根据传入的参数和服务号决定执行哪个系统调用。执行完系统调用后,操作系统会返回并将控制权交还给用户程序。而在linux系统里面内存又分为内核态和用户态
SVC与中断
SVC 中断:当 SVC 指令被执行时,CPU 会触发一个中断,切换到内核模式,处理操作系统的服务请求。SVC 会提供一个中断号作为参数,这个参数通常用于指定要执行的系统调用编号(比如打开文件、创建进程等)。
- 返回机制:操作系统会执行完相应的服务后,将控制权返回给用户程序。在返回时,CPU 会恢复到用户模式。
- Syscall(系统调用)Syscall(System Call)是用户程序请求操作系统提供服务的一种机制。它是用户空间与内核空间之间的接口。用户程序不能直接访问内核资源,所以需要通过系统调用来向内核请求访问资源、执行特权操作等。
- 作用:当用户程序需要执行特权操作时(例如访问硬件资源、修改内存保护、创建/删除文件等),它会发起一个系统调用。系统调用通常会由操作系统内核提供一组API来实现。
- 工作原理:
- 用户程序通过某种方式(比如调用一个库函数)发起系统调用。
- 操作系统通过一个受保护的机制(比如通过软件中断或特殊的指令)来进行切换,将执行权从用户空间转移到内核空间。
- 操作系统完成特定的操作后,返回执行结果并切换回用户空间。
Syscall函数里面的实现实际上就是一段汇编,这里面便是调用了svc这段指令。
它无法被inlinehook Hook,所以会极大的提高安全程度。(update:搜到 svc 指令地址,仍然可以 inlinehook)
1 | BTI c |
360 VMP 怎么分析?
Android Intent 重定向漏洞具体分析
so层自实现完整双向证书校验绕过?
特殊符号
1 | ~ ⽤户家⽬录 |
cat命令
1 | • -n: 为输出内容添加⾏号 |
find
1 | find [OPTION] [PATH] [-exec cmd] |
grep
1 | • -n: 打印⾏号 |
sort
1 | • 对给定字段排序:字符串,数字,⽉份 |
M3U8文件是指UTF-8编码格式的M3U文件。
M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。
这个是为了在线播放流视频诞生的,而这种视频最大的特点就是把原来的视频进行切片,所谓切片就是把一个完整的视频比如.mp4格式的切成多段.ts格式视频,然后生成一个对应切片片段视频的索引文件,这个索引文件就是m3u8。
看到这个文件其实就是个索引文件,当然ts切片视频文件和m3u8文件放在同一目录下
.ts也是一种视频格式,其实是可以直接观看的,但是都是一段一段的,如何把这些一段一段视频合成一个完整的mp4就需要依靠m3u8这个视频索引文件了(ffmpeg工具)
这张流程图大致的解释了现在视频网站的工作原理,后台利用工具进行视频切片,然后用户使用设备点播流视频,一边播放一边下载下一个视频切片非常方便。
大一喜欢出一些题目,赚了一些小钱(比不上大厂一个月工资哈哈哈)
买了自己想买的Mac(为了学习捏)
Mac之旅 Android
记录自己买mac后学习
但是现在发现,mac只适合记录学习笔记,真要实战还得Window系统
问题太多了,而且大多数工具都不免费,我是穷逼买不起
Mac好不容易安装成功Android Studio
2023.12.15 第七届强网杯
我记得第一次出校参加比赛叫“数据安全大赛”
在郑州网络科技馆,那是我第一次出去住酒店,跟个土包子一样,那时候网安还热火热荼,其实也临近寒冬了。
粘一下当时的比赛成绩,一句话形容:“拼尽全力,无法战胜”
YYDS 中国移动
粘一下当时写的总结
现在大三下,感觉已经老了很多,也不像大一那样对所有比赛充满了热情。
2022数据安全大赛
好怀念那时候,大一捏
我擦了啊,不是哥们,我保存的唯一一张排名图,让markdown给我彻底删除了?????
我擦我擦啊啊啊啊啊啊啊啊,
我与oacia师傅同窗啊,他在第4,我在第6,凸(艹皿艹 )罢了
(⊙o⊙)
1、Android
1、Xposed原理介绍
Xposed 框架是一个运行在 Android 操作系统之上的钩子框架,是以模块扩展方式来实现对系统部分功能的修改。
app_process
Xposed 框架 Native 部分,用于替换原生 app_process,并为 XposedBridge 提供 JNI 方法。
XposedBridge
Xposed 框架 Java 部分,编译后会生成一个 jar 包,Xposed 框架的 app_process 会将此加入到系统 class path 中。android_art
Xposed 框架定制的 Android ARTXposedInstaller
Xposed 框架插件管理 AppXposedTools
用于编译项目的工具集
Android 系统是基于 Linux 的,其第一个由内核启动的用户进程是 init 进程。init 进程随后会创建 zygote 进程,Android 应用程序进程都是由 zygote 进程孵化而来。zygote 所对应的可执行程序是 app_process,xposed 框架通过替换系统的 app_process 可执行文件以及虚拟机动态链接库,让 zygote 在启动应用程序进程时注入框架代码,进而实现对应用程序进程的劫持。
Xposed框架通过替换**/system/bin/app_process**程序来控制Zygote进程
在核心功能启动后,Xposed框架会通过HookZygoteInit类的handleLoadPackage方法,来判断当前进程是否是需要hook的应用程序进程。
如果当前进程需要hook,Xposed框架会开始进行hook操作。在hook操作中,Xposed框架会将Java层函数的指针替换为对应的native函数的指针,并将这些native函数注册为本地JNI方法。
Xposed框架会将Java层函数转换为native函数,并将这些native函数的指针保存在XposedBridge类的sHookedMethodCallbacks静态变量中。
Xposed框架会通过JNI的RegisterNatives方法,将这些native函数注册为本地JNI方法。
当应用程序调用被hook的Java层函数时,实际上会调用对应的native函数,从而实现hook操作。