• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

             首頁 > 試題

            ZProtectIAT修復分析

            更新時間:2025-12-10 08:53:07 閱讀: 評論:0

            2024年3月27日發(作者:給兒子的生日祝福語)

            ZProtect IAT修復分析

            手上也有正版的ZProtect了,就加了幾個樣本玩兒了一下,總結出了一些小方法,分享給大

            家。

            本文的目的旨在討論如何去除ZP保護的程序(不帶SDK)。主要討論一下如何修復IAT。

            第一個樣品是個VB程序,按默認保護了輸入表。

            ZP中的輸入表的保護方式有三種:

            1,加密等級1

            2,加密等級2

            3,模擬

            還有一個額外的輸入表保護方式---Anti-Hook,這里不討論修復這種保護。

            默認保護下,IAT中的一部分函數使用的是等級1,剩下的使用的是等級2。至于模擬這種保

            護,貌似在ZP1.44中是被動選擇。只能對GetModuleHandleA這個函數使用。知道了這個,

            修復這個函數也就不在話下。

            閑話少說,OD載入,配置好StrongOD,確保程序能在OD中運行,這樣會減少我們不少麻

            煩~

            F7單步走幾步,探索一下殼的代碼。

            走了一段時間就會看清楚ZP的代碼變形引擎的本質:

            ZP殼會把程序的代碼按指令分割起來,然后用Jmp連接起來。

            當然如果僅僅是這樣的話,反跟蹤的難度絕對不夠的。還要對Jmp進行變形。

            這里用下面的例子說明一下:

            006E1ACF E8 02000000 call Farsight.006E1AD6

            006E1AD4 6C ins byte ptr es:[edi],dx---這兩個是花指令

            006E1AD5 19 ---

            006E1AD6 872C24 xchg dword ptr ss:[esp],ebp

            006E1AD9 8DAD B0F9FFFF lea ebp,dword ptr ss:[ebp-650]

            006E1ADF 872C24 xchg dword ptr ss:[esp],ebp

            006E1AE2 C3 retn

            上面的代碼就相當于Jmp 006E1A6F

            原理是這樣:

            call Farsight.006E1AD6這條指令指令完以后會把它下面指令的地址壓入堆棧,所以現在

            [ESP]=006E1AD4。

            然后xchg dword ptr ss:[esp],ebp 把006E1AD4傳遞給ebp。

            接著lea ebp,dword ptr ss:[ebp-650] 把ebp-650=006E1A6F

            在賦值給esp,最后retn返回就返回到006E1A6F了。

            這段代碼的二進制是E8 02 00 00 00 27 EB 87 0C 24 8D 89 63 01 00 00 87 0C 24 C3

            E8 02 00 00 00 這個是call 87 0C 24 8D 89 63 01 00 00 87 0C 24 C3

            27 EB 是花指令,個數不確定,一般是0-2個

            87 0C 24 其中的0C決定使用的寄存器。

            8D 89 63 01 00 00 其中89表示寄存器,后面的四個字節就是相應的差。

            有一定編程能力的人,相信應該能寫出去掉代碼變形的工具。

            弄清楚代碼變形的過程 就不看在代碼里面晃了,實在很痛苦。下面說一個通用的到達OEP

            的方法:

            重新載入程序,然后F7走,一直看到Pushad這條指令以后,走過去,使用ESP定律,運行,

            停下來以后,走幾步就到OEP了!

            這個方法通用1.3x-1.4x保護的程序。其他版本沒驗證過?? 從這點來看,ZP在技術上還只

            算一個壓縮殼??

            好了,到了OEP,下面開始修復IAT。

            00412940 - E9 DBB73300 jmp manager.0074E120

            00412945 90 nop

            00412946 - E9 11BB3300 jmp manager.0074E45C

            0041294B 90 nop

            0041294C - E9 FFBD3300 jmp manager.0074E750

            00412951 90 nop

            00412952 - E9 65B83300 jmp manager.0074E1BC

            00412957 90 nop

            00412958 - E9 7FB93300 jmp manager.0074E2DC

            0041295D 90 nop

            0041295E - E9 D9B63300 jmp manager.0074E03C

            00412963 90 nop

            00412964 - E9 27B73300 jmp manager.0074E090

            00412F0A - E9 F5B83300 jmp manager.0074E804

            00412F0F 90 nop

            00412F10 68 7C5B4100 push manager.00415B7C ; <---OEP

            00412F15 E8 F0FFFFFF call manager.00412F0A VB的程序這個call應該是

            jmp.&Main 這個函數。

            看來這處IAT調用00412F0A - E9 F5B83300 jmp manager.0074E804應該是跳轉到

            ThunRTMain這個函數的

            我們來仔細跟蹤到這里看一下,下面是去掉了jmp和變型以后的代碼

            0074E804 68 14E693AD push AD93E614 《---注意這個值,這就是IAT調用的jmp執

            行以后的第一條指令

            01504660 68 F9E1932D push 2D93E1F9

            01526465 9C pushfd

            01526466 E8 01000000 call 0152646C

            0152646B 97 xchg eax,edi

            0152646C 871424 xchg dword ptr ss:[esp],edx

            0152646F 8D92 3AD3FFFF lea edx,dword ptr ds:[edx-2CC6] === jmp 0015237A5

            01526475 871424 xchg dword ptr ss:[esp],edx

            01526478 C3 retn

            015237A5 83EC 3E sub esp,3E

            0151D99C 896424 2C mov dword ptr ss:[esp+2C],esp

            01521064 894424 28 mov dword ptr ss:[esp+28],eax

            0151BDBC 8B4424 42 mov eax,dword ptr ss:[esp+42]

            0151CBF6 894424 36 mov dword ptr ss:[esp+36],eax

            015212DE 8B4424 3E mov eax,dword ptr ss:[esp+3E]

            本文發布于:2024-03-27 08:30:09,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/88/60846.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:ZProtectIAT修復分析.doc

            本文 PDF 下載地址:ZProtectIAT修復分析.pdf

            上一篇:ts流iat指標
            標簽:代碼   程序   指令   使用   變形   保護   修復   去掉
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 亚洲中文字幕永码永久在线| 九九成人免费视频| 婷婷综合在线观看丁香| 午夜福利片1000无码免费| 午夜a福利| 国产亚洲情侣一区二区无| 亚洲黄色性视频| 久久久精品人妻一区二区三区| 亚洲VA欧美VA国产综合| 国产av一区二区三区区别| 亚洲鸥美日韩精品久久| 精品国产v一区二区三区| 香蕉乱码成人久久天堂爱| 免费人欧美成又黄又爽的视频| 亚洲第一区二区快射影院| 欧美精品人人做人人爱视频| 57pao国产成视频免费播放| 玩弄丰满少妇人妻视频| 精品国产一区二区三区国产区| 日韩精品一区二区三区在| 最新精品国偷自产在线美女足| 夜夜躁狠狠躁日日躁| 亚洲欧美激情另类| 亚洲精品国产av一区二区| 国产丝袜在线精品丝袜不卡| 成人无码午夜在线观看| 国内精品免费久久久久电影院97| 18禁成人黄网站免费观看久久| 日韩 一区二区在线观看| 国产午夜一区二区在线观看| 91老熟女老人国产老太| 成年无码av片在线蜜芽| 国内揄拍国内精品少妇国语| 久久国产精99精产国高潮| 亚洲中文字幕第二十三页| 日本欧美一区二区免费视频| 亚洲人成精品久久久久| 亚洲精品国自产拍影院| 久久婷婷五月综合97色直播| 亚洲熟女片嫩草影院| 日韩av在线不卡免费|