• <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.¢%

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              18)固定屏幕
              在殼運(yùn)行期間把屏幕固定,跟蹤者看都不看到,當(dāng)然跟不了。

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

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

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

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

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

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

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

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

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

              還有很多反調(diào)試技術(shù)是我未能收集到的,跟貼吧
            久久久久中文字幕| 久久棈精品久久久久久噜噜| 2021久久国自产拍精品| 人妻无码中文久久久久专区| 国产婷婷成人久久Av免费高清| 91精品国产高清久久久久久国产嫩草| 国产精品丝袜久久久久久不卡| 亚洲精品久久久www| 国产精品久久久久9999| 国产高潮国产高潮久久久91| 国产精品久久久久久久人人看| 久久综合久久综合久久综合| 久久精品国产精品亚洲艾草网美妙| 亚洲欧洲精品成人久久曰影片 | 久久亚洲sm情趣捆绑调教 | 亚洲国产精品久久久久久| 久久综合色之久久综合| 国产精品久久久福利| 久久久久久亚洲精品无码| 成人资源影音先锋久久资源网| 久久久久国色AV免费观看| 国产∨亚洲V天堂无码久久久| 久久亚洲国产精品五月天婷| 91精品国产综合久久婷婷| 亚洲国产成人精品91久久久| 精品久久人人做人人爽综合| www.久久热.com| 色综合久久中文字幕无码| 97久久婷婷五月综合色d啪蜜芽| 久久国产视屏| 国产精品久久网| 久久久久久久久久久久中文字幕| 性高朝久久久久久久久久| 国产精自产拍久久久久久蜜| 国产成年无码久久久久毛片| 欧美大香线蕉线伊人久久| 亚洲精品tv久久久久久久久| 国产毛片欧美毛片久久久| 狠狠精品久久久无码中文字幕| 2020国产成人久久精品| 狠狠综合久久AV一区二区三区|