故障定位 利用gdb給Linux動態庫打熱補丁

2021-09-22 07:56:34 字數 632 閱讀 1701

一、前言

對linux下elf檔案格式的分析是linux攻防的基礎。掌握elf檔案的格式分析,不僅僅是學習別人如何攻擊軟體的目的,更多的我們應該利用知識幫助解決實際問題。

例如linux有些故障很難復現,如果出了問題,重新換軟體版本,很可能就復現不了了。於是在出現故障時,不重啟應用(程序)的前提下,給應用程式打熱補丁,用新函式替換舊函式,可以達到獲取相關異常資訊或者修復故障的目的。

什麼是熱補丁和冷補丁?熱補丁就是修復故障無需重啟應用就可以生效。相反,冷補丁就是修復故障後需要重啟應用才能生效。

前面講過linux下elf檔案格式,這裡主要根據elf檔案格式相關知識,並結合gdb工具,給linux下動態庫打熱補丁。

二、需求和原始碼

三、操作步驟

四、重定向演練

五、後續

上文是利用gdb工具給linux動態庫打熱補丁,後續會通過自動化軟體,實現打熱補丁,但是gdb打補丁是後續進行補丁自動化的基礎。

Linux問題故障定位

針對應用程式,通常關注的是核心cpu排程器功能和效能。執行緒的狀態分析主要是分析執行緒的時間用在什麼地方,而執行緒狀態的分類一般分為 a.on cpu 執行中,執行中的時間通常又分為使用者態時間user和系統態時間sys。b.off cpu 等待下一輪上cpu,或者等待i o 鎖 換頁等等,其狀態可...

Linux 下使用 gdb 定位 crash 位置

下面這一段 會出現segv錯誤。include int foo void int main void 執行後如下 foo 段錯誤 核心已轉儲 但是沒有發現 core 檔案。需要設定一下。ulimit c unlimited 再次執行生成 core 檔案。使用 gdb 除錯 gdb foo core ...

linux 定位系統異常負載故障思路

定位系統異常負載故障思路 top看程序的id號 舉例php cgi 經過上圖,我們發現,有兩個php cgi程序的cpu資源佔用率過高,pid分別是10059,11570,這一般都是程式優化不夠造成,如何定位問題的php程式位置?2.找出程序所使用的檔案 proc 檔案系統儲存在記憶體中,主要儲存系...