首页
社区
课程
招聘
[求助]脱壳中单步进入和单步步过区别是什么?
发表于: 2013-2-13 19:19 9860

[求助]脱壳中单步进入和单步步过区别是什么?

2013-2-13 19:19
9860
不是想知道如何脱壳,看了黑鹰教程手动脱壳说,近CALL要单步步入,否则程序跑飞.用ASPack给记事本加的壳,运行完PUSHAD的下一个CALL,果然,单步步过这个CALL是,记事本就运行起来了,但单步步进这个CALL,就4,5个指令,运行完这个CALL,记事本也没跑出来?
      
       从这个分析,单步步过,和单步步进一条一条执行指令有区别的啊?想知道区别是啥子?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2155
活跃值: (29)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
字面意思啊,单步步过就是碰到call不进入call,单步步入就是进入call中执行。。。
单步步过相当于单步步入后执行到ret指令的下一条。。。
2013-2-13 21:31
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的,那个我知道啊.但脱壳时,单步步过和跳过有明显区别啊.
2013-6-18 15:11
0
雪    币: 284
活跃值: (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
也许你问的是为什么近CALL要F7远CALL要F8吧,实际操作下就知道了
近CALL你跟进去就是在下面几句代码,举个例子
00421000  CALL 00421006           如果这里你F8就到00421006,没有断点程序飞了
00421005  push ecx                     
00421006  test eax,eax               F7跟进CALL 就会来到这,不会跑飞

脱壳过程中会遇到很多类似的代码
2013-6-18 19:31
0
雪    币: 807
活跃值: (2283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不是所有的 CALL 都能步过,当然,正常情况下应该是都能步过,但是,如果是如下这种情况就不能步过了:

          CALL   FUN01
          XOR    EAX,EAX
          INC    EAX
           .
           .
           .
FUN01:
          POP   EAX
          CALL  FUN02
          .
          .
          .
      "CALL FUN01" 指令后面的指令永远都没有机会执行了,因为函数 "FUN01" 在入口处就把返回地址给丢弃了(POP EAX)。“CALL FUN01”指令实际上起到的是 “JMP FUN01” 指令的作用。所以,必须选择步入才能保证对程序的调试控制。
2013-6-18 20:43
0
游客
登录 | 注册 方可回帖
返回
//