首页
社区
课程
招聘
[求助]x86-64 linux 获取XXX@PLT地址不理解的地方
2018-2-6 16:32 3372

[求助]x86-64 linux 获取XXX@PLT地址不理解的地方

2018-2-6 16:32
3372
测试环境:linux 系统 x86-64 位并且开启了ASRL.
我想通过xxx@plt地址来覆盖返回地址。

找到plt地址如下:
(gdb) disassemble shell
Dump of assembler code for function shell:
   0x000000000040060d <+0>:     push   %rbp
   0x000000000040060e <+1>:     mov    %rsp,%rbp
   0x0000000000400611 <+4>:     mov    $0x400704,%edi
   0x0000000000400616 <+9>:     mov    $0x0,%eax
   0x000000000040061b <+14>:    callq  0x4004e0 <system@plt>
   0x0000000000400620 <+19>:    mov    $0x0,%edi
   0x0000000000400625 <+24>:    callq  0x400510 <exit@plt>

这些 plt地址感觉像是偏移和x86机器看到的不一样?
1、请问这个 0x000000000040061b 是不是偏移地址
2、如果是偏移是不是直接用plt地址覆盖返回地址就不行了,有其它办法吗



[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 224
活跃值: (116)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
b1gcat 2018-2-6 16:50
2
0
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA?
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff80294e0 in ?? ()

关闭ASLR 用Libc基地址+上面的“偏移” 发现不行, 应该不是偏移。有木有资料可以了解下这块。
雪    币: 763
活跃值: (288)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
pwnda 2 2018-2-6 20:21
3
0
您所看到的xxx@plt是xxx函数在题目binary文件中的地址,使用的libc+偏移一定是不行的,在没有开pie保护的情况下,可以用0x4004e0来覆盖返回地址试一下。    至于这部分知识,我觉得蒸米大大讲的《一步一步学ROP》  +  《程序员的自我修养》差不多可以覆盖您所说的知识点。
雪    币: 224
活跃值: (116)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
b1gcat 2018-2-7 08:41
4
0
pwnda 您所看到的xxx@plt是xxx函数在题目binary文件中的地址,使用的libc+偏移一定是不行的,在没有开pie保护的情况下,可以用0x4004e0来覆盖返回地址试一下。 至于这部分知识,我觉得 ...
谢谢  我尝试覆盖  不过覆盖不到高7f。  strcpy  遇到0就截断

哦哦rop倒是提醒我个思路 我试试

游客
登录 | 注册 方可回帖
返回