基于 ida 的反汇编转换 Obj 的可行性 笔记(2)
生活随笔
收集整理的這篇文章主要介紹了
基于 ida 的反汇编转换 Obj 的可行性 笔记(2)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前面一章講述了一個(gè)簡(jiǎn)單的?exe?智能反匯編引擎推導(dǎo)實(shí)現(xiàn)方法,但是實(shí)際操作要比上文要困難的多,
其中涉及很多煩瑣的細(xì)節(jié),?這里不進(jìn)行進(jìn)一步的討論。
現(xiàn)在公認(rèn)靜態(tài)分析比較強(qiáng)的工具是?ida,?它有的智能反匯編和靈活的人工參與方式都是同類(lèi)軟件沒(méi)法相比的。
這里討論就是利用其強(qiáng)大的反匯編引擎,做一個(gè)把?ida?的匯編結(jié)果直接輸出為可利用性極高的?obj?文件,
減輕逆向成本(ida?的插件機(jī)制和很豐富的接口提供實(shí)現(xiàn)的可能)。
通常逆向代碼的過(guò)程,首要找到感興趣關(guān)鍵代碼段,然后摸清其具體的意圖(大多這個(gè)時(shí)候是不知道或不用知道其實(shí)現(xiàn)方法,
只要明白其最終的實(shí)現(xiàn)目的即可),然后一行一行的稍加修改引到自己的代碼中(這個(gè)過(guò)程主要是匯編碼),?更加有難度就是
將其還原為高級(jí)語(yǔ)言,?在把其引入自己代碼中的時(shí)候,這個(gè)過(guò)程需要發(fā)很多時(shí)間進(jìn)行修改和調(diào)試,此時(shí)也是了解其?Why?時(shí)候。
我先說(shuō)一下,這個(gè)工具的主要就是免掉上面所述的第二步,只要結(jié)合?ida,?如果有必要,為你想要的函數(shù)或過(guò)程和全局?jǐn)?shù)據(jù)
起個(gè)起意義的符號(hào)名即可。工具將根據(jù)?ida?提供的?name?list?和?xref?list,?來(lái)拆解所有你想要的“符號(hào)”(下面所說(shuō)的符號(hào),
即是函數(shù)也是數(shù)據(jù),這也是連接器要使用的唯一概念)的關(guān)聯(lián)關(guān)系。
按照?coff?obj?文件格式,把符號(hào)按其屬性歸類(lèi),并且每個(gè)分配唯一的索引。
先把符號(hào)定義寫(xiě)到所屬的節(jié)中,按照?ida?提供的引用關(guān)系,把每個(gè)符號(hào)的引用項(xiàng)清零(這里你可能聽(tīng)不太懂,有空想個(gè)更好的表達(dá)),
將其引用的符號(hào)的索引寫(xiě)到節(jié)的符號(hào)引用表中,最后把所有的符號(hào)名和其索引,所在節(jié)的索引,符號(hào)類(lèi)型(extern?or?static?..)
寫(xiě)到全局符號(hào)定義表中(詳細(xì)?coff?細(xì)節(jié)可以參看?slinker,?obj2asm)
關(guān)于?obj?的使用,不用我在說(shuō)了(可以直接鏈接,或用?lib.exe?轉(zhuǎn)換為?lib?文件,這樣別人的代碼就和你骨肉不分了)。
突然想到一點(diǎn),對(duì)有符號(hào)文件的可執(zhí)行文件(比如?ms,?因?yàn)槠浞?hào)名很有意義哦),那么轉(zhuǎn)換出的?obj?可利用性將更高呵呵。
表達(dá)能力有限,xx?理論的東西就是這些下面將進(jìn)行具體編碼操作了。
希望出來(lái)后,有一點(diǎn)作用?-_-!!。
其中涉及很多煩瑣的細(xì)節(jié),?這里不進(jìn)行進(jìn)一步的討論。
現(xiàn)在公認(rèn)靜態(tài)分析比較強(qiáng)的工具是?ida,?它有的智能反匯編和靈活的人工參與方式都是同類(lèi)軟件沒(méi)法相比的。
這里討論就是利用其強(qiáng)大的反匯編引擎,做一個(gè)把?ida?的匯編結(jié)果直接輸出為可利用性極高的?obj?文件,
減輕逆向成本(ida?的插件機(jī)制和很豐富的接口提供實(shí)現(xiàn)的可能)。
通常逆向代碼的過(guò)程,首要找到感興趣關(guān)鍵代碼段,然后摸清其具體的意圖(大多這個(gè)時(shí)候是不知道或不用知道其實(shí)現(xiàn)方法,
只要明白其最終的實(shí)現(xiàn)目的即可),然后一行一行的稍加修改引到自己的代碼中(這個(gè)過(guò)程主要是匯編碼),?更加有難度就是
將其還原為高級(jí)語(yǔ)言,?在把其引入自己代碼中的時(shí)候,這個(gè)過(guò)程需要發(fā)很多時(shí)間進(jìn)行修改和調(diào)試,此時(shí)也是了解其?Why?時(shí)候。
我先說(shuō)一下,這個(gè)工具的主要就是免掉上面所述的第二步,只要結(jié)合?ida,?如果有必要,為你想要的函數(shù)或過(guò)程和全局?jǐn)?shù)據(jù)
起個(gè)起意義的符號(hào)名即可。工具將根據(jù)?ida?提供的?name?list?和?xref?list,?來(lái)拆解所有你想要的“符號(hào)”(下面所說(shuō)的符號(hào),
即是函數(shù)也是數(shù)據(jù),這也是連接器要使用的唯一概念)的關(guān)聯(lián)關(guān)系。
按照?coff?obj?文件格式,把符號(hào)按其屬性歸類(lèi),并且每個(gè)分配唯一的索引。
先把符號(hào)定義寫(xiě)到所屬的節(jié)中,按照?ida?提供的引用關(guān)系,把每個(gè)符號(hào)的引用項(xiàng)清零(這里你可能聽(tīng)不太懂,有空想個(gè)更好的表達(dá)),
將其引用的符號(hào)的索引寫(xiě)到節(jié)的符號(hào)引用表中,最后把所有的符號(hào)名和其索引,所在節(jié)的索引,符號(hào)類(lèi)型(extern?or?static?..)
寫(xiě)到全局符號(hào)定義表中(詳細(xì)?coff?細(xì)節(jié)可以參看?slinker,?obj2asm)
關(guān)于?obj?的使用,不用我在說(shuō)了(可以直接鏈接,或用?lib.exe?轉(zhuǎn)換為?lib?文件,這樣別人的代碼就和你骨肉不分了)。
突然想到一點(diǎn),對(duì)有符號(hào)文件的可執(zhí)行文件(比如?ms,?因?yàn)槠浞?hào)名很有意義哦),那么轉(zhuǎn)換出的?obj?可利用性將更高呵呵。
表達(dá)能力有限,xx?理論的東西就是這些下面將進(jìn)行具體編碼操作了。
希望出來(lái)后,有一點(diǎn)作用?-_-!!。
總結(jié)
以上是生活随笔為你收集整理的基于 ida 的反汇编转换 Obj 的可行性 笔记(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于 ida 的反汇编转换 Obj 的可
- 下一篇: IDA Pro逆向实战之Crackme(