飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6490|回复: 0

[转贴] Asprotect V2.X 的脱壳与修复的总结及练习

[复制链接]
  • TA的每日心情
    开心
    2018-1-9 11:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-3-9 11:55:05 | 显示全部楼层 |阅读模式
    Asprotect V2.X 的脱壳与修复的总结及练习



    关于Asprotect V2.X 的脱壳与修复, loveboom的《ASPROTECT 2.x 脱壳系列》已经非常的全面与经典.

    pc007.com 版权所有

    本人在此只是依葫芦画瓢, 并将有些地方再详细的解释一下, 给菜鸟们脱Asprotect V2.X时进行参考, 高手就不要看了. pc007.com


    先在理论上研讨一下, 由于编译器的不一样, C 与 Delphi 所编译的汇编结果有差别, Asprotect 加壳时处理的也不一样.

    本文来自 pc007.com


    先假设有一程序:

    007电脑资讯


    OEP: 00401000
    IAT: 00407000 - 00407FFF
    在00401100 CALL DLL1.API1
    在00401180 CALL DLL1.API2

    pc007.com


    Ospr 加壳后, 好多的API CALL 被改成 CALL 12000000

    007电脑资讯


    然后开始研究.

    007电脑资讯


    1. C/C++ Program

    pc007.com


    1.1) 未被加壳的程序

    007电脑资讯


    00401000    55              PUSH EBP                                  ; 程序 OEP
    00401001    8BEC            MOV EBP, ESP
    ...
    00401100    FF15 00704000   CALL DWORD PTR DS:[00407000]              ; DLL1.API1
    00401106    ...
    00401180    FF15 04704000   CALL DWORD PTR DS:[00407004]              ; DLL1.API2
    00401186    ...

    007电脑资讯



    ********* IAT 可能是这样的 ************
    00407000    DD  7C571000    // DLL1.API1
    00407004    DD  7C572000    // DLL1.API2
    ...
    004070FC    DD  00000000 pc007.com

    00407100    DD  7D00XXXX    // DLL2.API1
    ...
    004071FC    DD  00000000 pc007.com

    ... pc007.com 版权所有

    00407F00    DD  7F00XXXX    // DLLn.API1
    ...
    00407FFC    DD  00000000

    pc007.com 版权所有


      

    pc007.com


    1.2) 被 Asprotect 加壳后的程序在OEP

    欢迎访问007电脑资讯


    00401000    55              PUSH EBP                                  ; 程序 OEP
    00401001    8BEC            MOV EBP, ESP
    ...
    00401100    E8   FBEEBF11   CALL 12000000                             ; 壳
    00401105    ??
    00401106    ...
    00401180    E8   7BEEBF11   CALL 12000000                             ; 壳

    www.pc007.com


    00401185    ??
    00401186    ...
    pc007.com


    *************IAT************************
    00407000    DD  ????????    // 被加密的 DLL1.API1 信息
    00407004    DD  7C572000    // 未加密的 DLL1.API2

    007电脑资讯


    ASPR 将许多的API CALL 都改成了统一的 CALL 12000000
    即改 CALL DWORD PTR DS:[xxxxx] 成 CALL 12000000

    pc007.com




    本文来自 pc007.com

    作    者: blackeyes

    www.pc007.com


    关于Asprotect V2.X 的脱壳与修复, loveboom的《ASPROTECT 2.x 脱壳系列》已经非常的全面与经典. 本文来自 pc007.com

    本人在此只是依葫芦画瓢, 并将有些地方再详细的解释一下, 给菜鸟们脱Asprotect V2.X时进行参考, 高手就不要看了. pc007.com 版权所有


    先在理论上研讨一下, 由于编译器的不一样, C 与 Delphi 所编译的汇编结果有差别, Asprotect 加壳时处理的也不一样. 007电脑资讯

    先假设有一程序:

    pc007.com 版权所有


    OEP: 00401000
    IAT: 00407000 - 00407FFF
    在00401100 CALL DLL1.API1
    在00401180 CALL DLL1.API2

    007电脑资讯

    Ospr 加壳后, 好多的API CALL 被改成 CALL 12000000 pc007.com

    然后开始研究. www.pc007.com

    1. C/C++ Program 欢迎访问007电脑资讯

    1.1) 未被加壳的程序

    www.pc007.com


    00401000    55              PUSH EBP                                  ; 程序 OEP
    00401001    8BEC            MOV EBP, ESP
    ...
    00401100    FF15 00704000   CALL DWORD PTR DS:[00407000]              ; DLL1.API1
    00401106    ...
    00401180    FF15 04704000   CALL DWORD PTR DS:[00407004]              ; DLL1.API2
    00401186    ... 007电脑资讯


    ********* IAT 可能是这样的 ************
    00407000    DD  7C571000    // DLL1.API1
    00407004    DD  7C572000    // DLL1.API2
    ...
    004070FC    DD  00000000

    007电脑资讯

    00407100    DD  7D00XXXX    // DLL2.API1
    ...
    004071FC    DD  00000000 本文来自 pc007.com

    ... www.pc007.com

    00407F00    DD  7F00XXXX    // DLLn.API1
    ...
    00407FFC    DD  00000000 www.pc007.com

      pc007.com 版权所有

    1.2) 被 Asprotect 加壳后的程序在OEP

    pc007.com 版权所有


    00401000    55              PUSH EBP                                  ; 程序 OEP
    00401001    8BEC            MOV EBP, ESP
    ...
    00401100    E8   FBEEBF11   CALL 12000000                             ; 壳
    00401105    ??
    00401106    ...
    00401180    E8   7BEEBF11   CALL 12000000                             ; 壳 www.pc007.com
    00401185    ??
    00401186    ...

    pc007.com 版权所有


    *************IAT************************
    00407000    DD  ????????    // 被加密的 DLL1.API1 信息
    00407004    DD  7C572000    // 未加密的 DLL1.API2 欢迎访问007电脑资讯

    ASPR 将许多的API CALL 都改成了统一的 CALL 12000000
    即改 CALL DWORD PTR DS:[xxxxx] 成 CALL 12000000 pc007.com 版权所有
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表