cnpaf.net - 中国协议分析网

投递文章 投稿指南 RSS订阅 网站通告:
搜索: 您的位置主页>网络安全>工具使用>阅读文章

telock脱壳总结(1)

12-20 13:50 来源: 作者: 【 评论:0 浏览:
telock用fi查不出,所以如何判断是telock的壳,凭ImportRECf导出it的结果吧,乱七八糟的那种差不多就是了。初解telock的壳会感觉比较难,不过看了2个以后就不觉得有多难了。当然我略过了手动找入口的步骤,寻找程序的入口还是脱壳的关键所在也是难点。

用ShadowSecurityScaner Ver3.37举个例子吧,讲的时候会比较方便

1.寻找入口:

(1)delphi:
    快速寻找入口的方法:执行程序,接着用winhex打开程序所在的主内存,选择搜索文本,填runtime,执行搜索,搜到后,向前找到离runtime最近的机器码为55 8B EC的地方就是程序的oep,所以delphi程序的oep最好找了。

脱壳详情请参考我最近写的(delphi程序)

脱Flashfxp 1.4的壳

(2)vb:
    快速寻找入口的方法:执行程序,接着用winhex打开程序所在的主内存,选择搜索文本,填程序的名字,执行搜索,搜到后,向前找到离名字最近的机器码为68(后面就不一定了,一般很短,不超过20h字节)开头的地方就是程序的oep,所以vb程序的oep也比较好找。

(3)vc:
    无任何规律,慢慢跟吧:(。手动脱壳方法最好熟练掌握,对付任何程序都应该有效吧:),熟悉以后就没问题了。(难~~~)

(4)其他:
    没试过,不知道了。


    ShadowSecurityScaner是用delphi写的,hoho运气真好:)。sss335以前某版肯定是用telock加的壳,不过在51下的337版没有加壳,所以我用telock0.90给他加一个壳。用快速寻找delphi程序入口的方法:执行sss,接着用winhex编辑sss的主内存,选择搜索文本,填runtime,执行搜索,搜到后,向前找到离runtime最近的机器码为55 8B EC的地方就是程序的oep,对应的地址是59b9e4。


2.脱壳:

    telock的壳在dump之前需要用winhex内存编辑功能把400106-400107填回原来的section数(telock会改写为ffff,使脱壳程序无法dump)。然后从入口处dump,如果不是从入口dump的,一般不能用。再有用prodump dump的程序,需要手动把oep改成正确的。用天意,trw或peditor dump的程序稍大。其中天意在我的winme系统下执行suspend死机,所以极少用,peditor dump出的程序超大。trw只有娃娃改过的1.03版才能直接g到入口处,其余的版会非法操作的,而s-ice不会出任何问题的,cool。


    ok,回到sss。下面要在入口处脱壳,老规矩打开SuperBPM,点erase,用trw1.03娃娃修改过的版载入sss,下g 59b9e4,下suspend,用winhex内存编辑功能把400106-400107填回原来的值0800,再用prodump选dump(full)就成功啦。


3.重建import table:

以sss为例,执行sss,然后用ImportRECf导出it,是这个样子的:

Target: D:\TOOLS\SHADOWSECURITYSCANER\SSS.EXE
OEP: 0019B9E4    IATRVA: 001AB1A0    IATSize: 000008A4

FThunk: 001AB1A4    NbFunc: 00000036
0    001AB1A4    ?    0000    009D0000
0    001AB1A8    ?    0000    009D000A
0    001AB1AC    ?    0000    009D0014
0    001AB1B0    ?    0000    009D001E

从telock重建It部分开始吧,用加了superbpm和icedump的s-ice重新载入sss,下bpm 9d0000,下g,停在这里:

0187:006ACE09 FF0424            INC    DWord Ptr [ESP]
0187:006ACE0C 0483              ADD    AL,83
0187:006ACE0E 2424              AND    AL,24
0187:006ACE10 03833C240074      ADD    EAX,[EBX+7400243C]
0187:006ACE16 36833C2401        CMP    DWord Ptr SS:[ESP],00000001
0187:006ACE1B 744D              JZ      006ACE6A
0187:006ACE1D 833C2402          CMP    DWord Ptr [ESP],00000002
0187:006ACE21 7422              JZ      006ACE45
0187:006ACE23 C144240C10        ROL    DWord Ptr [ESP+0C],10
0187:006ACE28 668B44240C        MOV    AX,[ESP+0C]
0187:006ACE2D 66AB              STOSW
0187:006ACE2F 8BC3              MOV    EAX,EBX
0187:006ACE31 C1E803            SHR    EAX,03
0187:006ACE34 83E003            AND    EAX,00000003
0187:006ACE37 8A440404          MOV    AL,[ESP+1*EAX+04]
0187:006ACE3B AA                STOSB
0187:006ACE3C B0C3              MOV    AL,C3
0187:006ACE3E AA                STOSB
0187:006ACE3F 66B8FF35          MOV    AX,35FF
0187:006ACE43 EB2D              JMP    006ACE72
0187:006ACE45 8B442408          MOV    EAX,[ESP+08]
0187:006ACE49 AB                STOSD
0187:006ACE4A 4F                DEC    EDI
0187:006ACE4B EBEF              JMP    006ACE3C
0187:006ACE4D 668B44240C        MOV    AX,[ESP+0C]
0187:006ACE52 66AB              STOSW
0187:006ACE54 B0C3              MOV    AL,C3
0187:006ACE56 AA                STOSB
0187:006ACE57 8BC3              MOV    EAX,EBX
0187:006ACE59 C1E803            SHR    EAX,03
0187:006ACE5C 83E003            AND    EAX,00000003
0187:006ACE5F 8A440404          MOV    AL,[ESP+1*EAX+04]
0187:006ACE63 AA                STOSB
0187:006ACE64 66B8FF35          MOV    AX,35FF
0187:006ACE68 EB08              JMP    006ACE72
0187:006ACE6A 8B442410          MOV    EAX,[ESP+10]
0187:006ACE6E AB                STOSD

收藏此篇文章内容到:
Tags:
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 广告合作 - 网站地图 - 版权说明 - 网站历史 - 世界排名 - 加入收藏 - 设为首页 - 返回顶部