能力值:
( LV2,RANK:10 )
|
-
-
2 楼
debug默认使用十六进制的数 所以你数据后不用加h
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
不要加H。。。。。。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
或许是因为10002这个地址已经被保留做什么特殊用途了吧,只要明白这个是做什么的就可以了,没必要尝试这个例子了。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我没有加h,书上写的h
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
用d命令看的时候,都是0,不过你说的对,只是个例子,不过我想尝试下而已,很奇怪偏偏这段写不成。。,所以问下
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这个是debug本身的原因,是由于它的T命令引起的,与中断有关。
T命令调试是使用了单步中断来实现的,也就是引起了程序自陷来中断正在执行的程序。
执行T命令的时候,栈空间不够,越界,导致崩溃。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
你试着写好代码,设置好CS:IP之后,用 g 命令执行完这几行代码,就不会崩溃了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
何时能升级呀?
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
结果还是一样
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
在用T命令T命令的具体压栈流程
PUSHF
PUSH CS
PUSH IP
你堆栈只有 2,这样用T命令的时候堆栈就不够了,就越界了。
不是你那么用的,g 后面加代码的地址。
这个问题是由于debug的T命令引起的,如果你想整得超明白,就去研究下debug的T命令和中断。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
恩,成功了,谢谢
|
|
|