能力值:
( LV5,RANK:70 )
|
-
-
2 楼
use dbghelp.dll to get the stack
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
从堆栈里检查返回地址如何?
|
能力值:
(RANK:860 )
|
-
-
4 楼
在一个函数内部怎么会得到呢?
在外部还差不多
IDA好像有这样的功能,但应该不是在内部
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
有这样的需求?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
看堆栈啊
=======
|
能力值:
( LV12,RANK:300 )
|
-
-
7 楼
使用栈回溯……
|
能力值:
( LV9,RANK:610 )
|
-
-
8 楼
[ebp+4]就是返回地址啊,判断下范围不就行了~
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
[QUOTE=achillis;688496][ebp+4]就是返回地址啊,判断下范围不就行了~[/QUOTE]
栈回溯已经久仰大名了,不过还一直没空去研究
有个疑问一直在心里,如果回溯徒中有不使用ebp寻址而直接使用esp的,有没有什么技巧可以应对?
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
不太明白楼上说的是什么意思?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
可能是我的描述有问题,
一般进入一个函数的时候,是因为有
push ebp
mov ebp, esp
这2句代码,所以可以用[ebp + 4]得到return地址,
但是有的函数是没有这2句的,然后函数内部访问调用参数时,是直接 [esp + xxx],
而这样的函数里,用[ebp+4]就得不到正确的返回地址了,有没有什么好的技巧?
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
这个最专业,支持楼主用这种方式。
|
能力值:
( LV12,RANK:650 )
|
-
-
13 楼
一般来说就是堆栈吧
通用的办法是没有的。你得看看你的编译器把代码编译成什么样,才能针对这点取得地址
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
morning 这个dbghelp.dll 是怎么用的?
|
|
|