今天開始學arm
ctf實驗室用著非常舒服,但是課程的講解質量實在太差。全程念指導書,作為乙個基礎課很多東西甚至沒有解釋。。。
首先按部就班的安裝樹莓派,再用ssh鏈結它 (ssh是一種常用的網路協議)然後是安裝gef,試驗機已經安裝過了所以不用管(gef是gdb的乙個py外掛程式,用於配置gdb讀取的.gdbinit檔案)
這是乙個zip,解壓
完成後ls看一下,多了乙個叫code的資料夾。進入找到了test1.s的彙編檔案
看一下內容:
.section .test(.section .text是偽操作,表示**段。.global
_start
_start:
mov r0 , pc
mov r1 , #
2add r2 , r1 , r1
bkpt
_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...