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

明輝手游網(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í)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。




主站蜘蛛池模板: 日韩精品一区二区三区大桥未久 | 中文字幕日韩一区二区不卡 | 天天看天天碰 | 污视频在线免费观看 | 日本在线免费看 | 速度与激情9全集免费观看 速度与激情9免费完整版高清 | 亚洲综合色网 | 三级福利片 | 亚色在线播放 | 亚洲成人黄色片 | 天天躁夜夜躁狠狠躁2018a | 色综合色综合色综合色综合网 | 天堂在线视频 | 日本三级带日本三级带黄国产 | 小说区图片区综合久久88 | 亚洲精品视频免费观看 | 午夜性爽快免费视频播放 | 亚洲日本在线观看网址 | 天天干夜夜曰 | 日韩中文字幕一在线 | 中文字幕乱 | 日本一区高清视频 | 日日摸夜夜摸人人嗷嗷叫 | 日韩午夜在线视频不卡片 | 青草影院在线观看 | 天天射综合 | 新男人天堂 | 天天射综合网站 | 日韩毛片免费在线观看 | 日韩中文字幕免费在线观看 | 日韩三级视频在线观看 | 欧美性色黄大片四虎影视 | 日韩国产欧美 | 色涩在线 | 日本欧洲亚洲一区在线观看 | 日韩v片 | 香蕉久久夜色精品国产小说 | 欧美一级在线免费观看 | 欧美一级亚洲一级 | 日韩在线高清视频 | 伊人四虎|