首頁
社區(qū)
課程
招聘
如何學習解密、破解、逆向技術?
Editor 2021-4-12 5286

對解密、破解、逆向技術非常感興趣,請問如何學習?

收藏
11條回答
kanxue 2021-4-12 2021-4-12編輯

很多人都想學習解密,這東西剛入門時會讓人沉迷進去,可以飯不吃、覺不睡。出現(xiàn)這種現(xiàn)像,也許是解密滿足了人們的獵奇心里吧。但掌握這方面技術,對自身的提高確實有好處。可以通過跟蹤軟件,提高自己的調試技能,并且能了解他人程序思路,使自己寫出更好的程序。研究解密技術有助于掌握一些系統(tǒng)底層知識,系統(tǒng)底層知識是構造起大型軟件的堅實基礎。許多程序發(fā)展,都經歷了這一鍛煉過程的。 而大多數(shù)人可能認為解密是一門高深的學問。造成這種原因是以前這方面的技術資料缺乏,從而將“解密”這一技能“神”化了。初學者一般不知從何下手,由于沒方向,花費了大量時間和精力,走了不少彎路。這里就給對這方面感興趣的讀者指明一個方向。
先了解一下計算機中的程序。高級語言編寫的程序,會編譯成機器語言在CPU中執(zhí)行,如VC等。由于機器語言與匯編語言是一一對應的,因此就可將機器語言轉化成匯編語言,這個過程稱之為反匯編。而匯編語言可能讀性是比較好的,這樣就可分析程序流程,解析其功能了,這個過程就是解密(俗稱破解)。也就是說,解密的基礎是建立在匯編語言級別上的,因此想涉足這一領域的朋友,匯編語言一定得學好。匯編語言是大學計算機的必修課,這方面的書籍品種很多,雖然大多書本是以DOS匯編為講解平臺,但對理解匯編指令功能是沒影響的。
圖片描述

 

等匯編學好了,建議再掌握Win32編程。Win32程序設計就是API方式的Windows編程,學習Windows API將使您更深入地了解Windows工作方式。此類書籍有Charles Petzold著的《Windows程序設計》(以VC來講解)

 

圖片描述

 

有了上面這些基礎,你就可以參考《 加密與解密(第四版) 》、《c++反匯編與逆向分析技術揭秘》等書入門了。
圖片描述

 

圖片描述

 

學習解密其實很累的,需花費大量的時間,而且經常會碰壁,三五天毫無進展是極為平常的事情。這時你可能有點想退卻,其實你不要著急,只要你認真學習,成功就在眼前。沒有人是生來就什么都會的,如果你有問題,就大膽的去問你周圍的人。學解密的秘訣就是勤奮+執(zhí)著!記住并能做到這兩點,你會變得很優(yōu)秀的。
等你解密入門后,建議再看看Matt Pietrek、Jeffrey Ritcher等大師的專著,這些書是每個程序員都應該閱讀的:《windows高級編程指南》,《Windows2000編程技術內幕》,《Win32系統(tǒng)編程―Windows 2000應用程序開發(fā)指南》等。這樣,你就對系統(tǒng)底層有一定的了解了。到了這個水平后,就可朝軟件加密這塊發(fā)展了,例如編寫自己的加殼軟件等。
軟件的加密與解密是一個迷人的研究領域,它幾乎可以與任意一種計算機技術緊密結合――密碼學、程序設計語言、操作系統(tǒng)、數(shù)據(jù)結構。而由于這樣或者那樣的原因,對于這一領域的關注程度一直還處于低溫狀態(tài)。而這兩本書相信會為更多對知識懷有渴望的朋友多開辟一條走向這個領域的道路,并且進而推動這個領域的不斷發(fā)展。

回復 已采納
wx_不負余生^O^: 學了這幾本書該如何去檢驗自己的學習成果?
回復 2022-5-31
mb_kyvygmxz: 誰收徒弟
回復 2022-6-5
橙子加檸檬 2023-6-24

堅持努力 熱愛 實戰(zhàn)都很重要

回復
安工阿奇 2023-6-18

打好基礎很重要

回復
sfy19850407 2023-6-23

有收徒弟,拿shell嗎

回復
呆萌的小白 2021-4-24

誰收徒???我是小菜鳥

回復
下咯 2021-4-29

書籍入門,看帖子學習最新知識,最后實戰(zhàn)

回復
tudousi168 2023-5-30

實戰(zhàn)最重要

回復
wdkxxyzh135 2023-8-30

ida軟件下載哪個版本,請教

回復
Zhevitz 2023-9-28

要學習解密破解的話,個人認為有兩條主線:

  • 算法線:熟悉基本的密碼學概念,以及基本的數(shù)學知識(數(shù)論,線性代數(shù)等),基本的入門算法包括:RC4,TEA,AES,DES(對稱加密),RSA,ECC(非對稱加密),了解完算法的基本概念后,當逆向得到源碼時,分析起來就會很快地想得出對策,對破解幫助還是很大的,如果沒有算法基礎的話,有時候就算調試水平再高,要理解一個從未見過的算法還是會花很長時間。
  • 操作線:在清楚高級程序語言語法的基礎上,了解一些入門的匯編、計算機程序實現(xiàn)的底層原理,學會使用代碼分析工具:靜態(tài)(IDA),動態(tài)(ollydbg,x64dbg,ce等),盡管一開始看到這些琳瑯滿目的工具的時候會感到很迷茫困惑,但是隨著代碼審計量的逐漸增長(硬著頭皮看不懂也要嘗試去分析、推理),相信能力也會逐漸上漲。

在逆向分析的過程中,遇到各種各樣奇奇怪怪的問題,甚至是感到無從下手,我個人感覺都是正常的,學習過程常常是:發(fā)現(xiàn)問題、思考解決辦法->查資料->實現(xiàn)自己的想法。這樣一點一點去積累。逆向很難速成,堅持和積累是必不可少的我認為。

回復
老王醬排骨 2023-10-16

謝謝

回復
黑客KQ. 2024-8-2

去b站找教程,先打基礎,也可以去看書

回復