做逆向工程該學x86彙編還是arm彙編,還是都要學?

時間 2021-05-30 00:02:48

1樓:鯊魚辣椒

主要看你做什麼逆向,pc端還是移動端

pc端主要是x86彙編

移動端主要是arm彙編

兩者之間用途不一樣也不會說誰好誰壞

如果兩種都會也是乙個加分項。

2樓:

我猜題主問題的真正意思是學pc平台的逆向,還是手機平台逆向吧?

假設題主是這個意思,但其實我覺得逆向技術本身不等於平台,或者語言。或者說,平台,語言只是逆向技術的基礎知識之一。

其實學習逆向技術,首先要看你的目標,是以逆向技術為興趣,開發輔助,還是專職逆向,不同目標導向不同的學習路徑哈。

雖然有不同的學習路徑,但是組合語言知識,作業系統(底層)知識,編譯器知識,應用開發知識這四部分都需要有基本的掌握。這四塊中,對於不同平台,除了應用開發知識不相同,其他三塊,基本相通,熟悉乙個平台其他平台學起來很容易。

不過回到初學階段,不同的組合語言的選擇導致後面的平台選擇。具體我建議從x86開始,工具多,材料多,實踐物件多。尤其通過除錯學習,od加ida可以非常直觀的學習。

3樓:冰琥珀

多逛看雪論壇,上面的很多教程還是可以看的,然後關注下《加密與解密》,這本書第四版快出來了。至於彙編,了解一些基本概念和常見的指令就行,剩下的就是熟能生巧了

4樓:2019

看到有人推薦王爽的組合語言。。。我這裡實名反對下。。。那本書完全過時了,16位實模式現在基本沒人用了,直接就上各種段暫存器通過乘個16再獲取線性位址這種東西很容易讓人抓錯重點,如果要學彙編建議直接先從32位平坦保護模式學起,可以直接看《深入理解計算機系統》這本書。

等先把平坦模式學好了如果再對段暫存器啥的有興趣可以看看《x86從實模式到保護模式》。

至於學哪個,一般都是先學x86,學會了其他的都比較好學,畢竟很多相通點。比如我當時學ARM,因為有x86的基礎,2-3天就看完了。。。

5樓:

先從x86學起,完全理解之後,x64,mips,arm兩種,都是大同小異,很容易就能學會。

我覺得可以先從那本著名的王爽《組合語言》開始。

做逆向的話也不需要用匯編寫程式,在我看來更關鍵的是對系統的理解,所以你也應該看一下計算機原理、作業系統相關的書。比如二進位制程式在作業系統中如何載入和鏈結,理解這個對逆向非常重要。

一定要讀一下《程式設計師的自我修養》。

另外最近出了一本《Linux二進位制分析》,最近才有人譯出來的書,對Linux環境下的逆向非常有幫助。

Windows下的逆向可以用一本南韓人寫的書《逆向工程核心原理》進行入門,非常基礎。

有了一定基礎之後再去看著名的開源電子書Reverse Engineering for Beginners,安天有出翻譯版本,叫做《逆向工程權威指南》。這本我覺得還是有一點基礎再看,介紹各種架構都很全。

然後就是我覺得逆向的關鍵還是經驗積累,彙編這東西真的是你看多了自然就熟悉了,去找一些crackme或者CTF題來自己研究研究,慢慢就找著套路了。

6樓:龐孜

這麼說吧

掌握不同指令集的指令是點

分析資料結構,還原演算法邏輯是線

理解架構設計,完整還原是面

逆向工程很多時候都是在「線」上做文章,有很多經驗和發散思維的要求,至於「點」的學習,學精一門,互相套著學就ok了。

軟體逆向工程目前的研究方向

lslx 全系統模擬,二進位制切片,分靜態切片,動態切片,汙點分析,符號執行。加上ai,這是最前沿。cbc挑戰賽上已然實現,並完爆人類選手。逆向工程師在不久的將來將毫無用處。他們用的機器記憶體高達128T,幾千個cpu,細節請自己google rainoftime 牆裂同意上面鮑由之同學的回答.不談...

做軟體逆向有前途嗎?

有前途,沒錢途 因為很難學的 很多人以為搞逆向,只是為了做遊戲輔助 逆向程式什麼的,這是大錯特錯。要學逆向,先學正向,逆向學的好的人,正向一定有很深厚的功底,他們學什麼都快,更對系統底層了解很深,還可以寫驅動,搞嵌入式,不會寫哪個軟體,還可以通過逆向的思想去分析程式。就算在不濟,搞灰產外行人只想到違...

安全行業的逆向工程有多難?

LeeMaster 我以為寫CXX的時候,又要當編譯器又要當核心去思考設計,還是會搞出來memory leak,這個已經夠難的時候,reverse engineering 告訴我,那些都是小弟 鯊魚辣椒 現在的安全行業,可是熱門行業 國家 公司 個人很注重網路安全 如果網路安全不受重視,在這網際網路...