首页 > 其他分享 >2023.7.20

2023.7.20

时间:2023-07-20 23:56:23浏览次数:26  
标签:20 exp RELRO 2023.7 ret2dlresolve 符号表 stage4

今天学了ctfwiki上ret2dlresolve的stage4。刚开始看到那个exp,给我看傻了。有种熟悉感,但是这种熟悉感来自于我刚开始学Partail RELRO的时候,因为嫌ctfwiki里的六个阶段太麻烦就去找博客看,结果被exp里的各种看不懂作用的代码劝退了。今天看的是伪造符号表项的代码,又看到了那种看不懂的熟悉感。

首先是刚开始的align不知道是干什么的,往后看,不知道符号表的表项下标为什么那样算,再往后看,不知道r_info为什么那么算。然后去找博客看,把_dl_runtime_resolve函数从重定位表跳到符号表的过程了解了一下,回来按照自己的思路推了推发现还是不明白exp里写的东西。最后索性先不去看exp,自己按照整体的过程推了一遍,然后反过来去推exp里的那些过程。中间又遇到个问题,r_info = (index_dynsym << 8) | 0x7这段代码,最后的0x7不知道什么意思,为什么是0x7。又去找博客看,然后知道了这是原本r_info最后两个十六进制位的数,函数一般这里都是0x7,用左移8位加上按位或0x7便能将下标还原成r_info......中间过程让我掉了不少头发,好在最后把代码一步步都看懂了。倒是最后留了一个align,还是不清楚它具体发挥了什么作用,便去问了学长,明白了是用来进行数据对齐的。

本来今天计划要把ret2dlresolve的Partial RELRO看完的,结果只看了个stage4。有点惭愧,好在是学到了不少东西。

标签:20,exp,RELRO,2023.7,ret2dlresolve,符号表,stage4
From: https://www.cnblogs.com/542b/p/17570037.html

相关文章

  • 7.20 c++
    //高精度加法#include<bits/stdc++.h>usingnamespacestd;intmain(){chara1[5005],b1[5005];inta[5005],b[5005],c[5005];intla,lb,lc=1,x=0,i;memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));c......
  • 7/20
    今天把科目一给考了,一遍过简简单单,轻轻松松。前两天舍友在群里告诉我们科一没过时,我以为要考很难,还专门备考了一遍,现在看真是浪费。路上差点又碰到交警(又忘带头盔了)。中午自己做饭,炖的茄子。(本来很讨厌吃的,但没菜了)。下午困(昨晚两点睡的,今天早上又六点半起)。kui累。......
  • windows 2008r2开启cpu虚拟化
    Windows2008R2开启CPU虚拟化介绍在虚拟化技术中,CPU虚拟化是其中一个关键的部分。它允许虚拟机在物理主机上运行,同时有效地共享主机的CPU资源。本文将介绍如何在WindowsServer2008R2中开启CPU虚拟化功能,并提供相应的代码示例。背景WindowsServer2008R2是一款广泛使用的......
  • 每日总结2023年7月20日
    今日学习:算法特性:有穷性(执行有穷步之后结束)、确定性(每一条语句都要有确切意义,不能模糊不清)、输入(>=0)、输出(>=1)、有效性(算法的每个步骤都能有效执行并得到确定的结果);时间复杂度和空间复杂度的概念;顺序查找(ASL=n+1/2)、二分查找(O(n)=log2^n);散列表:线性探测法、伪随机数法;排序:插入类排序(......
  • 网课记录2023.7.20
    视频BV1q54y1q79w首先是今日教训,scanf使用时忘了取地址,折腾了半个多钟才发现scanf("%d",&a);然后文件还莫名其妙地丢失了,幸好之前上传了github下面是正式内容转义字符与\配合导致原本的意思改变目前经常使用的有\n表示换行\t表示水平制表符其余目前未在日常使用中见到ps:如果要在字......
  • 7.20 打卡
    cin.ignore作用它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。例如可以这么用,cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上是为了只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入......
  • 7.20
    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:012345678910M:10X98765432现......
  • 洛谷 P9139 [THUPC 2023 初赛] - 喵了个喵 II
    考虑如果每个数恰好出现两次,那么容易得出一个序列合法当且仅当将每个数两次出现位置看作一个区间\([l_i,r_i]\)的两个端点,那么这些区间两两之间不存在包含关系。考虑每个数出现四次的情况,我们钦定两次为\(i\),两次为\(i+n\),这样可以转化为\(2n\)的情况,而容易发现只有\(1122......
  • 《摆与混》第十八章--7月20日--周四
    周四,我在干什么?1.今天做了什么:今天9点起床(不背锅)。洗漱后,简单吃了个早饭(杂粮煎饼,好吃),上午正常学习,还看了会小说,5点出发健身锻炼(继续坚持),晚上看比赛(爽),大计划要来力!!!!2.解决了什么问题:Java课程推进,PTA继续冲击,加快了进度。3.明天干什么:预计继续学习Java,PTA同步跟进,继续推进大计划(燃......
  • (_mysql_exceptions.OperationalError) (2061, 'RSA Encryption not supported -
    RSA加密与数据库操作的关系在进行数据库操作时,我们有时会遇到类似于“(_mysql_exceptions.OperationalError)(2061,'RSAEncryptionnotsupported'”的错误提示。这个错误提示通常表示我们正在尝试使用RSA加密算法进行数据库操作,但是数据库不支持RSA加密。本文将介绍RSA加密算......