首页
社区
课程
招聘
[求助]F8 步过call 异常, F9 运行正常, 是什么问题?
发表于: 2010-7-18 14:32 6596

[求助]F8 步过call 异常, F9 运行正常, 是什么问题?

2010-7-18 14:32
6596
目标程序:  最近发布的某国产单机游戏

加密方式:  SecuRom  , 有激活次数限制

下载地址:  http://u.115.com/file/f74275b31b

由于原数据容量过大, 我只打包了部分核心文件, 应该能运行....

004FF04B    8D6424 FC       LEA ESP,DWORD PTR SS:[ESP-4]
004FF04F    892C24          MOV DWORD PTR SS:[ESP],EBP
004FF052    8BEC            MOV EBP,ESP
004FF054    8D6424 FC       LEA ESP,DWORD PTR SS:[ESP-4]
004FF058    890C24          MOV DWORD PTR SS:[ESP],ECX
004FF05B    33C0            XOR EAX,EAX
004FF05D    66:8945 FC      MOV WORD PTR SS:[EBP-4],AX
004FF061    66:C745 FE 6000 MOV WORD PTR SS:[EBP-2],60
004FF067    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
004FF06A    8D6424 FC       LEA ESP,DWORD PTR SS:[ESP-4]
004FF06E    890424          MOV DWORD PTR SS:[ESP],EAX
004FF071    8D6424 FC       LEA ESP,DWORD PTR SS:[ESP-4]
004FF075    890424          MOV DWORD PTR SS:[ESP],EAX
004FF078    51              PUSH ECX
004FF079    8BED            MOV EBP,EBP
004FF07B    B9 467A3F00     MOV ECX,3F7A46
004FF080    9C              PUSHFD
004FF081    81F1 427B3F00   XOR ECX,3F7B42
004FF087    9D              POPFD
004FF088    90              NOP
004FF089    870C24          XCHG DWORD PTR SS:[ESP],ECX
004FF08C    FF75 08         PUSH DWORD PTR SS:[EBP+8]
004FF08F    51              PUSH ECX
004FF090    B9 030A0300     MOV ECX,30A03
004FF095    90              NOP
004FF096    9C              PUSHFD

004FF097    8D6D 00         LEA EBP,DWORD PTR SS:[EBP]
004FF09A    81F1 060A0300   XOR ECX,30A06
004FF0A0    0FA4E9 00       SHLD ECX,EBP,0                           ; 位移常数超出 1..31 的范围
004FF0A4    9D              POPFD
004FF0A5    870C24          XCHG DWORD PTR SS:[ESP],ECX
004FF0A8    E8 08000000     CALL GuJian.004FF0B5    ;//问题出在这里
004FF0AD    BA 62DBB825     MOV EDX,25B8DB62
004FF0B2    4D              DEC EBP

我的问题如标题所述, 在 004FF0A8 位置的这个 Call  ,
我按 F8 步过, 程序弹出窗口, 显示异常数据.

按 F9 运行, 程序弹出窗口的内容正确无异常.

不知道这是什么原因引起的, 希望大虾们能给我解惑一下. 谢谢各位了...

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不明白楼主问什么要破这游戏,呵呵!
中国单机游戏还很多吗?
2010-7-18 19:32
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的, 我明白你的意思..

看着工长一直付出的努力, 我并不希望他会跟上软一样的结局...

所以破解这个纯属个人兴趣而已.    并不打算往外公布.
2010-7-19 19:31
0
雪    币: 517
活跃值: (84)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
4
004FF0A8    E8 08000000     CALL GuJian.004FF0B5    ;//问题出在这里
004FF0AD    BA 62DBB825     MOV EDX,25B8DB62
004FF0B2    4D              DEC EBP
004FF0B3
004FF0B4
004FF0B5

可以看到,call 4FF0B5,而此时EIP==04FF0A8,就在近处。剩下的3 byte 指令你虽然没有贴出来,但是明显函数没有结束的迹象。
所以,这明显的是一条花指令。如果你用F8,4FF0AD将被修改成CC,于是可能被检测到哦。。。
2010-7-19 20:16
0
雪    币: 324
活跃值: (1124)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
原因很简单,使用F8的时候,调试器就会把下一条指令的第一个字节暂时替换为0xCCh,即断点指令,同时调试器接管断点中断,以便执行到下一条指令时能取得控制并恢复现场。如果刚刚执行的那个调用对现场进行了“破坏”,那肯定就会出现异常。
2010-7-20 11:47
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
004FF0A8    E8 08000000     CALL GuJian.004FF0B5

004FF0B5 离 004FF0A8    很近,你可以把它就看成一个jmp
很多壳里面都用有的
2010-7-20 11:57
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢楼上几位的解答,   现在这个问题是明白了, 但同时也引发了另一个问题.

似乎是由于我没有脱壳的原因, 上面的代码根本无法用OD进行分析, 连 F2 下断点都不行..

正如 chywan 所说, 是断点指令造成的, 但是不用 F8 步行, 那要怎么样才能继续分析下去呢?
2010-7-20 14:06
0
雪    币: 324
活跃值: (1124)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
用PEID扫描一下,看看是什么壳,然后一脱了之。
2010-7-20 15:09
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我也对这研究了下
好奇問下,lz是想爆破离线激活还是怎样来着?
貌似關鍵代碼是在那個XXXXSystem.dll裏面的
2010-7-20 15:14
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
chywan , PEid 识别不了, 估计也没别的壳, 就 SecuRom.   因为它本身就带有壳的特点, 这种壳要手脱.

目前以我的能力水平手脱不了..

szbigcat ,  我是想爆破来着, 那个 dll 文件我已经破了, 但关键是主程序.   未脱壳之前根本别想爆破.

所以不得不从注册算法中入手, 于是就有了上述问题....
2010-7-20 18:16
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
exeinfo说是securom 7.1噢。
我就简单跟了一下,最近没继续了。。。
2010-7-20 22:50
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
SecuROM 7.x.x.x -> Sony DADC
2010-7-24 08:48
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个版本的壳很有难度啊
有高手脱过吗?以前的方法貌似不好使啊...
有成功的给点思路
高手来啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2010-7-24 20:58
0
雪    币: 1136
活跃值: (683)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
能指点一下啊
主程序我到是跳过了
但是点击进入游戏就退出了
估计就在你说的那个DLL里面的原因吧
(注:这个只是个人行为,不是什么破解组织什么的!就算破解后也是自己用的)
2010-8-4 11:37
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
heihu , 你哪个所谓的跳过, 应该是修改那个 dll 文件的吧!
2010-8-6 19:50
0
游客
登录 | 注册 方可回帖
返回
//