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