• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    手动脱壳入门第十九篇ASProtect 1.1

    发布者: 山止川行 | 发布时间: 2025-6-28 23:42| 查看数: 95| 评论数: 0|帖子模式

    【脱文标题】 手动脱壳入门第十九篇ASProtect 1.1
    【脱文作者】 weiyi75[Dfcg]
      
    【作者邮箱】 weiyi75@sohu.com
    【作者主页】 Dfcg官方大本营
    【使用工具】 Peid,Ollydbg,Loadpe,ImportREC1.42
    【脱壳平台】 Win2000/XP
    【软件名称】 chap709.exe
    【下载地址】 本地下载
    chap709.rar
    【软件简介】 ASProtect 1.1b Registered 加密Win98的记事本。
    【软件大小】 58.2K
    【加壳方式】 ASProtect 1.1b Registered [SAC] -> Alexey Solodovnikov
    【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:
    --------------------------------------------------------------------------------
    【脱壳内容】
    首先Peid查壳,为ASProtect 1.1b Registered [SAC] -> Alexey Solodovnikov,ASProtect 1.1b Registered 很少弄过,与现在的Asprotect1.2X SEH不同,不过也很容易。SEH异常全部是由13个精心设计的非法指令SEH组成的,这样就无法用模拟跟踪找Oep了。二哥脱壳没有什么耐心,喜欢快。先大概了解了一下程序开始脱壳。
    OD载入程序,除了错误或有特权的指令外异常全部忽略,1.1b不检测OD,根本无需隐藏。
    0040D001 >  60              pushad   //外壳入口,F9运行。
    0040D002    E9 95050000     jmp chap709.0040D59C
    0040D007    F710            not dword ptr ds:[eax]
    0040D009    0F0F            ???                                      ; 未知命令
    0040D00B    0F9F6C90 FC     setg byte ptr ds:[eax edx*4-4]
    0040D010    57              push edi
    0040D011    C5540F CA       lds edx, fword ptr ds:[edi ecx-36]
    0040D015    4B              dec ebx
    0040D016    C5540F 12       lds edx, fword ptr ds:[edi ecx 12]
    0040D01A    EC              in al, dx
    0040D01B    3AAC90 CD540F92 cmp ch, byte ptr ds:[eax edx*4 920F54CD]
    0040D022    CC              int3
    .............................................................
    第一次异常
    0092FF94    8DC0            lea eax, eax                             ; 非法使用寄存器
    0092FF96    EB 01           jmp short 0092FF99
    0092FF98    68 648F0500     push 58F64
    0092FF9D    0000            add byte ptr ds:[eax], al
    0092FF9F    00EB            add bl, ch
    0092FFA1    02E8            add ch, al
    0092FFA3    0158 68         add dword ptr ds:[eax 68], ebx
    0092FFA6    98              cwde
    0092FFA7    E5 92           in eax, 92
    0092FFA9    0068 D0         add byte ptr ds:[eax-30], ch
    0092FFAC    FF92 00687CF5   call dword ptr ds:[edx F57C6800]
    0092FFB2    92              xchg eax, edx
    0092FFB3    0068 14         add byte ptr ds:[eax 14], ch
    ...................................................................
    继续Shift F9 12次达第十三次也是最后一次异常。
    0093053D    8DC0            lea eax, eax                             ; 非法使用寄存器
    0093053F    EB 01           jmp short 00930542
    00930541    68 648F0500     push 58F64
    00930546    0000            add byte ptr ds:[eax], al
    00930548    00EB            add bl, ch
    0093054A    02E8            add ch, al
    0093054C    0158 33         add dword ptr ds:[eax 33], ebx
    0093054F    C05A 59 59      rcr byte ptr ds:[edx 59], 59
    00930553    64:8910         mov dword ptr fs:[eax], edx
    00930556    68 78059300     push 930578
    0093055B    8D45 F0         lea eax, dword ptr ss:[ebp-10]
    0093055E    E8 2D2CFFFF     call 00923190
    00930563    8D45 F8         lea eax, dword ptr ss:[ebp-8]
    .............................................................
    ALT M 打开内存镜像。
    内存镜像,项目 21
    地址=00401000
    大小=00004000 (16384.)
    Owner=chap709  00400000
    区段=
    包含=code   //对这里下内存访问断点,Shift F9运行。
    类型=Imag 01001002
    访问=R
    初始访问=RWE
    004010CC    55              push ebp  //到达Oep,用Loadpe脱壳吧。
    004010CD    8BEC            mov ebp, esp
    004010CF    83EC 44         sub esp, 44
    004010D2    56              push esi
    004010D3    FF15 E4634000   call dword ptr ds:[4063E4]
    004010D9    8BF0            mov esi, eax
    004010DB    8A00            mov al, byte ptr ds:[eax]
    004010DD    3C 22           cmp al, 22
    004010DF    75 1B           jnz short chap709.004010FC   //往下看看IAT被加密了不少。
    004010E1    56              push esi
    004010E2    FF15 F4644000   call dword ptr ds:[4064F4]
    004010E8    8BF0            mov esi, eax
    004010EA    8A00            mov al, byte ptr ds:[eax]
    004010EC    84C0            test al, al
    004010EE    74 04           je short chap709.004010F4
    004010F0    3C 22           cmp al, 22
    004010F2  ^ 75 ED           jnz short chap709.004010E1
    004010F4    803E 22         cmp byte ptr ds:[esi], 22
    004010F7    75 15           jnz short chap709.0040110E
    004010F9    46              inc esi
    004010FA    EB 12           jmp short chap709.0040110E
    ...........................................................
    IAT修复
    运行ImportREC,OEP填入10CC,自动搜索,获得输入信息,有111个指针没有修复,先用跟踪等级1修复98个,剩下的13个用等级3全部修复,正常运行。
    火眼金精区段减肥,去除垃圾区段,重建PE。
    这个需要一点PE知识,没有也不要紧,跟着一起学,积累经验。
    备份好脱壳程序,区段减肥有时过量会导致程序无法运行。
    这次区段减肥只是例子,大家要学会举一反三。
    我们用OD同时载入未加密的Win98计事本,和脱壳程序。
    Win98 记事本
    本地下载
    Notepad.rar
    Alt M打开内存镜像同步分析。
    原程序内存镜像
    地址       大小       Owner      Section    Contains      类型   访问      初始访问  映射为
    003E0000   00002000                                       Map    R         R
    00400000   00001000   NOTEPAD               PE header     Imag   R         RWE
    00401000   00004000   NOTEPAD    .text      code          Imag   R         RWE
    00405000   00001000   NOTEPAD    .data      data          Imag   R         RWE
    00406000   00001000   NOTEPAD    .idata     imports       Imag   R         RWE
    00407000   00005000   NOTEPAD    .rsrc      resources     Imag   R         RWE
    0040C000   00001000   NOTEPAD    .reloc     relocations   Imag   R         RWE
    Contains
    .text         //代码段,我们反编译程序经常看到。
    .data       //数据快,程序初始化用。
    .idata    //输入表,现在加密壳搞破坏的对象,坏的输入表

    来源:https://www.jb51.net/hack/5153.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

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