1.一種笨的方法:將系統中的ls命令重新命名,假設為list並隱藏它,自己重新寫 乙個程式命名為ls,這個程式會呼叫系統之前的ls,也就是如今的list。 這裡需要注意的時,我們呼叫之前,可以在這個程式中加入一些過濾檔名 或路徑名(我們的攻擊程式)。我們先取得ls的結果,每當ls結果中有這些 資訊時,會將這條記錄濾掉,再輸出到終端。最後我們要把這個我們自己寫的可執行 程式ls放在原先真正ls所在的目錄,一般是『/bin/ls』。這樣就可以實現隱藏我們的攻擊程式了。
2.高大上的做法:重寫ls程式,通過dir結構體以及readdir、 fstat等函式呼叫,當遇到我們想要隱藏的檔案時,自動跳過。ls選項過多,不過常用的選項很少,可以只實現一些常用的選項。這樣改的更徹底,想顯示什麼都可以。
1.基於編譯的保護:隨機canary,canary的值從一塊唯讀記憶體讀取,每當程式返回時就判斷canary是否被修改。
2.基於記憶體的保護:在呼叫函式後,將返回位址、ebp等所在的棧空間設定為不可寫,當成功返回後,再設定回來。
3.基於作業系統保護:專門為返回位址保留乙個暫存器,只有作業系統使用修改它的值。原理就是:將返回位址放在別處,不放在棧中。
1.源**編譯成機器碼時,會把一些程式要引用的函式,從頭檔案中取出來。
2.載入進記憶體時,根據符號表等資訊,將**和資料分別放進記憶體的不同地方。
3.程式執行時,若有動態鏈結,則根據符號表查詢對應的函式位置,並把它動態的鏈結進記憶體。
\xeb\xfe//寫成shellcode形式,或者寫成乙個程式,用strip減掉一些不需要的部分
.text
.globl main
main:
call .l
.string
"hello\n"
.l:pop %ecx
movl $4, %eax
movl $1, %ebx
movl $6, %edx
int$0x80
// write( 1, str, len )
// 4 1 str 5
資訊保安複習
問題 資訊保安的目標是什麼?答 資訊保安的目標是保護資訊的機密性,完整性 抗否認性 和可用性 多表代換密碼中最著名的一種密碼稱之為 維吉尼亞 vigenere 密碼 p14 主要是兩個演算法rsa演算法和橢圓曲線密碼演算法 rsa演算法 解密公式 m c d mod n 加密公式 c m e mod...
期末複習 資訊保安
參考部落格 資訊保安技術 期末複習寶典 整理完畢 計算機資訊保安技術知識點簡摘又名我的期末考試複習第一彈 以朱建明的 資訊保安導論 為例 一 學習目標 1 掌握分組密碼設計的一般原理,了解des演算法 重點 2 掌握序列密碼的基本原理,掌握線性反饋暫存器,掌握非線性序列的生成方法 重點 3 掌握雜湊...
演算法課程期末複習總結
八大排序演算法複雜度比較 求解遞迴式的複雜度 max sum 最大子段和 int len arr.length int dp newint len 1 dp 0 0 for int i 1 i len i int res integer.min value for int i 1 i dp.leng...