首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ARM中使用ROP访问shell

在ARM中使用ROP访问shell
EN

Stack Overflow用户
提问于 2016-04-20 10:15:57
回答 1查看 674关注 0票数 1

作为一门计算机设计课程的作业,我的团队必须使用面向返回的编程,通过溢出缓冲区并利用我们找到的几个小工具来访问shell。

使用GDB时,我们使用以下命令找到了字符串"/bin/sh“的位置:

代码语言:javascript
复制
(GDB) find &system, +9999999, "/bin/sh"

然后,使用几个小工具,我们可以将其加载到r0中,并从那里我们能够跳到。

不幸的是,每次我们在访问终端之前都会遇到段故障。我们在这一点上很迷茫,你可以给我们任何帮助。你们中有谁知道导致这种情况的常见错误吗?

在我们浏览我们的小工具并进入system之前,我们的堆栈看起来像这样:

代码语言:javascript
复制
(gdb) x/15a $sp
0xbefffb40: 0x85a4  0x42424141  0x44444343  0x46464545
0xbefffb50: 0xbeff0046  0xb6f55108 <inet6_opt_finish+56>    0xb6f84a60  
            0xb6f55104 <inet6_opt_finish+52>
0xbefffb60: 0x0 0xb6ea3f6c <__libc_system>  0x0 0x84d0 <main>
0xbefffb70: 0xb6ffc718  0xb6ffc400  0x0

进入系统后:

代码语言:javascript
复制
(gdb) x/10a $sp
0xbefffb68: 0x0 0x84d0 <main>   0xb6ffc718  0xb6ffc400
0xbefffb78: 0x0 0x0 0x83bc <_start> 0x0
0xbefffb88: 0x0 0x0
EN

回答 1

Stack Overflow用户

发布于 2016-05-27 10:02:11

不确定你的主程序是什么样子的,但看起来我以前有过这个。崩溃可能是因为你正在跳转/返回到thumb子例程中,至少安卓5.0,1的__libc_system()函数在thumb中。在文档ARM Procedure call standard (第17页5.3节)中,如果目标在拇指上,则返回的目标地址必须为+1,因此0xb6ea3f6c <__libc_system>应为0xb6ea3f6d

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36732640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档