首页
社区
课程
招聘
[求助]请问下strongod的跳过某些异常选项
发表于: 2012-7-30 13:46 5868

[求助]请问下strongod的跳过某些异常选项

2012-7-30 13:46
5868
在单步跟踪telock试了n次的时候发现,如果strongod选择了skip some exceptions之后单步,会被检测到,

  如果选择skip some exceptions但是直接执行能顺利执行。
  

  具体位置是
00404083    50              push    eax
00404084    33C0            xor     eax, eax
00404086    64:FF30         push    dword ptr fs:[eax]
00404089    64:8920         mov     dword ptr fs:[eax], esp
0040408C    CC              int3
0040408D    90              nop
0040408E    8BC0            mov     eax, eax
00404090    F9              stc
00404091    90              nop
00404092    8D045D 34120000 lea     eax, dword ptr [ebx*2+1234]
00404099    F8              clc
0040409A    90              nop
0040409B    C1EB 05         shr     ebx, 5
这里的int3断点进入0x004040c5的异常处理程序之后,退出时直接就被检测到了。
  被检测的情况下,异常处理退出到
00404AE4    F8              clc
00404AE5    0F83 1A010000   jnb     00404C05
00404AEB    8D85 840A0000   lea     eax, dword ptr [ebp+A84]
00404AF1    894424 04       mov     dword ptr [esp+4], eax
00404AF5    64:67:8926 0000 mov     dword ptr fs:[0], esp
00404AFB    E9 F9000000     jmp     00404BF9
00404B00    EB 1F           jmp     short 00404B21
00404B02    838B 6424088B 6>or      dword ptr [ebx+8B082464], 6C
00404B09    24 08           and     al, 8
00404B0B    8D85 AF0A0000   lea     eax, dword ptr [ebp+AAF]
00404B11    50              push    eax
00404B12    EB 02           jmp     short 00404B16
00404B14    CD20 81B5591C   vxdjump 1C59B581
00404B1A    0000            add     byte ptr [eax], al
00404B1C  ^ 7E 89           jle     short 00404AA7
00404B1E    B8 DAC32BC0     mov     eax, C02BC3DA
00404B23    74 02           je      short 00404B27
00404B25    CD20 CC90E9D7   vxdjump D7E990CC

  正常的应该是在int3的处理完成之后进入
00404090    F9              stc
00404091    90              nop
00404092    8D045D 34120000 lea     eax, dword ptr [ebx*2+1234]
00404099    F8              clc
0040409A    90              nop
0040409B    C1EB 05         shr     ebx, 5
0040409E    FC              cld
0040409F    90              nop
004040A0    C1C0 07         rol     eax, 7
004040A3    90              nop
004040A4    90              nop
004040A5    33DB            xor     ebx, ebx
004040A7    F7F3            div     ebx
这个位置。单步要进入这个位置,不能选择skip some exceptions。

  壳是很老的壳了,但是新手不会,想学一下,找到讲telock的帖子了,想弄清楚的是od被检测到的原因。之前是因为一直被检测过不去,困扰了很久,尝试了n次终于找到是strongod的选项设置不对被检测出来,但是还想弄懂原理。

  直接运行会出现(不选中skip some exceptions)出现
  
  telock里面有一句lea eax,eax非法指令,那个错误提示的eip就是指向这条指令,需要进行另一个异常处理程序才能正确执行,但是这一句非法指令是在上面的代码后面才出现的,和壳的检测有什么关系呢。
   另外好像把所有插件都删除只装strongod单步走的话还是被检测到。我装的插件是,不知道是不是兼容问题。
  
Hello.rar

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 135
活跃值: (63)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
这个壳很早就开始跟了但是一直被检测出来,刚刚才试出原因。不过还有个很奇怪的地方是,之前跟踪到div ebx这个异常处理(第二次0x004040c5的处理程序)的时候退出来到了一段读取10几个api函数的地址的指令,但是现在跟到div ebx退出之后就一直在系统领空,f9就到了上面出现错误提示,lea eax,eax这条指令的地方,读取api函数地址的那一段指令没见到。不知道什么原因。

这个壳不知道为什么,我关机之后重来就发现单步走的结果就不一样了。我确实看到过一段获取10多个api函数地址的代码,但是现在又看不到了。求大牛指点。
2012-7-30 15:43
0
雪    币: 2506
活跃值: (2323)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
这不就是SEH,遇到异常后会跳到seh处理历程,在od里把异常忽略掉试试
2012-7-30 20:48
0
雪    币: 135
活跃值: (63)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
全部都忽略了。
2012-7-31 11:21
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这程序运行就报错,还调戏毛线
2012-11-3 01:44
0
游客
登录 | 注册 方可回帖
返回
//