正如前面提到的,我知道的主要是惡意軟件相關。研究人員爲掃描儀公司工作的主要任務之一是在實驗室或虛擬環境中進行抽樣調試。
沿着這些相同的路線,有很多與安全相關的領域使用反向工程/反彙編。計算機取證是您可能需要研究的領域。沒收的計算機可能包含用於各種活動(命令和控制僵屍網絡,DoS攻擊程序等)的命令和控制程序(但沒有源代碼)。通過逆向工程來保護受保護的數據方案通常要容易得多,而不是找出密碼或密鑰。
DRM /硬件和軟件安全保護是一個很大的逆向工程領域。請注意,這可能是問題(和法律)的「一面」。考慮DVD複製程序,保護刪除,在其他設備上播放iTunes音樂的能力,在Wii上運行自制程序的能力,並行化PS3網格,解鎖iPhone等等。顯然也有很多非法律選項設計一個老虎機定時器,ATM機認證等)。
傳統的程序轉換在許多領域,特別是政府,金融,製造業等方面都是一個巨大的機會。有一些任務關鍵型程序已經在古代主機或小型計算機上運行了30年,沒有人擁有源代碼。團隊必須對程序進行逆向工程,將其轉換爲更新的程序。
有關學習Win32教程的其他建議非常棒。另外,可悲的是,一些最好的出版作品將會破解(遊戲)。搜索一下,那裏有幾個教程顯示基礎知識。我使用了Peter Szor的一本書「計算機病毒研究和防禦的藝術」,但是它更多地關注惡意軟件的想法,而不是確切的反彙編部分。
根據你選擇哪條路線,你需要在其他方面有背景知識,但是知道裝配將成爲你最關鍵的技能。不僅僅是從「我明白代碼的主要作用」的角度來看,您應該能夠從頭開始編寫代碼,並且準確理解給定位代碼的作用,並瞭解可以編寫相同代碼的其他方式。彙編(編碼)涉及找出問題的一種解決方案並對其進行編碼。拆解包括找出最初用於解決問題的許多不同解決方案中的哪一個 - 很難;)
+1爲說明你可以進入各個領域。我開始學習脫保護,因爲當時惡意軟件是一個未知的概念。嘗試通過ASM代碼增強記事本或計算器,這是一種開始學習感受代碼的好方法:) – anonymous 2010-05-08 02:36:30