飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8069|回复: 11

[原创] AsProtect 1.2 简单脱壳分析

[复制链接]
  • TA的每日心情
    开心
    2023-6-2 15:44
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2014-11-17 12:12:24 | 显示全部楼层 |阅读模式
    本帖最后由 blackk 于 2014-11-17 12:39 编辑
    尽管它是老壳,尽管它已被通杀,但某些壳注定一出身就不平凡!
    这么多年过去了,依然通过它还可以学习到很多!
    ~

    我是小菜,只能从低版本开始玩了,1.2版本的强度还不是很高,先调戏一下它。

    一、查壳

        使用PEID的OEp查找插件可以直接找到OEp的位置



    二、脱壳

        下面开始手动找到OEp,OD载入,停在入口点。忽略除了“非法访问内存”的所有异常



        21SHIFT+F9之后程序运行。
        重载程序,在20SHIFT+F9之后,停到此处,我们对代码段下内存访问断点



        SHIFT+F9之后就停在OEp了
        可以看到程序的IAT都已被移到壳的区段了



        我们来看一下怎么还原IAT
        重载程序,忽略所有异常,对00460ADC内存写入断点



        第二次断在这里
        EDX指向要处理的IAT,EAX是该IAT的值(处理过),ESI可以看到IAT的名称



        在上面的第一个CALL下F2断点



        F9运行,此时EAX的值就是真实的函数地址,这里是个循环,直到IAT处理完毕



        如果你时间够多我不介意你一个一个手动修复,我很懒的,还是写一个脚本吧~

    //定义要用到的变量,并且清除断点
    1. var oep
    2. var getapi
    3. var apiaddress
    4. var fixapi
    5. bphwc
    复制代码

    //获取GetSystemTime函数的地址(因为壳会用到这个函数,方便我们找到壳的区段)
        rtr是执行到返回,那么就到了壳区段,然后搜索二进制(这个二进制就是CALL上面的那几句代码,你也可以自己找,我样本不多,不通用也说不定)
        找到就继续处理,没找到就停止脚本
    1. gpa "GetSystemTime","kernel32.dll"
    2. bp $RESULT
    3. esto
    4. bc $RESULT
    5. rtr
    6. find eip,#8DB5FFFEFFFF568B450C50#
    7. cmp $RESULT,0
    8. je error
    复制代码

    //设置OEP、IAT获取、IAT处理的地址(就是我们找到的CALL和写入的地址)
        运行一次
    1. mov oep,4271b0
    2. mov getapi,$RESULT+10
    3. mov fixapi,$RESULT+19
    4. bphws getapi
    5. bphws fixapi
    6. bphws oep
    7. esto
    复制代码

    //此时停在CALL处,将EAX的值(函数地址)保存
        运行一次
        将函数地址修复
        是否停在OEp?停在OEp就停止脚本
    1. fixbegin:
    2. mov apiaddress,eax  
    3. esto
    4. mov [edx],apiaddress
    5. esto
    6. cmp eip,oep
    7. je finsh
    8. jmp fixbegin
    复制代码


    //错误和脚本的停止处理
    1. finsh:
    2. MSG "IAT修复完成,请检查"
    3. ret

    4. error:
    5. MSG "未搜索到获取API地址,请使用手动输入。"
    6. ret
    复制代码

        好了,全部组合起来,OD开始跑脚本,可以在数据窗口查看IAT的修复情况



        IAT修复完成后,我们检查一下,发现还有一个函数没有修复



        来到指向的函数地址,我们手动修复一下



    三、收尾

        在OEp处Dump程序,然后修复IAT,没有错误^_^
    附件下载,脚本在第一个附件中,测试了一下,这个脚本也支持1.23RC =-=


    本帖子中包含更多资源

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

    x
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-6-7 19:27
  • 签到天数: 560 天

    [LV.9]以坛为家II

    发表于 2014-11-17 12:58:21 | 显示全部楼层
    来支持下,脱壳太不了解了,谢谢。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-5-9 10:29
  • 签到天数: 72 天

    [LV.6]常住居民II

    发表于 2014-11-17 13:42:53 | 显示全部楼层
    膜拜
    学习下~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-26 11:14
  • 签到天数: 459 天

    [LV.9]以坛为家II

    发表于 2014-11-17 14:01:05 | 显示全部楼层
    {:soso_e179:} 学习了
    又开始玩壳了啊
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2021-5-11 14:02
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2014-11-17 20:42:47 | 显示全部楼层
    学习下~                                      
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-4-13 20:08
  • 签到天数: 2046 天

    [LV.Master]伴坛终老

    发表于 2014-11-17 21:27:51 | 显示全部楼层
    {:soso_e141:}进来学习了呀。谢谢楼主分享呀。
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2018-1-26 16:44
  • 签到天数: 149 天

    [LV.7]常住居民III

    发表于 2014-11-18 20:26:13 | 显示全部楼层
    感谢分享了,步骤很详细。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2016-10-14 08:38:17 | 显示全部楼层
    很不错,学习了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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