加密妙招 讓逆向工程毫無用武之地

2021-09-23 03:34:55 字數 2165 閱讀 8742

軟體逆向工程,解構程式分析其運作機制的藝術,高階黑客得以徹底探索**查詢可供利用漏洞的利器。同時,它也是這些黑客的惡意軟體被破解和無害化的不二法門。而現在,乙個新的加密小妙招就能使黑帽子和白帽子雙方的逆向工程工作都很難開展。

將於下個月在新加坡舉行的syscan安全大會上,安全研究員jacob torrey計畫展示他稱之為「反逆向工程系統」(hares)的一種新的機制。torrey的方法在於加密軟體**,並且只在**即將被執行的最後一秒才在處理器中解密**。這將阻止逆向工程工具在程式執行時讀取被解密的真實**。結果就是:想盜版軟體的黑客難以破解軟體,無法找出安全漏洞,甚至,在某些情況下連弄清軟體的基本功能都做不到。

「這將使應用程式完全不透明。軟體演算法無法被逆向工程解析,脆弱點無法被找到。」

像adobe和歐特克(autocad、3dsmax、maya等設計軟體的娘家)這樣的公司可以將hares當作一種高階的新型數字版權管理(drm)形式,保護他們超貴的軟體免遭不法複製。另一方面,這種機制也意味著難以破解的犯罪或間諜惡意軟體的新紀元。白帽子們將難以摸清這些惡意軟體的意圖,分辨不出誰是作者,也無法有效開發防禦機制。就像知名黑客grugq在torrey的摘要提交到syscan日程表時在推特上寫的:hares可能意味著「惡意軟體分析簡單易行時代的終結」。

為使逆向工程工具失效,hares採用了乙個在英特爾和amd晶元上都可以做到的硬體小花招:轉換後備緩衝器(tlb)分割。tlb分割在計算機記憶體上將程式的資料段和**指令段分離。hares保持指令段記憶體中的所有東西都在加密狀態,只有用處理器中存有的金鑰才可以解密。(這意味著即使高階如「冷啟動」把資料封存到ram中這樣的攻擊手段,也不能將金鑰從記憶體中抽出來。)普通逆向工程工具如ida pro讀取計算機記憶體找尋程式指令段**,tlb分割就重定向逆向工程工具到記憶體中充填了加密的不可讀指令的區段,讓逆向工程工具無法從中找到可用**。

簡而言之,被加密的記憶體無法從其他未經加密的記憶體中進行訪問。

很多黑客開始逆向工程的第一步是用一種叫「fussing」的技術,向程式中輸入隨機資料以期導致程式崩潰,然後分析這些崩潰情況以定位到更嚴重的可供利用的漏洞。但是torrey聲稱,fuzz乙個由hares加密過的程式只會將這些崩潰現場渲染得完全不可讀。

「你可以fuzz乙個程式,但即使你成功讓它崩潰了,你也無法知道是什麼引發的崩潰。你就像在盲人摸象或者醉鬼開車,完全理不清頭緒。」

torrey說他設計hares是為了將其用於抵禦黑客的防護機制,而不是用來製造不能被解析的神秘惡意軟體。但他也承認,如果hares真的有效,也會被用於攻擊性的黑客目的。

「想象一下如果你不能看到震網病毒的**,你該怎樣搞清它是個什麼東西。我想這將改變對國家級惡意軟體的反應。」

hares的保護機制也不是那麼牢不可破。應用軟體想使用這一加密小花招就必須在軟體安裝時在cpu中放置乙個用於解密的金鑰。某些情況下,超有經驗的逆向工程師也可能會攔截到這個金鑰並使用它讀取到程式的隱藏指令。不過,為取得金鑰,他得提前準備,使用一些用於找尋金鑰的軟體。而有時候軟體會被預裝到計算機上,金鑰有可能被作業系統製造商(如蘋果或微軟)提前置於cpu中以防被黑。「從技術觀點看,這種做法尚待商榷,但已比我們現有的辦法好太多。」

破解hares加密的另一種方法,是利用某些晶元的除錯功能。除錯功能允許晶元和主機板間的乙個硬體裝置讀取處理器執行的每一條指令。不過,要使用這個功能,得添置乙個售價高達5位數的jtag偵錯程式,這可不是大多數反向工程師消受得起的。「這絕對是高階貨。很明顯,國家地區級別的機構會有這些東西,但其他人就可能不會有太多能玩得起了。」

torrey提到:也許有一天,程式**加密的方式將發生改變,指令不加密也能執行——這樣軟體就真的破解不能了。不過,這種「完全同態加密」系統現在基本還只處於理論階段,實際用起來會導致處理器花費數百萬倍的時間來處理指令(相對於不採用此加密系統而言)。而hares僅僅使受它保護的程式執行變慢2%。「完全同態加密就是**保護界的聖杯,但它是個學術上的數學問題。hares則能裝入你當前的系統,保護你現在在用的軟體。」

torrey開發hares的tlb分割技術受到了美國國防部高階計畫研究局「網路快速通道」專案的資金支援。他不準備在今年3月的syscan安全會議上發布hares專案的**,而是打算於下個月在邁阿密舉行的潛入安全會議上公開。

torrey說,如果他3月份的演講過後有程式設計師決定用hares的方法去寫超難破解的惡意軟體,他也不會感到意外。只要給黑客們一兩點沒加密的提示,他們就會找到挖掘出你秘密的方法。

加密演算法逆向

最近勒索軟體盛行,果斷有逆向加密演算法的需求啊,可是小白乙個真心逆向起來十分的費力。下面記錄幾個逆向演算法的關鍵點和關鍵步驟。1 定位加密演算法的位置 加密演算法有幾個關鍵點 初始向量 vi 加密金鑰 key 加密演算法 輸入資料 輸出資料。所以分析過程中要找出這幾個關鍵點,一般關注點是輸入資料和輸...

逆向開發 2 雜湊加密 base64加密

雜湊 雜湊 函式md5 sha1 256 512 hmac hash的特點 1.演算法是公開的 2.對相同資料運算,得到的結果是一樣的 3.對不同資料運算,如md5得到的結果是128位,32個字元的十六進製制表示,沒法逆運算 md5加密的特點 不可逆運算 對不同的資料加密的結果是定長的32位字元 不...

五大妙招讓你快速入夢鄉

一.不睡覺 法 不睡覺 法 適用躺下就清醒的人 這種辦法似乎很不人道,本來我就苦於睡不著覺,身心疲憊,你幹嗎還讓我不睡覺?但它是解決失眠最好的辦法,這種辦法對 夜貓子 型的失眠症不適用,因為他本來還沒到睡覺的時間嘛!不睡覺 就是告訴自己不瞌睡就不能睡覺。具體的做法是 1.在想睡覺的時候才 2.在 1...