逆編譯器(Binary Ninja) v1.3.2015免費(fèi)版

2022-07-12發(fā)布者:lisi大?。?/span> 下載:0

文件大小:

軟件介紹

Binary Ninja提供了許多的方式來(lái)修改二進(jìn)制文件,大致可以分為低級(jí)和高級(jí)模式兩種, 其中低級(jí)模式主要就是原始碼的十六進(jìn)制編輯和匯編模式, 高級(jí)模式可以使用內(nèi)置的C編譯器直接書(shū)寫(xiě)C代碼來(lái)進(jìn)行操作。有需要的小伙伴歡迎來(lái)下載體驗(yàn)。

image.png

軟件概述:
我們經(jīng)常會(huì)收到這樣的問(wèn)題,比如:
Binary Ninja比xx軟件好在哪里呢?
Binary Ninja這個(gè)軟件最主要的作用是什么呢?
對(duì)于上面的兩個(gè)問(wèn)題,簡(jiǎn)要的回答起來(lái)是這樣的:
Binary Ninja相對(duì)于其他類(lèi)似軟件來(lái)說(shuō), 能夠更快、更便捷的修改二進(jìn)制文件
Binary Ninja最主要的作用是提供了一個(gè)可供操作二進(jìn)制文件的平臺(tái),你甚至還可以在平臺(tái)的基礎(chǔ)上基于API來(lái)編寫(xiě)更方便的腳本和插件
那么我們?yōu)槭裁匆薷默F(xiàn)有的二進(jìn)制文件呢?總結(jié)起來(lái)大致有一下幾種情況:
無(wú)需長(zhǎng)時(shí)間的等待編譯完畢,可以快速的測(cè)試修改結(jié)果
對(duì)程序進(jìn)行黑盒評(píng)測(cè)
維護(hù)或者升級(jí)老程序(一般是沒(méi)有源碼對(duì)情況)
通過(guò)修改二進(jìn)制文件學(xué)習(xí)現(xiàn)有的一個(gè)軟件系統(tǒng)或者修復(fù)軟件問(wèn)題
修復(fù)第三方庫(kù)的安全問(wèn)題
反混淆
軟件特征:
HEX編輯模式
是最直觀的修改方式,也是最簡(jiǎn)易的一種修改方式。如上圖所示,可以通過(guò)右下角的菜單按鈕或者熱鍵H打開(kāi)(^ + H),這里要注意一下,這里介紹的熱鍵如果沒(méi)有效果,可以去參考 用戶(hù)文檔.
這種編輯模式下,可以一邊修改,一邊實(shí)時(shí)的看修改結(jié)果,從而到達(dá)比較高的修改測(cè)試效率,一次修改過(guò)程大致的操作步驟如下:
先在圖形視圖或者線(xiàn)性匯編試圖中找一個(gè)準(zhǔn)備修改的函數(shù)
使用菜單 view -> Split進(jìn)行一次屏幕視圖拆分
現(xiàn)在可以隨意調(diào)整拆分的視圖,看著舒服就行,把其中一個(gè)視圖切換到hex編輯模式,并修改一下上面選定的函數(shù)。你這邊修改,另一個(gè)視圖中就會(huì)看到同步的修改結(jié)果展示,一般情況下,如果修改一個(gè)比較大的函數(shù)的時(shí)候,操作反應(yīng)可能會(huì)慢一點(diǎn)。編輯器也支持大塊的復(fù)制粘貼操作。
結(jié)構(gòu)體實(shí)時(shí)修改
這個(gè)實(shí)時(shí)預(yù)覽功能說(shuō)起來(lái)比反匯編字節(jié)碼有用多了, 這里給出一個(gè)實(shí)時(shí)修改結(jié)構(gòu)體并查看結(jié)構(gòu)體解碼結(jié)果的的演示視頻:
這里本來(lái)是一段演示視頻,但是是youtube的視頻源,沒(méi)有辦法觀看,請(qǐng)?jiān)谠逆溄又蟹瓑τ^看(sorry),視頻地址是:http://www.youtube.com/embed/sCKiG_xdNSc
點(diǎn)兩下鼠標(biāo)就搞定
上面介紹的方法,需要你對(duì)二進(jìn)制的內(nèi)容甚至是系統(tǒng)架構(gòu)有所了解,對(duì)于大多人來(lái)說(shuō)可能還有點(diǎn)困難,但是在Binary Ninja這個(gè)平臺(tái)上,你甚至不必了解那么多的知識(shí)也可以通過(guò)平臺(tái)來(lái)完成二進(jìn)制文件的修改工作。比如,專(zhuān)有的 右鍵修改菜單,有了這個(gè)菜單的幫助,你只需要點(diǎn)兩下鼠標(biāo)就可以了
這個(gè)彈出菜單里面有不少專(zhuān)門(mén)用來(lái)修改條件分支跳轉(zhuǎn)的功能,通過(guò)這些選項(xiàng)你可以強(qiáng)制性的把一個(gè)條件分支改成 永遠(yuǎn)跳轉(zhuǎn)或者永不跳轉(zhuǎn)。使用 Invert Brach功能,可以進(jìn)行條件反轉(zhuǎn),這些功能使用起來(lái)很簡(jiǎn)單命令,但是確實(shí)能很方便快速的實(shí)現(xiàn)你想要的結(jié)果。
還有其他的一些有用的功能,比如把一些匯編指令給Nop掉,也就是說(shuō),你選中一條指令,然后用這個(gè)功能來(lái)進(jìn)行Nop指令替換,這里系統(tǒng)還會(huì)自動(dòng)的進(jìn)行剩余空間填充,比如原先的指令占4個(gè)直接,你直接把這條指令給Nop調(diào)用,那么剩下的3個(gè)字節(jié)系統(tǒng)會(huì)自動(dòng)的給你也填充成Nop指令,這個(gè)功能對(duì)于那種變長(zhǎng)指令系統(tǒng)還是很實(shí)用的。
這里需要注意的一點(diǎn)是, 如果你把鼠標(biāo)放到一個(gè)條件分支上,這個(gè)時(shí)候菜單里面可能沒(méi)有 Convert to NOP這個(gè)選項(xiàng),因?yàn)楹?as Never功能是一樣的,軟件顯示一個(gè)就夠了。
單行編輯
在Patch這個(gè)菜單中,還有一些隱藏的菜單項(xiàng),比如單行編輯功能。使用單行編輯功能,你可以快速的以匯編形式修改單行指令。選擇一條需要修改的指令,按快捷鍵e或者使用右鍵菜單Patch/Edit current line選項(xiàng),然后就可以看到選中那條匯編指令就變成了可編輯狀態(tài),編輯完成之后按回車(chē)即可,Binary Ninja會(huì)自動(dòng)把修改結(jié)果應(yīng)用到二進(jìn)制文件中去。
如果編輯匯編的時(shí)候,新指令比原先的指令長(zhǎng)度小的話(huà),工具會(huì)自動(dòng)填充余下的空間為NOP指令,比如在 x86 x64這些變長(zhǎng)指令系統(tǒng)上。
附加說(shuō)明:工具會(huì)盡最大努力保證匯編和反匯編的正確性, 如果遇到指令錯(cuò)誤或者不支持的指令,可以聯(lián)系我們,把這些特殊的情況跟我們溝通一下

發(fā)表評(píng)論(共0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開(kāi)發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。

3 若有關(guān)在線(xiàn)投稿、無(wú)法下載等問(wèn)題,請(qǐng)與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說(shuō)明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部