飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4324|回复: 7

[07版] 两个简单壳及一附加数据处理

[复制链接]
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-4-11 20:50:47 | 显示全部楼层 |阅读模式
    发上来兄弟看看这样写要得不要得

    [ 本帖最后由 glts 于 2007-4-11 21:08 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-4-11 21:04:28 | 显示全部楼层
    Good Job!
    ESP定律那 加图的文章 其实有一篇即可.
    如果是加的记事本 可把加壳后的记事本一并附上 感谢兄弟恭稿~~
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2007-4-11 21:09:33 | 显示全部楼层
    要得,我再找时间把其它的壳分类搞出来
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-4-11 22:02:05 | 显示全部楼层
    原帖由 glts 于 2007-4-11 21:09 发表
    要得,我再找时间把其它的壳分类搞出来



    兄弟有时间的话 做一个图片的ESP的讲解 ODbgSript使用脚本脱壳的讲解
    我正做第三章暴破这的文稿~~ 辛苦了~~
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2007-4-12 14:37:14 | 显示全部楼层
    好没问题~~~支持兄弟!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-11 20:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-4-23 21:09:08 | 显示全部楼层
    【文章标题】: PECompact 2.55
    【文章作者】: glts
    【作者邮箱】: glts@163.com
    【作者主页】: www.mdcctv.com
    【软件名称】: PECompact 2.55
    【下载地址】: 自己搜索下载
    【保护方式】: PECompact 2.55
    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------------------------
    【详细过程】
      设置Ollydbg忽略所有的异常选项。
      od载入
      
      01001000 N>  B8 90BA0101     mov eax,NOTEPAD.0101BA90
      01001005     50              push eax                               ; NOTEPAD.0101BA90
      01001006     64:FF35 0000000>push dword ptr fs:[0]
      0100100D     64:8925 0000000>mov dword ptr fs:[0],esp
      01001014     33C0            xor eax,eax
      01001016     8908            mov dword ptr ds:[eax],ecx
      01001018     50              push eax
      
      下断点:BP VirtualFree 中断后,取消断点,Alt+F9。
      
      002F00C0     58              pop eax //返回到这
      002F00C1     EB 03           jmp short 002F00C6
      002F00C3     33C0            xor eax,eax
      002F00C5     48              dec eax
      002F00C6     5D              pop ebp
      002F00C7     5B              pop ebx
      
      然后,ctrl+F ,查找 push 8000(特征码)。
      
      002F093E     03C7            add eax,edi
      002F0940     68 00800000     push 8000   //这里
      002F0945     6A 00           push 0
      002F0947     FFB5 951C0010   push dword ptr ss:[ebp+10001C95]
      002F094D     FF10            call dword ptr ds:[eax]
      002F094F     8B46 0C         mov eax,dword ptr ds:[esi+C]
      002F0952     03C7            add eax,edi
      002F0954     5D              pop ebp
      002F0955     5E              pop esi
      002F0956     5F              pop edi
      002F0957     5B              pop ebx
      002F0958     C3              retn  //此处f2 ,下断
      
      
      F9 ,运行,此时断了。单步f8,来到
      
      0101BB3D     8985 C8120010   mov dword ptr ss:[ebp+100012C8],eax    ; NOTEPAD.0100739D
      0101BB43     8BF0            mov esi,eax
      0101BB45     59              pop ecx
      0101BB46     5A              pop edx
      0101BB47     EB 0C           jmp short NOTEPAD.0101BB55
      0101BB49     03CA            add ecx,edx
      0101BB4B     68 00800000     push 8000
      0101BB50     6A 00           push 0
      0101BB52     57              push edi
      0101BB53     FF11            call dword ptr ds:[ecx]
      0101BB55     8BC6            mov eax,esi
      0101BB57     5A              pop edx
      0101BB58     5E              pop esi
      0101BB59     5F              pop edi
      0101BB5A     59              pop ecx
      0101BB5B     5B              pop ebx
      0101BB5C     5D              pop ebp
      0101BB5D     FFE0            jmp eax             //跳到oep
      0101BB5F     0000            add byte ptr ds:[eax],al
      0101BB61     0000            add byte ptr ds:[eax],al
      
      0100739D     6A 70           push 70  //OEP
      0100739F     68 98180001     push PECompac.01001898
      010073A4     E8 BF010000     call PECompac.01007568
      010073A9     33DB            xor ebx,ebx
      010073AB     53              push ebx
      010073AC     8B3D CC100001   mov edi,dword ptr ds:[10010CC]      ; kernel32.GetModuleHandleA
      010073B2     FFD7            call edi
      010073B4     66:8138 4D5A    cmp word ptr ds:[eax],5A4D
      010073B9     75 1F           jnz short PECompac.010073DA
      
    --------------------------------------------------------------------------------
    【版权声明】: 本文原创于PYG技术论坛, 转载请注明作者并保持文章的完整, 谢谢!


                                                           2007年04月11日 PM 03:45:30
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-11 20:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-4-23 21:12:45 | 显示全部楼层
    【文章标题】: PECompact 1.84壳
    【文章作者】: glts
    【作者邮箱】: glts@163.com
    【作者主页】: www.mdcctv.com
    【软件名称】: 98记事本
    【下载地址】: 自己搜索下载
    【保护方式】: PECompact 1.84
    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------------------------
    【详细过程】
      PECompact1.84版壳脱法较简单可用:1、ESP定律法 2、模拟跟踪法
      ------------------------------------------------------
      1、ESP定律
      载入OD程序停在:
      0040C000 > /EB 06           jmp short PECompac.0040C008
      0040C002   |68 CC100000     push 10CC
      0040C007   |C3              retn
      0040C008   \9C              pushfd
      0040C009    60              pushad
      0040C00A    E8 02000000     call PECompac.0040C011      运行到此处寄存器ESP值显红(在此运用ESP定分律即可)
      0040C00F    33C0            xor eax,eax
      0040C011    8BC4            mov eax,esp
      0040C013    83C0 04         add eax,4
      0040C016    93              xchg eax,ebx
      0040C017    8BE3            mov esp,ebx
      0040C019    8B5B FC         mov ebx,dword ptr ds:[ebx-4]
      0040C01C    81EB 3F904000   sub ebx,PECompac.0040903F
      0040C022    87DD            xchg ebp,ebx
      0040C024    8B85 E6904000   mov eax,dword ptr ss:[ebp+4090E6]
      0040C02A    0185 33904000   add dword ptr ss:[ebp+409033],eax
      0040C030    66:C785 3090400>mov word ptr ss:[ebp+409030],9090
      0040C039    0185 DA904000   add dword ptr ss:[ebp+4090DA],eax
      0040C03F    0185 DE904000   add dword ptr ss:[ebp+4090DE],eax
      0040C045    0185 E2904000   add dword ptr ss:[ebp+4090E2],eax
      0040C04B    BB 7B110000     mov ebx,117B
      
      在命令行输入 HR 0012FFA0后F9运行后来到这里
      
      0040D54F    9D              popfd
      0040D550    50              push eax
      0040D551    68 CC104000     push PECompac.004010CC
      0040D556    C2 0400         retn 4
      
      F8四单步就来到OEP
      ------------------------------------------------------
      2、模拟跟踪法
      OD载入后打开内存镜像找到第一个.SFX段
      内存映射,项目 25
       地址=0040C000
       大小=00004000 (16384.)
       宿主=PECompac 00400000
       区段=.pec
       包含=SFX
       类型=Imag 01001002
       访问=R
       初始访问=RWE
      
      在OD命令行输入 TC EIP<40C000 回车后OD左上方提示在跟踪 不一会就到OEP了。
      
      
      
      
      
    --------------------------------------------------------------------------------
    【版权声明】: 本文原创于PYG技术论坛, 转载请注明作者并保持文章的完整, 谢谢!


                                                           2007年04月11日 PM 03:40:37
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-11 20:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-4-23 21:14:33 | 显示全部楼层
    【文章标题】: 附加数据的处理
    【文章作者】: glts
    【作者邮箱】: glts@163.com
    【作者主页】: www.mdcctv.com
    【下载地址】: 自己搜索下载
    【保护方式】: NsPack+附加数据
    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------------------------
    【详细过程】
      NsPack 1.4 -> Liuxingping [Overlay] *
      ------------------------------------------------------
      OD载入后停在
      00434F61 >  9C              pushfd
      00434F62    60              pushad
      00434F63    E8 00000000     call Overlay.00434F68             ESP定律
      00434F68    5D              pop ebp
      00434F69    B8 B1854000     mov eax,Overlay.004085B1
      00434F6E    2D AA854000     sub eax,Overlay.004085AA
      00434F73    2BE8            sub ebp,eax
      00434F75    8DB5 CBFEFFFF   lea esi,dword ptr ss:[ebp-135]
      00434F7B    8B06            mov eax,dword ptr ds:[esi]
      00434F7D    83F8 00         cmp eax,0
      
      在命令行输入 HR 0012FFA0 运行来到
      00435185    9D              popfd
      00435186  - E9 A6E6FCFF     jmp Overlay.00403831
      0043518B    8BB5 A3FEFFFF   mov esi,dword ptr ss:[ebp-15D]
      00435191    0BF6            or esi,esi
      00435193    0F84 97000000   je Overlay.00435230
      
      F8两下单步到达OEP显示为
      00403831      55            db 55                                                ;  CHAR 'U'
      00403832      8B            db 8B
      00403833      EC            db EC
      00403834      6A            db 6A                                                ;  CHAR 'j'
      00403835      FF            db FF
      00403836      68            db 68                                                ;  CHAR 'h'
      00403837      F0            db F0
      00403838      62            db 62                                                ;  CHAR 'b'
      00403839      40            db 40                                                ;  CHAR '@'
      0040383A      00            db 00
      0040383B      68            db 68                                                ;  CHAR 'h'
      0040383C      A4            db A4
      0040383D      4C            db 4C                                                ;  CHAR 'L'
      0040383E      40            db 40                                                ;  CHAR '@'
      0040383F      00            db 00
      00403840      64            db 64                                                ;  CHAR 'd'
      
      此时按住CTRL+A或者“从模块中删除分析”即可
      00403831    55              push ebp
      00403832    8BEC            mov ebp,esp
      00403834    6A FF           push -1
      00403836    68 F0624000     push Overlay.004062F0
      0040383B    68 A44C4000     push Overlay.00404CA4
      00403840    64:A1 00000000  mov eax,dword ptr fs:[0]
      00403846    50              push eax
      00403847    64:8925 0000000>mov dword ptr fs:[0],esp
      0040384E    83EC 58         sub esp,58
      00403851    53              push ebx
      00403852    56              push esi
      00403853    57              push edi
      00403854    8965 E8         mov dword ptr ss:[ebp-18],esp
      00403857    FF15 48604000   call dword ptr ds:[406048]                           ; kernel32.GetVersion
      
      脱壳修复后程序提示“Invalid data in the file”这是因为没有处理附加数据的原因,下面就来处理附加数据方法如下:
      1、打开LORDPE点“PE编辑器”载入修复后的程序
      2、打开区段在打开的区段表中,找到最后一下区段把“ROffset” 和 “RSize”地址相加此例中的
         ROffset地址为:00000400
         RSize地址为:0000C600
         00000400+0000C600=CA00(用计算器十六进制相加)
      3、用Hex Workshop 打开未脱壳的原程序 CTRL+G 在对话框中DEC和HEX选项中选择HEX然后输入CA00
      4、此时光标停在CA00这一行,此时按住SHIFT键用鼠标把把此行以下的数据全部选择上,然后点键“COPY”
         紧接着再打开脱壳修复后的程序,定位到最后一空白行 右键“PASTE”(粘贴)再保存文件即可
      
    --------------------------------------------------------------------------------
    【版权声明】: 本文原创于PYG技术论坛, 转载请注明作者并保持文章的完整, 谢谢!


                                                           2007年04月11日 PM 04:16:52
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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