最近經(jīng)常能看到有人問如何對照文件格式文檔,調(diào)試分析程序中正在解析的是什么結(jié)構(gòu)?這里總結(jié)了幾點(diǎn)方法,歡迎補(bǔ)充,不過有時還是需要靠經(jīng)驗(yàn)。
(a)污點(diǎn)追蹤分析:標(biāo)記文件內(nèi)容為污點(diǎn),再使用ida 污點(diǎn)分析的相關(guān)插件來分析寄存器對應(yīng)的文件內(nèi)容,結(jié)合010editor文件格式分析腳本來定位文件結(jié)構(gòu)。
(b)執(zhí)行指令比對:記錄正常文件與異常文件的執(zhí)行指令(od、immdbg都有trace功能),然后再作代碼diff,比對代碼的差異性,再根據(jù)文件內(nèi)容的差異性整體分析。
(c)條件消息斷點(diǎn):在一些可能導(dǎo)致漏洞的變量都設(shè)置條件消息斷點(diǎn),在log中記錄他的值,不少變量都會被循環(huán)操作的,根據(jù)變量記錄的結(jié)果,找到其中的規(guī)律來定位文件結(jié)構(gòu)。
(d)假設(shè)法:有時分析漏洞真的是靠猜的,假設(shè)對應(yīng)某個文件結(jié)構(gòu),再調(diào)試分析去證實(shí)。
(e)開源軟件符號表加載:比如分析libpng漏洞,優(yōu)先找個使用libpng且開源并提供有符號的軟件,比如Firefox,分析libpng時直接使用firefox符號表去調(diào)試firefox就很容易定位結(jié)構(gòu),libpng函數(shù)也直接識別,或者你也可以直接編譯libpng制作符號表。
以上就是對文件漏洞分析中定位文件字段的方法,謝謝閱讀,希望能幫到大家,請繼續(xù)關(guān)注VEVB武林網(wǎng),我們會努力分享更多優(yōu)秀的文章。
新聞熱點(diǎn)
疑難解答
圖片精選