展开

关键词

首页关键词vdso

vdso

相关内容

云服务器

云服务器

腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。
  • 人见人爱的vDSO机制,如今也靠不住了

    ★本文旨在介绍vDSO在内核提权中绕过SMEPPXN的应用★ 0x01 vDSO是什么孙子兵法最核心的价值观就是:知己知彼,百战不殆。为了搞清楚vDSO在内核提权中的应用,首先就要搞清楚vDSO到底是什么,我们来看下vDSO的定义:The vDSO (virtual dynamic shared object) is a small8192 bytes to vdso.sogdb-peda$ [email protected]:tmp# file vdso.sovdso.so: ELF 64-bit LSB shared object,vdso段中gettimeofday()函数的内容,需要知道vDSO段的内核态地址 3、内核态的shellcode如何编写?2、vDSO段的内核态地址 通过暴力搜索vdso的ELF开头来确定vdso在内核中的映射位置,这需要一个内核任意读。
    来自:
    浏览:665
  • 人见人爱的vDSO机制,如今也靠不住了

    0x01 vDSO是什么孙子兵法最核心的价值观就是:知己知彼,百战不殆。为了搞清楚vDSO在内核提权中的应用,首先就要搞清楚vDSO到底是什么,我们来看下vDSO的定义:The vDSO (virtual dynamic shared object) is a small0x02 vDSO在内核提权中的应用首先明确一点,vDSO在用户态的权限是RX,在内核态的权限是RW,这导致了如下两种思路:??vdso段中gettimeofday()函数的内容,需要知道vDSO段的内核态地址 3、内核态的shellcode如何编写?2、vDSO段的内核态地址 通过暴力搜索vdso的ELF开头来确定vdso在内核中的映射位置,这需要一个内核任意读。
    来自:
    浏览:3529
  • 广告
    关闭

    50+款云产品免费体验

    提供包括云服务器,云数据库在内的50+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • 什么是vdso和vsyscall?

    7fff97945000-7fff97946000 r-xp 00000000 00:00 0 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 vdso
    来自:
    回答:2
  • Linux内核之旅张凯捷——系统调用分析(1)

    vDSO是vsyscall的主要替代方案,是一个虚拟动态链接库,将内存页面以共享对象形式映射到每个进程,用户程序在启动的时候通过动态链接操作,把vDSO链接到自己的内存空间中。.1:提供vDSO功能。初始化vDSO发生在archx86entryvdsovma.c的init_vdso()函数中:static int __init init_vdso(void){ init_vdso_image(&vdso_imagevdso_image结构体,vdso_image_64和vdso_image_x32在archx86entryvdsovdso-image-64.c和archx86entryvdsovdso-image-x32vdso64_enabled) return 0; return map_vdso_randomized(&vdso_image_64);}??
    来自:
    浏览:431
  • Stringipc-从内存任意读写到权限提升

    vdso在内核层的内存权限为rw,用户层的权限为rx,vdso的范围在0xffffffff80000000~0xffffffffffffefff。出vdso的内容,共有0x2000个字节: dump memory vdso.1 0xffffffff9ac04000 0xffffffff9ac06000 再用objdump -T vdso.1得到, ret; vdso_usr = getauxval(AT_SYSINFO_EHDR); printf( vdso_usr:0x%lxn, vdso_usr); ret = memmem(vdso_usr, ret; vdso_usr = getauxval(AT_SYSINFO_EHDR); printf( vdso_usr:0x%lxn, vdso_usr); ret = memmem(vdso_usr= addr; printf( vdso_kernel: 0x%lxn,vdso_kernel); break; } } size_t kernel_base = vdso_kernel & 0xffffffffff000000
    来自:
    浏览:246
  • gettimeofday的几种实现方法

    3,vDSO有一些syscall,例如time、gettimeofday等,这些只是从kernel中请求数据,kernel的实现上,甚至只是把内核变量copy到用户buf上。vDSO的man介绍如下: ?5,memory mapping上文提到了那个非常极端的方法,本质来说和vDSO比较接近,但是更加激进一些。相比于vDSO,安全检查非常不好,也需要root权限。这里不做实现。可见,syscall的实现上,已经比vDSO的实现没有太大的差距了。远不似当年相对比于int 0x80的性能提升了。在skylake上测试,syscall大约只要320 cycles。
    来自:
    浏览:1360
  • 如何显示共同的线条(反向差异)?

    FOO: linux-vdso.so.1 => (0x00007fffccffe000)libvlc.so.2 => usrliblibvlc.so.2 (0x00007f0dc4b0b000)libvlccore.sousrliblibkdeui.so.5 (0x00007f716ae22000)libkio.so.5 => usrliblibkio.so.5 (0x00007f716a96d000)linux-vdso.so那么它就类似于file1:line_number, file2:line_number == matching text (只是一个建议,我真的不在意语法): foo:1, bar:3 == linux-vdso.so
    来自:
    回答:2
  • Linux内核之旅张凯捷——系统调用分析(2)

    sysenter sysexit03之前说到的vsyscalls和vDSO都是从机制上对系统调用速度进行的优化,但是使用软中断来进行系统调用需要进行特权级的切换这一根本问题没有解决。(2)调用宏virt_to_page得到syscall_page地址对应的page管理结构地址并赋值给vdso32_page。(4)将vdso32_sysenter_start地址赋给vsyscall,然后用memcpy()将vsyscall拷贝到对应的页,最后用relocate_vdso()进行重定向。在archx86vdsovdso32.S中可以看到vdso32_sysenter_start就是vdso32-sysenter.so: vdso32_sysenter_start: 即将vdso32-sysenter.so拷贝到对应的页中,在《系统调用分析(1)》的vDSO介绍中提到的arch_setup_additional_pages函数便是把拷贝到的页的内容映射到用户空间。
    来自:
    浏览:407
  • 编译自定义Python二进制程序

    usrbing++make -j4 > make.logmake install我用ldd命令检查下Python二进制程序依赖的库文件:# ldd usrlocalpython27binpython linux-vdso.so-name *.so|xargs ldd.buildlib.linux-x86_64-2.7_socket.so: linux-vdso.so.1 => (0x00007ffdba579000) libm.so0x00007ff0d8804000) lib64ld-linux-x86-64.so.2 (0x00007ff0d9304000).......buildlib.linux-x86_64-2.7_curses.so: linux-vdso.somake install最后检查下编译出的python二进制程序文件及各模块的动态库文件,发现仅依赖系统核心库文件,效果很好:# ldd usrlocalpython27binpython linux-vdso.solib64ld-linux-x86-64.so.2 (0x00007fbc2b16d000)......usrlocalpython27libpython2.7lib-dynload_codecs_cn.so: linux-vdso.so
    来自:
    浏览:548
  • 在程序加载的共享库中使用C ++ 11多线程,无需线程支持吗?

    allow-shlib-undefined -pthread -lpthread 在我的库上调用ldd会提供以下输出: $ ldd calc3buildamd64_linux26_RH5library.so linux-vdso.so0x00002ae6ecaef000) lib64ld-linux-x86-64.so.2 (0x00000032cb400000) 和主程序: $ ldd ...bin-64main_program linux-vdso.soldd输出(全部): linux-vdso.so.1 => (0x00007fff4d3fd000)libstdc++.so.6 => afsbbdatad6833utilgcc_482lib64libstdc
    来自:
    回答:2
  • GPU 云服务器

    腾讯GPU 云服务器是提供?GPU?算力的弹性计算服务,具有超强的并行计算能力,作为?IaaS?层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景……
    来自:
  • FPGA 云服务器

    腾讯FPGA云服务器是基于FPGA硬件可编程加速的弹性计算服务,您只需几分钟就可以获取并部署您的FPGA实例。结合IP市场提供的图片,视频,基因等相关领域的计算解决方案,提供无与伦比的计算加速能力……
    来自:
  • 专用宿主机

    专用宿主机(CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
    来自:
  • 黑石物理服务器2.0

    腾讯黑石物理服务器2.0(CPM)是一种包年包月的裸金属云服务,为您提供云端独享的高性能、无虚拟化的、安全隔离的物理服务器集群。使用该服务,您只需根据业务特性弹性伸缩物理服务器数量,获取物理服务器的时间将被缩短至分钟级。
    来自:
  • 容器服务

    腾讯云容器服务(Tencent Kubernetes Engine ,TKE)基于原生kubernetes提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。容器服务提供免费使用,涉及的其他云产品另外单独计费。
    来自:
  • 弹性伸缩

    腾讯弹性伸缩(AS)为您提供高效管理计算资源的策略。您可设定时间周期性地执行管理策略或创建实时监控策略,来管理 CVM 实例数量,并完成对实例的环境部署,保证业务平稳顺利运行。弹性伸缩策略不仅能够让需求稳定规律的应用程序实现自动化管理,同时告别业务突增或CC攻击等带来的烦恼,对于每天、每周、每月使用量不停波动的应用程序还能够根据业务负载分钟级扩展。
    来自:
  • 云函数

    云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF 是实时文件处理和数据处理等场景下理想的计算平台。
    来自:
  • 批量计算

    批量计算(Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算可以根据用户提供的批处理规模,智能地管理作业和调动所其需的最佳资源……
    来自:
  • 消息队列 CMQ

    腾讯云消息队列(CMQ)是一种分布式消息队列服务,它能够提供可靠的基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)之间的收发消息,存储在可靠有效的 CMQ 队列中,防止消息丢失。CMQ 支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
    来自:

扫码关注云+社区

领取腾讯云代金券

http://www.vxiaotou.com