网站页面模板页面布局网站搭建服务合同

pingmian/2025/10/9 23:57:29/文章来源:
网站页面模板页面布局,网站搭建服务合同,个人主页介绍,分销系统软件这里不再解释vDSO的概念#xff0c;而直接谈其意义#xff1a;vDSO类似一个信息公告板#xff0c;用户可以直取所需#xff0c;而无需为此办理任何手续。vDSO相当于内核直接暴露出来的一个C库#xff0c;作为GLIBC的补充。…类似gettimeofday之类的调用#xff0c;每次都…这里不再解释vDSO的概念而直接谈其意义vDSO类似一个信息公告板用户可以直取所需而无需为此办理任何手续。vDSO相当于内核直接暴露出来的一个C库作为GLIBC的补充。…类似gettimeofday之类的调用每次都陷入内核去拿一个时间戳显得有点昂贵了不如内核把时间戳放在一个公共的可以暴露给任何用户的地方用户自己去看就行了这是vDSO的典型用例。为了简单化描述我们关闭ASLR[rootlocalhost ~]# sysctl -w kernel.randomize_va_space0随便打开一个ping程序获取其/proc/pid/smap中vdso的map区间7ffff7ffa000-7ffff7ffc000 r-xp 00000000 00:00 0 [vdso]Size: 8 kB...我们将其dd出来[rootlocalhost ~]# dd if/proc/3688/mem of./vsdo.dd obs1 bs1 skip140737354113024 count8192随后我们看看它是什么[rootlocalhost ~]# file ./vdso.dd./vdso.dd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]09be88363f7ca8b05e2cb54a82d16bec2e840186, stripped那么接下来可以objdump了就像对待普通的动态链接库一样[rootlocalhost ]# objdump -T vdso.ddvdso.dd 文件格式 elf64-x86-64DYNAMIC SYMBOL TABLE:ffffffffff700354 l d .eh_frame_hdr0000000000000000 .eh_frame_hdrffffffffff700700 w DF .text000000000000059d LINUX_2.6 clock_gettime0000000000000000 g DO *ABS*0000000000000000 LINUX_2.6 LINUX_2.6ffffffffff700ca0 g DF .text00000000000002d5 LINUX_2.6 __vdso_gettimeofdayffffffffff700fa0 g DF .text000000000000003d LINUX_2.6 __vdso_getcpuffffffffff700ca0 w DF .text00000000000002d5 LINUX_2.6 gettimeofdayffffffffff700f80 w DF .text0000000000000016 LINUX_2.6 timeffffffffff700fa0 w DF .text000000000000003d LINUX_2.6 getcpuffffffffff700700 g DF .text000000000000059d LINUX_2.6 __vdso_clock_gettimeffffffffff700f80 g DF .text0000000000000016 LINUX_2.6 __vdso_time看看看看里面竟都是些什么东西竟是一些时间公告函数啊这意味着如果你想获取时间调这里的函数就好了我们看看最简单的time系统调用是如何来获取时间的下面是对待vdso.dd文件的objdump -D的结果ffffffffff700f80 __vdso_time:ffffffffff700f80: 55 push %rbpffffffffff700f81: 48 85 ff test %rdi,%rdiffffffffff700f84: 48 8b 04 25 a8 f0 5f mov 0xffffffffff5ff0a8,%raxffffffffff700f8b: ffffffffffff700f8c: 48 89 e5 mov %rsp,%rbpffffffffff700f8f: 74 03 je ffffffffff700f94 __vdso_timeffffffffff700f91: 48 89 07 mov %rax,(%rdi)ffffffffff700f94: 5d pop %rbpffffffffff700f95: c3 retq很显然并没有调用任何系统调用而是直接从地址0xffffffffff5ff0a8处拿到了时间那么地址0xffffffffff5ff0a8一定就是内核映射到用户态的时间公告板的位置了。记住地址0xffffffffff5ff0a8用户态的分析到此告一段落我们进入内核去看一看。首先从/proc/kallsyms中查到vdso的位置ffffffff81941000 D vdso_startffffffff819424b0 D vdso_end其次我们找到内核时间公告板vsyscall_gtod_data的位置ffffffff81a75080 D vsyscall_gtod_data我们看一下该公告板的值crash struct vsyscall_gtod_data.wall_time_sec ffffffff81a75080wall_time_sec 1600912854crash struct vsyscall_gtod_data.wall_time_sec ffffffff81a75080wall_time_sec 1600912856crash struct vsyscall_gtod_data.wall_time_sec ffffffff81a75080wall_time_sec 1600912857显然公告板的wall_time_sec字段就是返回给time的值了。下面我们找到它的地址crash struct vsyscall_gtod_data ffffffff81a75080 -ostruct vsyscall_gtod_data {[ffffffff81a75080] seqcount_t seq;struct {int vclock_mode;cycle_t cycle_last;cycle_t mask;u32 mult;u32 shift;[ffffffff81a75088] } clock;[ffffffff81a750a8] time_t wall_time_sec;[ffffffff81a750b0] u64 wall_time_snsec;[ffffffff81a750b8] u64 monotonic_time_snsec;[ffffffff81a750c0] time_t monotonic_time_sec;[ffffffff81a750c8] struct timezone sys_tz;[ffffffff81a750d0] struct timespec wall_time_coarse;[ffffffff81a750e0] struct timespec monotonic_time_coarse;}嗯就是0xffffffff81a750a8了。它就是映射到0xffffffffff5ff0a8暴露给用户态的那个地址了。我们接下来证实这一点修改掉映射地址返回给time调用以0.我们再看公告板crash struct vsyscall_gtod_data ffffffff81a75080...sys_tz {tz_minuteswest 0,tz_dsttime 0},我们把sys_tz映射出去怎样这个值是一直为0的我们期望的就是time返回0.为此我们首先拿到sys_tz和wall_time_sec之间的偏移crash eval ffffffff81a750c8-ffffffff81a750a8hexadecimal: 20decimal: 32octal: 40因此我们只要把vdso的time函数代码改掉即可ffffffffff700f84: 48 8b 04 25 a8 f0 5f mov 0xffffffffff5ff0a8,%rax改为ffffffffff700f84: 48 8b 04 25 c8 f0 5f mov 0xffffffffff5ff0c8,%rax即将time函数的第8个字节0xa8改成0xc8即可通过模式匹配可以拿到time函数在vdso页面的偏移f80: 55 push rbpf81: 48 85 ff test rdi,rdif84: 48 8b 04 25 a8 f0 5f mov rax,QWORD PTR ds:0xffffffffff5ff0a8f8b: fff8c: 48 89 e5 mov rbp,rspf8f: 74 03 je 0xf94f91: 48 89 07 mov QWORD PTR [rdi],raxf94: 5d pop rbpf95: c3 ret即0xf80.那么0xffffffff81941f80便是time函数其地址了unsigned char *addr (unsigned char *)0xffffffff81941f80;addr[8] 0xc8;在修改之前我们先编程验证#include #include typedef time_t (*time_func)(time_t *);int main(int argc, char *argv[]){time_t tloc;// 直接从地址拿值unsigned long *p (unsigned long *)0xffffffffff5ff0a8;// 通过函数拿值time_func func (time_func)0x7ffff7ffaf80;func(tloc);printf(%ld, tloc);printf(%lu, *p);}预期的结果应该是两种方式获取的是同一个值[rootlocalhost ~]# ./a.out16009239221600923922[rootlocalhost ~]# ./a.out16009239231600923923[rootlocalhost ~]#下面将内核页面对应的指令修改之[rootlocalhost ~]# cat modtime.stp#!/usr/local/bin/stap -gfunction modtime(val:long)%{unsigned char *addr (unsigned char *)0xffffffff81941f80;unsigned char c (unsigned char)STAP_ARG_val;addr[8] c;%}probe begin{modtime($1)exit()}执行之[rootlocalhost ~]# ./modtime.stp 0xc8[rootlocalhost ~]# ./a.out01600924228[rootlocalhost ~]# ./a.out01600924229[rootlocalhost ~]# ./modtime.stp 0xa8[rootlocalhost ~]# ./a.out16009242381600924238[rootlocalhost ~]#当修改了vdso页面的指令后所有调用time的进程都将异常这是很显然的top - 08:00:00 up 42 min, 3 users, load average: 0.00, 0.00, 0.00Tasks: 114 total, 1 running, 113 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 0 total, 0 free, 0 used, 0 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 0 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND1 root 20 0 51696 3808 2492 S 0.0 inf 0:01.29 systemd2 root 20 0 0 0 0 S 0.0 -nan 0:00.00 kthreadd3 root 20 0 0 0 0 S 0.0 -nan 0:00.00 ksoftirqd/07 root rt 0 0 0 0 S 0.0 -nan 0:00.01 migration/08 root 20 0 0 0 0 S 0.0 -nan 0:00.00 rcu_bh9 root 20 0 0 0 0 S 0.0 -nan 0:00.00 rcuob/010 root 20 0 0 0 0 S 0.0 -nan 0:00.00 rcuob/1值得一提的是在vdso之前vsyscall机制也是类似只是说它仅仅提供了一种map而没有抽象出动态链接的含义因此也就无法享受ASLR带来的安全保护了。浙江温州皮鞋湿下雨进水不会胖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好看的手机网站布局沈阳沙盘模型公司

SQL是另一个门类的开发语言,是专用于结构化数据库操作的专用语言。SQL不可能单独开发系统,但是做数据库方面的系统不懂SQL也不行。市面上很大部分开发岗位(后台)都是要和数据库打交道的,所以SQL必须掌握。 好消息是&am…

创意建设机械网站wordpress 加分类

本文将简单介绍loglus框架的基本使用,并给出demo 文章目录 前言Loglus常见用法自定义日志级别使用字段钩子输出到多个位置使用钩子实现自定义日志处理demo 前言 Logrus 是一个用于 Go 语言的结构化日志框架,它提供了丰富的日志级别、钩子和格式化选项。…

云主机开网站教程射阳建设局网站

基于 eclipse-temurin 构建国内时区,地区,语言的镜像 使用场景自定Dockerfile构建自己的基础镜像构建本地镜像推送远程仓库 使用场景 在给应用构建自定义镜像时,往往需要在每次构建时去调整时区,地区这些东西;每次构建…

人网站建站想要给网站加视频怎么做

1 STL 的数值算法概述 STL 的数值算法提供了一系列用于处理数值计算的模板函数。这些算法主要针对容器中的元素进行数学运算和统计计算,使得程序员能够高效地处理数值数据。 STL 数值算法包括了一系列功能丰富的函数,例如 std::accumulate 用于计算容器…

惠州哪家做网站好河南那家做网站实力强

本篇文章 经过许多次的测试和修改已经完成了在Ubuntu7.10 下 安装配置 ApachePHPMySQL的所有的工作. 1、在Ubuntu7.10 下安装 Apache2PHP5MySQL sudo apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql phpmyadmin在下载来自动安装配置的时候…

专业电商网站建设多少钱阿里巴巴外贸圈

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

互联网站备案信息重庆施工许可证查询

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格&#xf…

网站百度seo推广怎么做网站联系我们模板

一、篇头 全志H713平台,作为FHD投影的低成本入门方案,其公板上也配齐了许多投影使用的模组,本文即介绍投影仪调焦所用的步进电机,此模组的驱动原理、配制方法、调试方法。因为条件限制,本文采用的是H618香橙派Z3平台&…

网站页面策划怎么做北京66中网站做的不怎么样呀

DES: 这是一个新的游戏。给你一套牌、编号从1到100000.正常来说。你手中的牌和这次翻的牌是一样的,就会加一分。但是。如果是999的话。加三分。所以问你最大的分是多少。 貌似是简单的DP吧。(DP菜鸟...再简单我也不会...T_T...)于是...我看懂…

合适做服装的国际网站东莞企业网站建设开发

1、基本定义 广义定义:商品是为了出售而生产的劳动成果,人类社会生产力发展到一定历史阶段的产物,用于交换的劳动产品。 电商商品基本概念: 商品类目商品属性销售属性商品编码&商品规格编码SKU和SPU… 2、商品类目 电商平…

什么是网站建设方案书做网站项目的流程

一、面向对象类的设计:在程序开发中,要设计一个类,通常需要满足以下三个要求:1、类名 这类事物的名字,满足大驼峰命名法2、属性 这类事物具有什么样的特征3、 方法 这类事物具有什么样的行为eg:小明今年18岁&#xf…

在潮州哪里找做网站的wordpress二次开发手册chm

题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始,按照顺时针螺旋向内写方式,依次写出2,3,....,n,最终形成一个 m 行矩阵。 小明对这个矩阵有些要求:…

app网站平台建设方案湘潭做网站 磐石网络很专业

一般来说绝大部分PC上装的系统均是windows&#xff0c;为了开发linux程序&#xff0c;会在PC上安装一个Vmware的虚拟机&#xff0c;在虚拟机上安装ubuntu18.04&#xff0c;由于windows上的代码查看软件、浏览器&#xff0c;通信软件更全&#xff0c;我们想只用ubuntu进行编译&a…

用sql2000做网站建设银行手机银行网站用户名

SELinux 安全模型——TE 首发公号&#xff1a;Rand_cs 通过前面的示例策略&#xff0c;大家对 SELinux 应该有那么点感觉认识了&#xff0c;从这篇开始的三篇文章讲述 SELinux 的三种安全模型&#xff0c;会涉及一些代码&#xff0c;旨在叙述 SELinux 内部的原理 SELinux 提供…

企业营销网站建设公司哪家好营销软文是什么意思

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/369/F 来源&#xff1a;牛客网 题目描述 现在你有 n 把灵剑&#xff0c;其中选择第i把灵剑会得到的 wiw_iwi​ 攻击力。 于此同时&#xff0c;还有q个约束&#xff0c;每个约束形如&#xff1a; …

wordpress改密码上海有什么seo公司

1.同步获取短视频 1.只要播放地址对Json数据解析&#xff0c;先把列表找出&#xff1a; 2.只想要所有的播放地址&#xff0c;通过列表表达式循环遍历这个列表拿到每个对象&#xff0c;再从一个个对象里面找到Video,再从Video里面找到播放地址(play_addr),再从播放地址找到播放…

电子商务网站建设 精品课上海建设摩托车官网报价

背景 项目需要使用微信公众号发消息&#xff0c;然后就来接入这个微信授权啦&#xff0c;微信公众号发消息前提是还需要用户先关注公众号~ 微信授权是有点恶心的&#xff0c;真的真的需要先配置好环境&#xff0c;开发的话目前是可以使用测试号申请公众号使用测试号的appid~ …

亿联时代网站建设游戏搭建平台

核心原理就是在四条边、四个顶点加上透明的div&#xff0c;给不同方向提供按下移动鼠标监听 &#xff0c;对应计算宽度高度、坐标变化 特性&#xff1a; 支持设置拖拽的最小宽度、最小高度、最大宽度、最大高度可以双击某一条边&#xff0c;最大化对应方向的尺寸&#xff1b;再…

电商网站建设与运营方向就业前景电子商务网站开发需求分析

动漫头像数据集是用于研究和分析动漫头像相关问题的数据集&#xff0c;它包含了大量的动漫风格的头像图像。动漫头像是指以动漫风格绘制的虚构人物的头像图像&#xff0c;常见于动画、漫画、游戏等媒体。 数据集点击下载&#xff1a;YOLO动漫头像数据集50800图片.rar

网站后台怎么做友情链接永久免费不收费的交友软件

转自 http://kuanghy.github.io/2015/12/30/sudo-vim :w !sudo tee %