合天網安 ARM彙編教程一 學習筆記

2022-06-15 12:18:11 字數 1228 閱讀 4169

今天開始學arm

ctf實驗室用著非常舒服,但是課程的講解質量實在太差。全程念指導書,作為乙個基礎課很多東西甚至沒有解釋。。。

首先按部就班的安裝樹莓派,再用ssh鏈結它 (ssh是一種常用的網路協議)然後是安裝gef,試驗機已經安裝過了所以不用管(gef是gdb的乙個py外掛程式,用於配置gdb讀取的.gdbinit檔案)

這是乙個zip,解壓

完成後ls看一下,多了乙個叫code的資料夾。進入找到了test1.s的彙編檔案

看一下內容:

.section .test

.global

_start

_start:

mov r0 , pc

mov r1 , #

2add r2 , r1 , r1

bkpt

(.section .text是偽操作,表示**段。_start是乙個代表跳轉的位址值的符號,.globl指示告訴彙編器_start這個符號要被鏈結器用到,所以要在目標檔案的符號表中標記它是乙個全域性符號。)

編譯它

(as 是彙編器,類似gcc)

(ld是gun鏈結器,把一定量的目標檔案跟檔案檔案連線起來,並重定位它們的資料,連線符號引用.一般,在編譯乙個程式時,最後一步就是執行'ld'生產可執行的映象檔案)

在gdb中開啟test1,在_start處下乙個斷點,run

指標停在了start處,觀察暫存器。pc值為0x10054

輸入 nexti 執行mov r0 , pc

(pc即r15,程式計數器,用於為cpu確定下一條指令的位址。一般在執行一條指令後指向下一條指令)

發現此時r0的值為5c,顯然這時pc的值變成了5c即是上一條的後8位,第二條指令。

這是因為,老款的arm處理器總是獲取當前已經執行的指令的後兩條指令的位址。arm保留著這個定義的原因是為了保證和早期處理器的相容性。

合天網安實驗室 SQL注入入門一

實驗平台 合天網安實驗室.web應用安全.sql注入實驗一 實驗環境 apache php mysql 實驗原理 sql注入是一種將sql 插入或新增到應用的輸入引數中的攻擊,之後再將這些引數傳遞給後台的sql伺服器加以解析並執行。傳統的手工 1 判斷是否有注入點 方法一 在url後面加 從而讓sq...

arm彙編學習 一

之前斷斷續續看arm,啥也沒學到的感覺。開始系統學習arm,堅持下來,從arm開發環境,到arm模擬器實際執行。gnu as彙編編譯語法 摘自skyeye arm hello的 start.s define mode svc 0x13 define i bit 0x80.text align 4.g...

學習阮一峰的 Redux 入門教程(一)筆記

如果你不知道是否需要 redux,那就是不需要它 只有遇到 react 實在解決不了的問題,你才需要 redux redux 適用場景 多互動 多資料來源 store 儲存資料的地方,整個應用只能有乙個 store。redux 提供 createstore 函式來生成 store import fr...