• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            反(調(diào)試/跟蹤/脫殼) 技術(shù)集錦

            轉(zhuǎn)自看雪,最近看到很多游戲加了反調(diào)試技術(shù),從看雪轉(zhuǎn)一片文章給大家分享。
            標 題:又灌水-反(調(diào)試/跟蹤/脫殼) 技術(shù)集錦
            發(fā)信人:kongfoo
            時 間:2004-05-27,14:50
            詳細信息:

            反(調(diào)試/跟蹤/脫殼) 技術(shù)集錦
            kongfoo/2004.4.18-5.27

              具體代碼就不貼了,知道原理就可以寫出代碼。一些是實踐所得,一些是別人的成果,也
            都收集在一起了。解密、加密這個攻防戰(zhàn)好像和傳統(tǒng)作戰(zhàn)的攻防戰(zhàn)不同,防的一方能用的技術(shù)
            遠遠多于攻的一方。

              1)花指令
              很無聊的技巧,但也有一定作用:隱藏指令,干擾分析。

              2)花循環(huán)
              無用循環(huán),讓跟蹤者浪費時間,心煩。

              3)時間比較
              經(jīng)典的反跟蹤技巧,單步跟蹤比連續(xù)執(zhí)行的時間長很多。

              4)父進程檢查
              被調(diào)試器加載后父進程就不是通常的Explorer.exe。

              5)檢查調(diào)試器
              Windows本身就提供一些API可以用來檢查調(diào)試器是否存在。如IsDebuggerPresent/NtQueryInformationProcess。
            另外還有CreateFile/PEB(和IsDebuggerPresent一樣)等方法檢查調(diào)試器。

              6)動態(tài)加/解密代碼
              干擾分析。把執(zhí)行過的代碼重新加密可以防止跟蹤者翻看代碼。

              7)IAT加密
              防止ImpREC等工具的自動脫殼修復(fù),加大脫殼難度。

              8)指令摘取
              有很多方式,從OEP處摘取指令,隨機摘取一段指令等,加大脫殼難度。摘取的指令還可變形處理。

              9)CALL處理
              根據(jù)CALL指令本身特點,讓其先CALL進殼的空間,加大脫殼難度。

              10)自調(diào)試
              對于一個程序,Windows只允許這個程序被一個調(diào)試器調(diào)試,基于此,采用雙進程或多進程方式,
            自已調(diào)試自己,加大跟蹤難度。另外,通過設(shè)置某中斷地址,使程序發(fā)生某中斷時執(zhí)行程序中的中斷
            處理代碼,進行解碼、指令摘取等動作,加大跟蹤難度。

              11)異常處理機制
              人為產(chǎn)生異常,改變程序流程或在異常處理時進行解碼,加大跟蹤難度。常見的異常有內(nèi)存存取
            錯誤異常,中斷異常(INT3/單步/其它中斷等),非法指令,非法EIP等。

              12)多線程的運用
              利用被調(diào)試程序所有線程會被掛起的特點,達到干擾跟蹤的目的。一,用多線程改變程序流程:在
            線程中修改主線程代碼,如果被單步跟蹤線程將不會運行,流程也就不對了。二,用多線程解碼:同理,
            線程不能運行解碼也就不能進行。

              13)反SMC
              用Timer/線程不斷地將敏感的內(nèi)存空間的屬性設(shè)置成只讀,可以防止被打補丁。

              14)CRC校驗
              代碼被修改之后CRC檢驗值就不同了。

              15)破壞調(diào)試環(huán)境
              破壞調(diào)試寄存器內(nèi)容,破壞中斷處理地址或自己接管中斷處理等,從根本上反調(diào)試。

              16)反進程轉(zhuǎn)存
              將某個不會用到的代碼空間設(shè)置成NO_ACCESS,LordPE等工具dump到這個空間時就
            會異常而dump不了啦。

              17)監(jiān)視鍵盤
              監(jiān)視F7、F9就夠了。

              18)固定屏幕
              在殼運行期間把屏幕固定,跟蹤者看都不看到,當然跟不了。

              19)破壞異常處理環(huán)境
              用SetUnhandledExceptionFilter破壞異常處理環(huán)境,使調(diào)試器無法捕捉程序產(chǎn)生的異常。

              20)調(diào)試父進程
              利用調(diào)試函數(shù)的特點,即被調(diào)試進程會被掛起的特點,反單步跟蹤。

              21)Arm的CC保護,CopyMem-II保護
              把所有跳轉(zhuǎn)改成CC,父進程檢測到INT3中斷時查表改EIP去到正常的位置。
              CopyMem-II就是把自己復(fù)制到另一塊內(nèi)存中去運行,哪么dump的時候就麻煩些啦。

              22)反attach分析
              執(zhí)行過的代碼就破壞掉,防止attach分析。另外,生成一個指明不能用調(diào)試器的進程之后本
            身進程直接退出,可防attach。(NT系統(tǒng)有效)

              23)指令預(yù)取
              利用CPU會預(yù)讀取指令的特點,干擾單步跟蹤。如:
            ? ? ? mov word ptr [@@],20cdh
            ? ? @@:
            ? ? ? nop
            ? ? ? nop
              正常情況下CPU預(yù)讀了2個nop,而不會執(zhí)行INT 20(cd20),但單步跟蹤下來就不同了。

              24)寫代碼時的反調(diào)試
              對加殼選項的不同而生成不同的代碼,這樣可以有效地防止脫殼機的patch。只用標志位
            來判斷是否加密IAT是很危險的。

              25)隨機存放敏感數(shù)據(jù)
              如果用jmp OEP的方式去OEP,并且代碼位置是固定的,哪么寫脫殼機時OEP就隨手可得了,
            所以使代碼不定長,或把敏感數(shù)據(jù)隱藏起來是很好的對策。另外一些殼運行時要用的原程序的
            參數(shù)放在程序里面比一堆地放在殼后面更安全得多。

              26)反匯編
              把自己作為一個指令解釋器,反匯編自身代碼并解釋執(zhí)行,這樣就可以防止指令被改。

              軟件設(shè)計的復(fù)雜性比單純的反調(diào)試技巧更有效。加密算法的運用更是有力的反脫殼措施。
            anti技巧的安排也很重要,比如子程序里面放anti代碼要更好些,因為跟蹤者要先過雙進程
            這一關(guān);解碼前設(shè)置anti dump比解碼后設(shè)置更好些,因為解碼后立即用LordPE的話anti dump
            就形同虛設(shè)了。

              還有很多反調(diào)試技術(shù)是我未能收集到的,跟貼吧
            久久久综合香蕉尹人综合网| 国产Av激情久久无码天堂| 久久久久亚洲精品天堂| 99久久这里只精品国产免费| 久久久午夜精品| 久久午夜免费视频| 99精品久久精品一区二区| 超级97碰碰碰碰久久久久最新| 伊人久久大香线蕉成人| 久久久久久久综合狠狠综合| 久久伊人五月丁香狠狠色| 午夜天堂av天堂久久久| 精品蜜臀久久久久99网站| 国产成人精品久久一区二区三区 | 99久久免费国产特黄| 69久久精品无码一区二区| 亚洲午夜久久影院| 亚洲精品无码久久毛片| 久久亚洲AV成人无码国产| 一本伊大人香蕉久久网手机| 久久精品综合一区二区三区| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久久久人妻一区精品| 热久久国产欧美一区二区精品| 伊人丁香狠狠色综合久久| 思思久久99热只有频精品66| 精品久久人妻av中文字幕| 精品久久久久久无码人妻热| 伊人热热久久原色播放www| 久久精品国产亚洲av高清漫画 | 久久久久99精品成人片三人毛片| 亚洲国产精品综合久久网络| 久久精品人成免费| 久久强奷乱码老熟女网站| 97精品伊人久久大香线蕉app | 一本一本久久a久久精品综合麻豆| 77777亚洲午夜久久多喷| 91超碰碰碰碰久久久久久综合| 久久久久波多野结衣高潮| 99久久99久久精品国产片| 亚洲精品乱码久久久久久蜜桃图片|