能力值:
( LV3,RANK:30 )
|
-
-
2 楼
esp-4这个不确定吧。一般来说有可能是下一层堆栈函数的参数吧,
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
这得根据上下文来定吧。谁知道现在esp现在指向哪呢。
esp总是在变的。
|
能力值:
( LV5,RANK:60 )
|
-
-
4 楼
栈顶指针,会变的,自己用OD观察下。esp=??,[esp]=??
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
[QUOTE=笨奔;1052155]栈顶指针,会变的,自己用OD观察下。esp=??,[esp]=?? [/QUOTE]
堆栈指针我知道啊,你试试用windbg调试驱动环境下,[esp-4]的值一直是eflag寄存器的值,比如执行push 123456后,esp减4了,原来[esp-4]处成了123456,然后新的[esp-4]处仍变成了eflag的值,且这个值不能通过指令修改。
为什么在驱动环境下,无论esp怎么变化,[esp-4]的值一直保持为eflag寄存器的值?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
[QUOTE=baijianli;1052200]堆栈指针我知道啊,你试试用windbg调试驱动环境下,[esp-4]的值一直是eflag寄存器的值,比如执行push 123456后,esp减4了,原来[esp-4]处成了123456,然后新的[esp-4]处仍变成了eflag的值,且这个值不能通过指令修改。
为什么在驱动环境下,无论esp怎么变化...[/QUOTE]
这是调试器的特性,调试器会用esp-4来存放数据。
以前Icesword有一个反调试的技巧就是检查esp-4如果发现被改了说明是被调试自动破坏线程块
|
能力值:
( LV10,RANK:163 )
|
-
-
7 楼
这句的上面一个push xxx就是了
|
|
|