机器编程的到来,会让程序员丢掉饭碗吗?
|
伴随着5G、物联网、云计算、大数据等新一代信息技术的发展,人类社会进一步向智慧化迈进,这对运营商来说既是机遇也是挑战。一方面,抓住5G机遇有利于探索新的发展方向,寻找新的利润增长点,巩固、提升市场份额。另一方面,巨额的成本投入也使其面临着巨大压力。 因此,如何更好的管控成本成为运营商必须要思考和解决的问题,而其中网络整治成本又是成本管控的重点领域,尤其伴随着5G商用,相关网络及配套设备数量大幅增长,整治难度加大,网络整治成本管理面临着新的挑战。然而,各大运营商在网络整治成本管理领域普遍存在一些问题,特别是在立项管理、过程管理和后评估管理等方面,网络整治项目的真实性、规范性有待加强,整治效果的可评估性、可追溯性尚显不足,导致网络整治项目管理混乱,网络整治成本配置与使用不够合理。在此背景下,建立一套完善的网络整治成本管控机制显得尤为迫切与重要。 一、网络整治成本概述 网络整治优化是指对在网运行且列入固定资产的各类网络、设备、通信机房、网络运营支撑系统等进行迁改、调整、搬迁、整治、整改、割接、优化(含无线网络优化)等过程中产生的物料、整治施工的人工等相关成本支出。其属于运营商网运修理费的重要组成部分,主要作用可分为两大方面: 一是预防重大故障的发生,保障通信正常运行。网络整治成本是对网络及设备的预防性投入,目的是加强日常的检修维护,降低重大故障发生率。
二是恢复或改善其性能,提高网络质量。通过对网络及设备的持续整改和优化,提高设备性能,延长设备寿命,保证网络的稳定性,提升用户满意度。其重点关注领域主要包括线路大修改造、迁改赔补、本地光缆杆线整治、零星维护、网络优化和专项整治等。近年来,网络整治成本占整个网运修理费成本的比重越来越大,随着对网络质量要求的不断提升,整治成本的重要性愈发凸显。同时,网络整治项目管理混乱,缺乏“立项-审批-执行-评估”的全流程管控机制及系统关联手段,因此,建立科学的网络整治成本管控机制是大势所趋,可以提升网络整治成本投放的科学性和精确性,使成本管控更加合理。 我们再来回顾一下_dl_fixup的代码,注意在[1]处,_dl_fixup的reloc_arg参数重定位记录表的索引,来读取重定位记录。这个重定位记录提供了一个reloc->r_info字段,该字段通过宏分为高32位的符号表索引和低32位的重定位类型。 在[2]处,_dl_fixup利用reloc->r_info索引从符号表中获取相应的符号条目,在reloc->r_info处的ELF_MACHINE_JMP_SLOT类型断言和sym->st_other处的符号查找范围检查之前,实际的函数解析以一种非常简单的方式进行。首先,通过将linkmap中的l->l_addr字段和符号表项的sym->st_value字段相加来解析函数地址。然后将解析后的值写入rel_addr中,rel_addr是在[3]处计算出来的,也就是l->l_addr和reloc->r_offset相加的结果。 linkmap中的l->l_addr字段是用来存放加载库的基地址,任何解析的偏移值都会被加入其中。 综上所述,sym->st_value + l->l_addr是解析函数的地址,l->l_addr + reloc->r_offset是重定位目标,也就是GOT条目,将用解析函数地址进行更新。 所以,从我们攻击者的角度来看,既然我们控制了l->l_addr,以及指向符号表和重定位记录的.dynamic段的指针,我们就可以将执行重定向到对我们有利的地方。 小结
在本文中,我们将深入地探讨,在通过外部函数接口(Foreign Function Interface,FFI)将基于C/C++的库“粘合”到解释语言的过程中,安全漏洞是如何产生的。由于篇幅过长,我们将分为多篇进行介绍,更多精彩内容敬请期待! 请注意,在大多数情况下,D_PTR只是从.dynamic段条目中获取d_ptr字段,以检索相关段的运行时重定位地址。例如,const char *strtab = (const void *) D_PTR (l, l_info[DT_STRTAB]);将按照提供的指向.dynstr (STRTAB)段的.dynamic条目的指针,在l_info数组的索引DT_STRTAB处,获取上述条目的d_ptr字段。
在指针方面,这里比较让人头疼,但我们只要记住一点就行了:我们并不是通过控制linkmap中的l_info数组来提供直接指向解析器所需要的各个段的指针,而是指向(假定的).dynamic条目的指针,这些条目在偏移量+8处应该包含一个指向相关段的指针。 (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


