www在线观看视频免费-www在线观看免费视频-www永久免费视频-www一区二区-自愉自愉自产国产91-自偷自偷自亚洲首页精品

CTF學習——加密與解密基礎

2019-04-19 16:10:20   來源:網站建設微信APP開發

新聞摘要:由于Win32程序內存尋址使用的是相對簡單的平坦尋址模式,并且Win32程序大量調用系統提供的API,而Win32平臺上的調試器如SoftICE等恰好有針對API設置斷點的強大功能,因而這些特點都給動態跟蹤破解帶來極大的方便。

由于Win32程序內存尋址使用的是相對簡單的平坦尋址模式,并且Win32程序大量調用系統提供的API,而Win32平臺上的調試器如SoftICE等恰好有針對API設置斷點的強大功能,因而這些特點都給動態跟蹤破解帶來極大的方便。

因為程序的作者用的是高級語言,Windows又是提倡“透明 ”,不希望程序員知道底層的操作 , 而只提供給他們高層的接口, 而相當多的高級函數調用某個一定的底層函數,所以解密者經常在底層函數上下斷點。所以在Windows中,只要Windows的函數被使用,想對任何尋找蛛絲馬跡的人隱藏什么東西是比較困難的。
為什么要對軟件進行動態分析呢?這主要是因為:
1、許多軟件在整體上完成的功能,一般要分解成若干模塊來完成,而且后一模塊在執行時,往往需要使用其前一模塊處理的結果,這一結果我們把它叫中間結果。如果我們只對軟件本身進行靜態地分析,一般是很難分析出這些中間結果的。而只有通過跟蹤執行前一模塊,才能看到這些結果。另外,在程序的運行過程中,往往會在某一地方出現許多分支和轉移,不同的分支和轉移往往需要不同的條件,而這些條件一般是由運行該分支之前的程序來產生的。如果想知道程序運行到該分支的地方時,到底走向哪一分支,不進行動態地跟蹤和分析是不得而知的。
2、有許多軟件在運行時,其最初執行的一段程序往往需要對該軟件的后面各個模塊進行一些初始始化工作,而沒有依賴系統的重定位。
3、有許多加密程序為了阻止非法跟蹤和閱讀,對執行代碼的大部分內容進行了加密變換,而只有很短的一段程序是明文。加密程序運行時,采用了逐塊解密,逐塊執行和方法,首先運行最初的一段明文程序,該程序在運行過程中,不僅要完成阻止跟蹤的任務,而且還要負責對下一塊密碼進行解密。顯然僅對該軟件的密碼部分進行反匯編,不對該軟件動態跟蹤分析,是根本不可能進行解密的。

逆向工程
對于(網絡)黑客來說,“hack”是褒義詞,“crack”則是貶義詞,后者指那些尋找網絡漏洞并進行惡意攻擊的行為。
對于(軟件)黑客來說,“crack”只是個中性詞,泛指對程序修改的行為,更喜歡稱自己為“逆向工程”學者。
























逆向工程(Reverse Engineering)定義為:"the process of analyzing a subject system to identify the system's components and their interrelationships and create representations of the system in another form or at a higher level of abstraction." (Source: Chikofsky and Cross)





























 





























如果認為:





























“源代碼 → 編譯器 → 可執行程序”的過程是“順向工程”的話;





























“可執行程序 → 反編譯器或人工反編譯 → 源代碼”的過程就是逆向工程。










將逆向工程包括的內容可以分為3類:

 

1.軟件使用限制的去除,或軟件功能的添加
(1) 按照計算機類別,可以分為個人微型計算機、小型機、中型機、大型機等;
(2) 按照操作平臺或處理器類型,可以分為windows、MAC、UNIX,x86,risc等
(3) 按照限制類型,可以分為軟件使用時間限制,軟件功能模塊限制、軟件運行條件限制(軟件狗等)、軟件注冊限制等
(4) 可以是軟件功能限制的去除,也可以是軟件功能的添加。

 

2.軟件源代碼的再獲得或二進制代碼水平的Debug
(1) 按照計算機類別,可以分為個人微型計算機、小型機、中型機、大型機等;
(2) 按照操作平臺,可以分為windows、MAC、UNIX等
(3) 按照軟件層次,可以分為普通應用層軟件與操作系統源等。

 

3.硬件的復制、模擬
由此觀之,一般所謂的“軟件破解”只是逆向工程中非常初級的一小部分。
坦白地講,現在的逆向工程,真實目的就是為了再利用。據此,個人可以學習別人的編程技術及技巧,公司可以窺探別人的商業軟件秘密,或開發與之兼容的軟件;(二進制代碼層面的)Debug自然也是其中重要的目的之一。
據說,著名的殺毒軟件AVP代碼寫的實在太有條理,因此很容易被分析后“再利用”。有心人不僅可以將其病毒特征庫改頭換面后再推出,也可以利用逆向工程得到AVP某些模塊的源代碼,加入自己開發的產品中。

成為一個“逆向工程”大師,應該具有如下特征:
1.永遠保存好奇心,崇尚自由。這能促使探索;也能抵抗商業利欲的侵襲;有了它,枯燥的代碼世界才有了生氣。
2.勤奮與毅力:“讓我們搞清楚作為一名Cracker最需要具備的基本條件,其實那并不是扎實的匯編功底和編程基礎。你可以完全不懂這些,CRACKING的秘訣就是勤奮+執著!記住并能做到這兩點,你一樣可以變得優秀。”
3.精通至少一門編程語言,不僅僅是Coding,更重要的是編程思想。RAD工具也許是容易學的,但你要明白隱藏在它背后的機制。
4.扎實的匯編功底和系統編程的知識。
5.能發現“美麗”。是的,你能在枯燥的二進制代碼中見到美,那是數學和對稱的美麗。卓越的編譯器優化能力,簡潔而又高效的代碼,都能使你領略到她的存在。

【責任編輯:藝之都網站微信APP開發公司】                                                             (Top) 返回頁面頂端

上一篇:建立時間和保持時間的深入理解

下一篇:進程間通信方式--共享內存

最新更新

div

服務熱線

0755-33563420

功能和特性

ZGHYH

獲取內部資料

微信服務號

主站蜘蛛池模板: 国产成人福利精品视频 | 国产成人午夜 | 91精彩视频在线观看 | 高清视频一区二区 | 综合色影院 | 99热福利 | 日本一区二区视频在线观看 | 牛牛热在线视频 | 在线免费色 | 快播黄色| 国产精品特级毛片一区二区三区 | 色视频网站在线观看 | 亚洲成a人 | 一区二区高清视频 | 99福利在线| 亚洲欧美成人永久第一网站 | 中文字幕激情视频 | 一本色道久久综合亚洲精品高清 | 伊人色综合网 | 久久私人影院 | 亚洲欧洲国产成人精品 | 高清国产一区 | 色爱区综合激月婷婷激情五月 | 欧美亚洲国产精品久久 | 久久夜色国产精品噜噜 | 欧美在线看欧美高清视频免费 | 9299yy看片淫黄大片在线 | 欧美人禽猛交狂配免费看 | 久久久久久久影院 | 久久国产一级毛片一区二区 | 欧美黑人巨大 | 999精品视频 | 精品久久久久久亚洲精品 | 成人永久免费视频 | 欧洲美女高清一级毛片 | 综合色视频 | 欧美日韩国产亚洲综合不卡 | 国产精品欧美亚洲韩国日本 | 精品91 | 成年美女黄网站色大片图片 | 直接观看黄网站免费视频 |