MIPS rop gadgets記錄貼 持續更新

2022-06-09 11:33:10 字數 3331 閱讀 1731

本帖記錄一些常用的,效果好的 rop gadgets.

uclibc

從棧中設定$t9並跳到$t9的gadgets ,__thread_start函式第二行

使用 案例

使用tips:

lw      $t9, arg_0($sp)

jalr $t9

四個組合使用,呼叫棧中 shellcode 的 rop_gadget , 需要可以控制$s1,

詳細分析在這裡

rop_gadget 1,設定 引數一 為 1,位於__uclibc_main,可以使用mipsrop.find("li $a0, 1")查詢

load:00055c60                 li      $a0, 1

load:00055c64 move $t9, $s1

load:00055c68 jalr $t9 ; sub_55960

load:00055c5c lui $s0, 2

rop_gadget 2,從棧中設定暫存器,使用mipsrop.tail()查詢

load:0001e20c                 move    $t9, $s1

load:0001e210 lw $ra, 0x28+var_4($sp)

load:0001e214 lw $s2, 0x28+var_8($sp)

load:0001e218 lw $s1, 0x28+var_c($sp)

load:0001e21c lw $s0, 0x28+var_10($sp)

load:0001e220 jr $t9

load:0001e224 addiu $sp, 0x28

rop_gadget 3,獲取棧位址,使用mipsrop.stackfinder()查詢

load:000164c0                 addiu   $s2, $sp, 0x198+var_180

load:000164c4 move $a2, $v1

load:000164c8 move $t9, $s0

load:000164cc jalr $t9 ; mempcpy

load:000164d0 move $a0, $s2

rop_gadget 4,通過$t9, 跳轉到$s2,使用mipsrop.find("move $t9, $s2")查詢, 位於readdir

load:000118a4                 move    $t9, $s2

load:000118a8 jalr $t9

從棧中取資料到暫存器,opendir函式尾部

.text:0000aa6c                 lw      $ra, 0xc0+var_4($sp)

.text:0000aa70 lw $s2, 0xc0+var_8($sp)

.text:0000aa74 lw $s1, 0xc0+var_c($sp)

.text:0000aa78 lw $s0, 0xc0+var_10($sp)

.text:0000aa7c jr $ra

.text:0000aa80 addiu $sp, 0xc0

.text:0000aa80 # end of function opendir

從棧中設定基本上所有的重要暫存器,位於scandir或者scandir64尾部

load:00011bb0                 lw      $ra, 0x40+var_4($sp)

load:00011bb4 lw $fp, 0x40+var_8($sp)

load:00011bb8 lw $s7, 0x40+var_c($sp)

load:00011bbc lw $s6, 0x40+var_10($sp)

load:00011bc0 lw $s5, 0x40+var_14($sp)

load:00011bc4 lw $s4, 0x40+var_18($sp)

load:00011bc8 lw $s3, 0x40+var_1c($sp)

load:00011bcc lw $s2, 0x40+var_20($sp)

load:00011bd0 lw $s1, 0x40+var_24($sp)

load:00011bd4 lw $s0, 0x40+var_28($sp)

load:00011bd8 jr $ra

load:00011bdc addiu $sp, 0x40

load:00011bdc # end of function scandir

隨便記記 linux

作業系統的作用 對硬體進行操作 整合系統呼叫的介面,供使用者使用 作業系統 桌面作業系統 windows macos linux 伺服器作業系統 linux windows server 嵌入式作業系統 linux 移動設別作業系統 ios android 基於linux 虛擬機器通過軟體模擬完整計...

這裡就是隨便記記

啊一開始學的神馬來著 並查集 動態規劃 dfs bfs 還有個神馬。忘了 我去看看 我去 我真忘了 貪心。首先貪心講神馬來著。當前最優?晚點練習紫書 完全忘了。然後 並查集練得比較多 先初始化 找根合併 最後要求什麼查什麼。恩.優化方法呢 有個直接連根的 還有個按秩合併 對伐 關於圖 有個kruth...

老友記 2021 1 4日記

今天似乎是平淡的複習一天,效率並不是很高的一天。早上醒的比昨天早了一些,去食堂吃了午飯之後便去工位了。在吃午飯的時候從同學那聽到乙個訊息,就是我們這個校區這麼小乙個食堂乙個月流水竟然就有五十多萬,毛利潤竟然就有百分之四十多。這還是告訴乙個學生的聊天,不知道真實的究竟是多少,餐飲業這樣的現金流真的讓人...