ldd 安全問題 更換鏈結器

2021-10-08 05:11:24 字數 1534 閱讀 6632

**

**

ldd本身不是乙個程式,而僅是乙個shell指令碼

$ file /usr/bin/ldd

/usr/bin/ldd: bourne-again shell script text executable

ldd命令其實是依靠設定一些環境變數而實現的(也就是說ldd的作用只是設定一些環境變數的值)

如:ld_trace_loaded_objects

只要設定其值非空即可。

$ export ld_trace_loaded_objects=1

$ ls /usr

linux-gate.so.1 =

>

(0xb7fac000)

/lib/ld-linux.so.2 (0xb7fad000)

libdl.so.2 =

> /lib/tls/i686/cmov/libdl.so.2 (0xb7df0000)

撤銷該環境變數,ls即又可以恢復正常使用:

$ unset ld_trace_loaded_objects

$ ls /usr/

bin games include lib lib32 lib64 local sbin share src x11r6

例如: 執行ldd /bin/ls

ldd 在執行的時候,首先是設定ld_trace_loaded_objects環境變數,然後呼叫ld-linux.so.2鏈結器,去輸出ls檔案的依賴

如果我們直接執行/lib/ld-linux.so.2 /bin/ls可以發現ls是執行成功的。

也就是說當執行ld-linux.so.2時候,它會先判斷ld_trace_loaded_objects有沒有被設定,如果有,就輸出依賴關係,如果沒有,就執行命令本身

如果我們更換乙個鏈結器,讓鏈結器不對ld_trace_loaded_objects環境變數做判斷,無論什麼時候都執行命令本身,那麼此時的ldd命令就有很大的風險了

具體例子看這個:

-wl,–dynamic-linker,$l/lib/ld-uclibc.so.0 — 指定乙個新的裝載器。

checking sub-depends for

'not found'

libc.so.6 =

> not found (0x00000000)

/mylib/ld-hello.so =

> /mylib/ld-hello.so (0x00000000)

觀察到,elf檔案的鏈結器已經變了

ActiveX 安全問題

工作中寫了乙個mfc activex,測試的時候,發現ie6和ie8修改了安全設定後能夠正常執行,ie7和別的瀏覽器則始終無法正常執行,經過多方查詢,發現缺少一些安全資訊註冊,新增下列 後能夠正常執行了。首先定義三個函式 然後在stdapi dllregisterserver void 和stdap...

yii 安全問題

1.對於傳入的引數值,進行過濾,譬如分頁,排序等,如果傳入的引數,有乙個引數不在約定的陣列,則報錯,對於有一些值,譬如乙個頁的個數,這些也需要做限制,如果不在這個個數陣列中,則報錯 譬如 sortby get sort if in array sortby,title created at stat...

執行緒安全問題

執行緒安全問題導致的原因 當多條語句在操作同乙個執行緒共享資料時,乙個執行緒對多條語句只執行了一部分,還沒有徹底執行完畢,此時另乙個執行緒參與進來執行,導致共享資料的錯誤。執行緒安全解決辦法 對多條操作共享的語句,每次只能讓乙個執行緒執行完成。在執行的過程中,其他執行緒不可以參與執行。解決方案 同步...