為什麼radare2普及度不及ida,作為開源工具它有什麼值得改進的地方嗎?


兩個月交了100多PR,但感覺累了,不知道是不是要繼續跟進

優點

命令行DSL

參考 ?@? (temporary set sth) ~? (grep)

結合 cmd.hit cmd.bp cmd.prompt 等 hook

注重交互體驗,終端UI

終端跳轉箭頭

visual view(V),原用於hex editor

visual panel view(V!)

graph view(VV),終端下basic blocks的graph drawing

模塊化

io, core, bin, analysis, asm, parse, type, debug, flag, type等模塊的劃分

disassembly listings

這裡也有很多花樣。定製性很強,如用 ~ 提示指令中間有 flag

asm.varsub 控制 SP/BP+-offset 是否顯示為變數

asm.xrefs 是否顯示 cross references

asm.describe 顯示指令描述

asm.emu 用 ESIL 模擬執行顯示寄存器變化、內存讀寫

BDFL merge PR很勤勞(難能可貴)

人氣很高了,5322 stargazers, 1111 forks

學習資源

radareorg/r2con

https://radare.gitbooks.io/radare2book/content/

https://monosource.gitbooks.io/radare2-explorations/

這幾個項目也要看下:

radare/radare2-regressions

radare/radare2-extras

radare/radare2-bindings

The Official Radare Blog · The Official Radare Blog

缺點

C,而且默認-std=gnu90,不願意使用-std=gnu99或-std=gnu11 。-std=gnu90 時無法使用 for (int i = 0

代碼質量很糟,我知道的一個前開發者說現在主要開發者都只考慮加新功能不注意提升代碼質量,"the project could be much better"。也許本來就不應該高估security相關軟體的質量?

到處memory leaks,我之前好不容易修成 aaa 都不leak了,現在似乎 aaaa 也好了

BDFL極其喜歡RList(雙鏈表)和sdb(可持續化的string-&>string hashmap)

很多地方RList linear search,recursive disassembler部分有幾處fcns的瓶頸

我添加了 intrusive augmented top-down red-black tree

試圖引入 interval tree Add fcn_tree to RAnal (interval tree based on augmented red-black tree) and optimize r_anal_get_fcn_in (O(n) -&> O(log n)) by MaskRay · Pull Request #8387 · radare/radare2 還沒人受理……求援助

喜歡用分隔符把幾個不同fields塞在一個value里用sdb

在我的 Add `RVector` (array of void* objects) to r_util by MaskRay · Pull Request #8205 · radare/radare2 之前一直沒有 vector!

代碼中很多處添加單個元素時 realloc(size+1)

縮進風格奇怪,if 無論長短一律寫成

if (a) {

break;

}

喜歡在函數開頭加無用的nullness檢查

喜歡 export 很多不必要的 R_API 函數

最近發生的倒行逆施行為,read/write函數int r_io_read_at等返回值變成bool;left-closed right-close interval -&> closed interval。很多r_io_read_at出buf地址運算的地方都有bug Fix #8189 - refactor search.c by MaskRay · Pull Request #8195 · radare/radare2

r2con剛結束,沒睡著隨便寫點,廣告 https://github.com/MaskRay/r2cLEMENCy

https://maskray.me/blog/2017-09-09-r2con-r2clemency

嗯,支持 DEF CON 25 CTF Finals 的 cLEMENCy (9-bit byte, 27-bit general-purpose registers, middle-endian)

待補


等@小Z同學寫好decompiler再來回答吧


f5是一方面。

還有就是IDA更友好一點,r2操作起來,要記住很多命令,雖然也好記,都是一些單詞的首字母組合起來。

如果要快速確認程序流程,我首先肯定IDA F5一下...

不過話說回來,r2那個web視圖真的帥啊,還帶語音的 酷得很


謝邀

先等圖中的邀請人寫完decompiler再說吧233

--------------------

其中一個比較重要的點是,文檔質量不太好。

本來作為一個純命令行的工具,沒有GUI那麼直觀,能獲得使用方式的路徑除了看源碼就是看文檔了。而r2的文檔即使是在開源項目里也只能算50分,還好有社區的各種cheat sheet,要不還真不太容易上手。。。


F5 真的太重要了。。


我覺得用來和radare做對比的應該是angr..

而不是ida..


你以為我是搞逆向?其實我只是想按一下F5而已


缺一個f5


radare這玩意有個屁用


r2需要記住命令,命令多而且複雜,但是對於喜歡命令行操作的還是可以試試的,比較geek,ida,圖形化,可惜不是跨平台的,重要的還是有f5和各個插件比較方便,r2也在學習中,我個人比較喜歡r2


首先,原來樓上那些說 缺f5的小夥子們,我只能說你們不會用ida,或者說根本沒有在複雜場景中使用ida。

其次,radare2在很多方面還是有很多缺陷的,比如調試功能就是坨屎。

最後,它的最要的功能是在於集成呀


沒有 F5 的 IDA 跟 w32asm 有啥區別?


推薦閱讀:

現在優秀信息安全的公司招實習生標準是什麼?
作為個人參與網路活動,如何盡量避免被社會工程和降低風險?
Windows 下最好的文件夾加密軟體有哪些?
如何看待「邊防護邊敲詐,網安專家變黑客」事件?違法所得66個比特幣,判3年,罰5000,判決是否合理?
什麼是 HMAC-MD5?

TAG:逆向工程 | 信息安全 | 二進位 | CTFCaptureTheFlag | IDA |