飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7387|回复: 29

[原创] 关于只凭感觉脱壳的一些经验

[复制链接]

该用户从未签到

发表于 2008-7-29 12:06:42 | 显示全部楼层 |阅读模式
呵呵,晚辈无知,令各位大侠见笑了。
如果你是位脱壳高手,那就先别看了。呵呵,很弱的

首先OD载入,要先F9看看,如果蓝屏,那算了,太猛了。如果有异常,试试SHIFT+F9
如果检测出来的话,先去搞个插件回来
如果OD直接退出,在命令行下 bp OutputStringA+1,呵呵,停住以后手动POP一下,改EIP为RETN,然后继续

如果有个CALL,首先判断CALL的远近,如果CALL的特别远,F8走过。如果CALL的值=后面一条指令的地址,呵呵F8就得丢了,F7进。如果CALL的比较一般,下面是比较“花”的东西,SHIFT+上下看看,能不能“翻译”出来,“翻译”出来,就F4到花指令的头字节,不出来,就是未压缩数据,还是跟进比较好

其他的……一般的壳用这几个试试
bp VirtualAlloc+1
bp VirtualProtect+1
bp GetTickCount+1 ;ANTI-反调试
bp OutputStringA+1 ;ANTI-反调试
bp GetModuleHandle+1(忘了有没有A了,试试) ;这个特别好用,首先是壳里面有可能会有,其次主程序里肯定会调这个,一个RETN就知道OEP了
bp LoadLibrary+1 ;同上,处理输入表常用
bp GetProcAddress+1 ;同上,处理输入表常用

呵呵。还有,有的壳先下命令 D EIP,在第一个字节下硬件访问断点,F9,有的时候有意想不到的结果

呵呵,这是我总结的经验,也希望各位大牛一同分享,谢谢



补上回复的
======================
如果有哪个CALL下面跟着是未压缩的代码,F7跟
碰上循环(双跳),除了JMP以外,很多循环都试试F4到下一句.尤其是向上跳的
...

主要都是简单壳

关于SEH:
异常发生后,看堆栈附近的"SE异常处理程序",CTRL+G到以后去找RETN,通常跟进领空,这时候
下命令 d [esp+0c+0e8]一般就是SEH之后的EIP
因为SEH有4个参数,第2个是CONTEXT,里面保存跳后的寄存器值,而EIP又是0E8H,所以...
呵呵,当然也可以直接找 ... ...[...+0e8](如inc byte ptr[esp+0e8],add byte ptr[eax+0e8]等等,不是固定的)

[ 本帖最后由 NONAME剑人 于 2008-9-19 19:13 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2008-7-29 12:15:16 | 显示全部楼层

沙发

终于坐一回沙发,顶一下先
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-12-2 16:47
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2008-7-30 14:52:54 | 显示全部楼层
    我很菜的还看不太懂啊
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-15 13:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-7-31 19:54:08 | 显示全部楼层
    有的地方不太明白,先收起来。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-8-9 23:53:36 | 显示全部楼层
    学习了,多谢楼主共享
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-8-12 14:39:41 | 显示全部楼层
    偶不懂啊,过来学习下了啊
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-8-19 12:07:07 | 显示全部楼层
    不错  ,西西


    /:001
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-8-19 12:32:20 | 显示全部楼层
    楼主很强啊  感谢楼主分享这么好的经验/:good
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2008-8-20 22:54:22 | 显示全部楼层
    很弱的,高手看了一定会笑话....

    还有最近的
    如果有哪个CALL下面跟着是未压缩的代码,F7跟
    碰上循环(双跳),除了JMP以外,很多循环都试试F4到下一句.尤其是向上跳的
    ...

    主要都是简单壳

    关于SEH:
    异常发生后,看堆栈附近的"SE异常处理程序",CTRL+G到以后去找RETN,通常跟进领空,这时候
    下命令 d [esp+0c+0e8]一般就是SEH之后的EIP
    因为SEH有4个参数,第2个是CONTEXT,里面保存跳后的寄存器值,而EIP又是0E8H,所以...
    呵呵,当然也可以直接找 ... ...[...+0e8](如inc byte ptr[esp+0e8],add byte ptr[eax+0e8]等等,不是固定的)
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-3-29 07:24
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2008-8-27 22:08:14 | 显示全部楼层
    很详细,留个记号学习!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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