逆向分析入門

2021-07-22 18:47:18 字數 2098 閱讀 4120

軟體病毒行為特徵的分析,通過分析病毒的特徵資訊,更好地進行反病毒軟體的編寫。

閉源軟體內部演算法的理解分析,進行軟體行為的模擬,優秀演算法設計思路學習和借鑑。

各類軟體的破解,去除各類軟體的限制(屌絲能用各種高大上的商業軟體)。

解密軟體加密演算法,解密各類加密檔案。

分析其遊戲軟體的演算法設計,進行各類遊戲外掛程式的設計。

在沒有原始碼的情況下,對現有軟體進行直接的修改,從而擴充套件其功能,個性化設計。

分析網路資料報格式,模擬傳送網路資料報。

借用網上的一段話:

首先,逆向分析是考驗人耐性的事情,如果你沒有耐性可能很難出結果,往往乙個大點的系統就可能需要幾個月的時間,上年也有可能,所以耐性是第一。

其次,分析過程中往往覺得已經到盡頭,無法再分析下去而退縮,但成功可能離你也許不遠了,你需要沉著冷靜,因為任何東西都是可能被逆向的,原始碼已經被編譯成彙編**後,在彙編**前,**量已經是成幾何量倍增,而且大量的暫存器和指令,往往容易混淆,所以,你需要乙個穩重的性格更好。

再則,需要一些基本知識,彙編是必須要掌握的,其次其他高階語言如:c++、pascal、basic等能掌握更好,至少應該精通一門,往往分析過程中不僅僅是彙編指令,更多的是在跟系統打交道,軟體中會用到各類知識,winapi、com、訊息、多執行緒、記憶體管理、程序等等,對系統的了解更有利於你進行下一步的分析,所以知識全面更加有利於分析。當然,知識需要積累,積累需要過程和毅力,需要時間如果你願意在這個方面發展,那麼你需要堅韌的毅力。逆向分析過程中,乙個重要的東西就是注釋,我們在c++中編寫軟體的時候並不需要寫太多的注釋,因為我們通過函式名或者變數名都能辨別出意義,但是逆向分析中,你看到的是彙編**,基本都是暫存器和指令的集合,那麼注釋就顯得非常非常的重要,一定要多寫注釋,而且有可能注釋會反覆修改,因為你有可能第一次分析一段彙編**後的意義並不正確,分析多次後就會推翻前面下的定義,又會寫入新的意義,不用怕你的注釋會錯誤,就怕你不寫,ida和od都有很好的注釋和書籤的管理功能,這將大大有利於我們的分析。

最後,你需要有乙個open的思想,不要侷限於乙個點,要從大的點入手,最好能模組化這些彙編**,最後把這些模組集合在一起後,就是一套完整的思路了。

人的潛力是無限的,沒有觸發的時候可能你自己都不相信,但所有的一切都需要積累,世上沒有不勞而獲。

首先建議學習幾門語言;

逆向的直接基礎知識,推薦幾本書:

再掌握幾個工具:

各類外掛程式的使用

如果想要在軟體逆向有更多的發展,我認為研究理論是必須的了.首先我認為應該研究的理論是編譯理論.編譯理論是理論與實踐結合的非常緊密的,也很吸引人.之後,自然是研究反編譯理論.這個研究的資料比較少,看雪上有一些,再者自己查**文獻了.

首先我們要知道即使是乙個簡單的win32窗體的hello world, 反彙編出來的**量也是相當驚人的,而我們也沒有必要分析這個程式每乙個語句,我們要把關注點放在值得關注的地方,尤其是分支判斷處,所以分析程式的第一步往往是找到關鍵**。

查詢關鍵**常用的方法是:

接下來對關鍵點**進行分析,這是最令人頭痛的一步了,乍眼看去到處都是mov eax,ecx , lea esi dword ptr ds:[***]什麼的,確實不太直觀,秘訣:

多練

一般軟體破解的流程:拿到乙個軟體先別接著馬上用 ollydbg 除錯,先執行一下,有幫助文件的最好先看一下幫助,熟悉一下軟體的使用方法,再看看註冊的方式。如果是序列號方式可以先輸個假的來試一下,看看有什麼反應,也給我們破解留下一些有用的線索。如果沒有輸入註冊碼的地方,要考慮一下是不是讀取登錄檔或 key 檔案(一般稱 keyfile,就是程式讀取乙個檔案中的內容來判斷是否註冊),這些可以用其它工具來輔助分析。如果這些都不是,原程式只是乙個功能不全的試用版,那要註冊為正式版本就要自己來寫**完善了。

reference

1. 學習反彙編、程式逆向分析等需要掌握哪些知識?

2. 逆向工廠(一):從hello world開始

3. 如何快速讀懂反彙編的彙編**?

4. 程式設計師技術練級攻略

5. 軟體逆向分析應用領域

6. metasploit 裡的shellcode**分析

7. 逆向分析能做什麼或應用範圍、應該怎麼做

逆向工程入門

本問只是為初入逆向工程大坑的新人們指出方向學習,沒有實質性的技術。總的來說,基礎才是最重要的。逆向工程入門應該算是所有學習方向中最難的。但是選擇了這一方向的請不要放棄,一旦學成,必定會是大神級別的存在。那麼,逆向工程的入門需要學習什麼?學習c語言是逆向工程的基礎。如果是學習滲透方向的,也許可以選擇p...

Linux CTF 逆向入門

1.elf格式 我們先來看看 elf 檔案頭,如果想詳細了解,可以檢視elf的man page文件。關於elf更詳細的說明 e shoff 節頭表的檔案偏移量 位元組 如果檔案沒有節頭表,則此成員值為零。sh offset 表示了該section 節 離開檔案頭部位置的距離 2.可執行頭部 exec...

逆向分析底紋

工作需要會被要求還原某個證書底紋,一般解決的思路是到網上找,如果找到了就直接用,如果找不到了相同的就找近似的湊合用,如果連近似的底紋都沒有那我們是不是就沒有辦法了呢?有的,我們可以直接逆向分析出它最基本的單元,然後用photshop的填充功能生成即可。既然用的是逆向分析,那麼我們應該知道正向是怎麼回...