六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

逆向區(qū)分技術(shù)總結(jié)

[摘要]好久沒寫過文檔了, 今天把之前的關(guān)于逆向分析的一些心得總結(jié)一下, 反正閑著也是閑著(本文不包含什么新的技術(shù), 只是將來源于各方的知識加上自己的心得進行總結(jié)而已, 高手就不用看了)。 我認為...

好久沒寫過文檔了, 今天把之前的關(guān)于逆向分析的一些心得總結(jié)一下, 反正閑著也是閑著(本文不包含什么新的技術(shù), 只是將來源于各方的知識加上自己的心得進行總結(jié)而已, 高手就不用看了)。

  我認為軟件安全攻防其本質(zhì)是分析與抗分析之間的斗爭。 因為無論安全技術(shù)做的多么先進, 一旦其代碼意圖被分析者掌握, 就不在有安全性可言。 想要更快速的分析程序不但要了解各種各樣的軟件保護措施, 還需要更加清晰的認識逆向分析技術(shù)。 下面簡單的談?wù)勎覍δ嫦蚬こ痰囊恍┬牡谩?

  我認為逆向分析從總體上主要可以分為代碼結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、運算三點, 以下進行詳細說明(限于篇幅, 下面只是大綱模式, 具體內(nèi)容相信網(wǎng)上都可以查到)。

  注:對于Debug版本和Release版本程序的處理思路上是一致的, 因此下面沒有特別區(qū)分。 但實現(xiàn)方式卻有很大區(qū)別, 很多Release版本代碼處理方式我還在摸索中, 因此就不寫了。

一.  代碼結(jié)構(gòu)。

  代碼結(jié)構(gòu)決定了程序的執(zhí)行過程以及數(shù)據(jù)走向。 首先理解程序的代碼結(jié)構(gòu), 可以把整個程序的框架給勾勒出來。 接下來進行各個部分的點綴。 可以有效提高逆向速度。 代碼結(jié)構(gòu)分析總的分為以下幾點:

1.  比較操作。

  A.  有符號數(shù)比較。

  B.  無符號數(shù)比較。

  C.  條件碼(各種條件碼的組合判斷我記不住, 可以列成表格以便查詢。 平時用上的不多, 除非要精確還原代碼)。

2.  條件分支。

  A.  單分支條件(if)。

  B.  雙分支條件(if-else)。

  C.  Switch條件。

  D.  組合條件。

  E.  純算術(shù)實現(xiàn)邏輯分支(運算后條件碼的判斷, 具體可參看加密解密第三版)。

  F.  條件設(shè)置指令(SETcc)。

  G.  條件傳輸指令(CMOVcc)。

3.  循環(huán)。

  A.  先執(zhí)行循環(huán)(do-while)。

  B.  后執(zhí)行循環(huán)(for/while)。

  C.  循環(huán)控制及break/continue。

4.  函數(shù)。

  A.  函數(shù)調(diào)用及功能的快速識別。

  B.  調(diào)用約定。

  C.  參數(shù)傳遞方式。

  D.  堆棧平衡。

  E.  函數(shù)導(dǎo)出及導(dǎo)入。

5.  代碼優(yōu)化。

  A.  代碼速度優(yōu)化。

  B.  代碼大小優(yōu)化。

二.  數(shù)據(jù)結(jié)構(gòu)。

  當識別了代碼結(jié)構(gòu)并勾勒出整個代碼框架之后, 接著要做的就是識別程序中的各種數(shù)據(jù)結(jié)構(gòu)。 比如程序是一棵大樹, 現(xiàn)在已經(jīng)有了枝干, 我們要做的就是添加樹葉。 數(shù)據(jù)結(jié)構(gòu)的分析我主要分為以下幾點。

1.  堆棧(Debug版與Release版的堆棧使用有很大區(qū)別)。

2.  全局變量。

3.  局部變量。

  A.  堆棧中的局部變量識別。

  B.  寄存器變量。

4.  變量的導(dǎo)入導(dǎo)出。

5.  常量。

6.  數(shù)組。

  A.  簡單數(shù)組。

  B.  多維數(shù)組。

7.  結(jié)構(gòu)體與聯(lián)合體。

8.  鏈表。

  A.  單向鏈表。

  B.  雙向鏈表。

  C.  循環(huán)鏈表。

  D.  二叉樹。

  E.  圖等高級鏈表我沒逆向過。 寫在這里只是說明一下思路。

9.  類。

  Release版程序的類的還原我目前還不是很熟悉。 對于Release版沒被使用過的類成員的分析還在摸索中。

  A.  成員變量。

  B.  普通成員函數(shù)(容易與編譯器默認的構(gòu)造函數(shù)混淆)。

  C.  虛函數(shù)表及繼承派生。

  D.  通過構(gòu)造函數(shù)識別類與類的關(guān)系。

  E.  析構(gòu)函數(shù)。

  F.  類的作用域。

三.  運算。

  當數(shù)據(jù)結(jié)構(gòu)識別完畢后, 程序大樹的樹枝和樹葉都有了, 不過這棵樹依然不是活的。 而運算就像是血液一樣將數(shù)據(jù)結(jié)構(gòu)和代碼結(jié)構(gòu)緊緊的聯(lián)合在一起。 當運算處理完畢后, 這個樹才是個活生生的樹, 可以完成各項生命活動。 運算分析我主要分為以下幾點。

1.  邏輯運算。

2.  數(shù)據(jù)類型轉(zhuǎn)換。

  A.  零擴展。

  B.  符號擴展。

3.  浮點運算。

  A.  數(shù)據(jù)格式。

  B.  FPU寄存器。

  C.  浮點操作。

4.  整數(shù)運算。

  A.  加法減法。

  B.  乘法除法。

  C.  模運算。

  D.  16、32位運算。

  E.  大數(shù)運算。

5.  標志位。

  A.  溢出標志位(CF/OF)。

  B.  零標志位(ZF)。

  C.  符號標志位(SF)。

  D.  奇偶標志位(PF)。

6.  運算的代碼優(yōu)化及識別。

  當然, 真正的代碼逆向分析絕對不會是按照以上的順序死板的進行, 而是靈活運用。 以上所述純粹是基礎(chǔ)。 當這些都掌握了之后, 代碼的逆向速度會明顯的提高。 這些知識整理在大腦中就像書的目錄一樣可以快速定位到所需要的部分(每個人的思維方式都不一樣, 別人怎樣思維更快速我不知道)。

  以上的框架也是我自己的一個學(xué)習(xí)過程。 看上去和程序設(shè)計差不多, 我學(xué)習(xí)的時候是通過C、C++程序的各種處理方式反過來一點一點的學(xué)習(xí)。 學(xué)習(xí)一遍之后心里自然有了個簡單的框架, 我認為逆向分析作為基礎(chǔ), 如果能夠熟練掌握可以加快其他方面的學(xué)習(xí)進度, 比如:漏洞分析、外殼分析等。 磨刀不誤砍柴時嘛。 本文旨在拋磚引玉, 希望有高手能夠提供一些關(guān)于Release版的類的還原心得給我, 呵呵。


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。




主站蜘蛛池模板: 在线视频中文字幕 | 四虎影视在永久在线观看 2019 | 青草国产视频 | 亚洲 欧美 中文 日韩欧美 | 亚洲精品在线观看91 | 啪啪自拍 | 日韩一级在线播放免费观看 | 日本免费一区二区在线观看 | 伊人看片| 亚洲视频中文字幕在线观看 | 色迷迷网免费站视频在线观看 | 小小小小视频高清日本 | 色亚洲天堂 | 青娱乐青青 | 天天干天天拍天天射天天添天天爱 | 亚州一级毛片 | 日本99视频 | 亚洲免费黄色网址 | 又粗又黄又猛又爽大片app | 综合久久久久综合体桃花网 | 亚洲18av| 亚洲18av| 亚洲第一页国产 | 亚洲精品一线二线三线 | 色婷婷亚洲十月十月色天 | 亚洲天堂热 | 侵犯希崎中文字幕在线 | 色综合久久久久久久 | 天天操天天干天天玩 | 色黄网站青青草原免费 | 日本一区二区三区在线 视频观看免费 | 日韩亚洲欧美综合一区二区三区 | 午夜1000集 | 性生活视频欧美 | 亚洲国产成人va在线观看网址 | 日本五级床片全部硬硬 | 色吊丝最新永久免费观看网站 | 在线亚洲精品国产成人二区 | 青草视频在线免费观看 | 青青青青手机在线视频观看国产 | 日本韩国理论片大全在线 |