安全行業的逆向工程有多難?
本人學軟體的,最近在找工作,有一家互聯網公司給了offer,我想去他們家做逆向工程相關的工作,但是自己沒有這方面的經驗。於是對方給了一個選擇,可以利用入職之前的一年時間稍微培訓一下我這方面的東西,但是最後能不能進這個部門就要看培訓的成果如何了。請問一年的時間可以入門到什麼程度?各位大大開始做逆向工程的時候花了多久入門呢?感謝回答~
入門的話,彙編夠強一個月就夠了。
一年的培訓,大概能完成低級反逆向對抗吧,高階一些的對抗手段需要經驗的。《C++反彙編與逆向分析技術揭秘》。買本老錢的書看,能堅持下來就證明你是真的有興趣了。
看不下去那就直接合上擺上書架,貼個標籤,愛過。不要覺得會逆向啊會對抗的人很牛逼神馬的,也只是一份工作而已。(不是黑,不是約架)
都是興趣驅動的東西~~~
利益相關:逆向。二進位安全。
為什麼不邀請我。我還是強答一把吧。
我自己的逆向成果,說一下吧。把SI的註冊碼演算法拉出來;把f的殺毒客戶端換成當時公司的,把它驅動保護給幹掉,把它對二進位文件的完整性校驗過程幹掉。
然後就是在工作解決了幾千個進程崩潰的問題,主要是集中遠古在線版本完全沒有符號信息的只能靠彙編的問題。
相對而言,這一塊弄得不夠深入,主要是被工作拖著,身不由己。非常羨慕你能夠有這樣的機會。唉,工作十年一直想找這樣的機會。
學習曲線:
1.把彙編學會。方法這樣:寫各種小程序,每個集中一點,用彙編來調試,體會函數調用的參數傳遞,返回值傳遞(術語叫調用約定)來熟悉寄存器,體會每個數據結構(基本結構,結構,聯合,無虛函數類,有虛函數類)在彙編的特徵。
2.看一下《黑客反彙編技術揭秘》,《軟體調試》這兩本,看能不能看得懂。
3.嘗試一下破解。先破那些沒加殼的。再試一下加殼(不一定自己解殼,可以在這一步熟悉調試器)
4. 嘗試分析一下病毒,木馬
5. 對比一下每次windows的更新,嘗試寫一下shellcode。這時候最好看一本書&
6. 嘗試自己脫殼。
我現在還在第3,4層級掙扎。逆向最重要是調試,更重要是耐心!!耐心!!!耐心!!!!
我曾經破解SecureCRT的註冊碼。不到20分鐘就找到驗證過程,不到一小時就找出來註冊碼的模式,但那個驗證過程調用了200多個函數,我調試了2個月,最後只能放棄了。
逆向,真的很有魅力,讓我為之沉迷,為此我願付出我的一生。
拿出這覺悟,努力吧。以我的經驗,逆向其實不難,關鍵是編程基礎要好。基礎打的紮實,學逆向其實學起來很快。所以題主完全不需要糾結逆向到底應該怎麼學,等你編程基本功熟練了,隨便看一本逆向的書就可以算入門了。相關書籍別的答主已經推薦了很多了,我再推薦一個《逆向工程核心原理》。其次操作系統的知識一定要有,以Windows為例,類似《Windows核心編程》這樣的書一定要看。
《加密與解密 第三版》《0day安全:軟體漏洞分析技術》《windows內核情景分析》
遇到高強度加密的逆向工程就廢了,這個話題完結,謝謝大家!
x86的話,一年就能逆一下簡單的,難的逆不出來。尤其是帶強殼的
看到很少人推薦這兩本書啊,我覺得作為入門非常合適逆向工程核心原理惡意代碼分析實戰
就怕別人只是想掙你培訓的錢
安卓的話,3個月就可以入門了。後邊就看個人是否對這行感興趣,肯投入了
比較簡單 需要的就是耐心和細心 不過建議最好不要入行 一年的時間做個程序員零基礎也練出來了 以後就業機會 發展空間都要廣的多
推薦閱讀:
※那些年病毒用過的損招——反調試技術
※要脫掉VMP3.1的殼子需要掌握哪些知識?
※閑扯ARM指令集一
※自動化二進位文件分析框架:angr
※那些年病毒用過的損招——攻擊調試器