本论坛为只读模式,仅供查阅,不能注册新用户,不能发帖/回帖,有问题可发邮件 xikug.xp (^) gmail.com
查看: 3470|回复: 7

求助:如何判断一个地址,是否在try里面 [复制链接]

Rank: 1

发表于 2011-12-6 20:01:24 |显示全部楼层
程序执行的时候,给你一个地址如何判断这个地址是在try里面

int  b  = 1; //得到这地址不在try块中
try
{
int  a = 0; //得到这个地址在try块中
}
catch(...)
{}

Rank: 2

发表于 2011-12-7 14:49:19 |显示全部楼层
自己分析seh呗.

Rank: 2

发表于 2011-12-7 20:56:13 |显示全部楼层
SEH是代码层面的吧。。。
跟地址什么的无关吧。。。

Rank: 1

发表于 2011-12-8 09:05:26 |显示全部楼层
如果是个全局变量 倒还好处理.. 可以做成自动的,从重定位表重找到 使用此地址的代码片断.然后向上搜mov [ebp -4],x 指令,再向上搜SEH压栈指令..就可以判断这个全局变量有没有被trycatch保护
如果是局部变量,没有重定位表支持,找到使用此地址的代码片断就不那么容易了...可能只有自己逆向..自己逆向的话..在不在trycatch里面,一看就知道了

Rank: 1

发表于 2011-12-8 17:42:10 |显示全部楼层
是代码执行的时候判断,不是,静态反汇编,我遍历 seh,想自己调用handler ,可是不知道参数是什么,总是返回1( search),他自己的异常处理也是返回一 。。

int _except_handler3(PEXCEPTION_RECORD, EXCEPTION_REGISTRATION *,
                                 PCONTEXT, PEXCEPTION_RECORD);
第二个参数,和第4个参数

Rank: 1

发表于 2011-12-8 17:42:19 |显示全部楼层
是代码执行的时候判断,不是,静态反汇编,我遍历 seh,想自己调用handler ,可是不知道参数是什么,总是返回1( search),他自己的异常处理也是返回一 。。

int _except_handler3(PEXCEPTION_RECORD, EXCEPTION_REGISTRATION *,
                                 PCONTEXT, PEXCEPTION_RECORD);
第二个参数,和第4个参数

Rank: 9Rank: 9Rank: 9

发表于 2011-12-19 20:21:16 |显示全部楼层
这个。。。实在是判断不了,你想做什么看能不能变通一下了
悟空,退下,为师一个人就够了

Rank: 1

发表于 2012-1-9 19:04:22 |显示全部楼层
本帖最后由 bombless 于 2012-1-9 19:06 编辑

这个实际上跟代码运行到那里的状态有关,所以这个问题是无解的。
比如说一段代码本来不在try里面,然后别处的代码把它停下来,加了个SEH处理结构,那代码就变成在try里边了。

反过来也一样。

所以说代码是否在try里面,这个跟代码本身可以说没有直接的关系。
您需要登录后才可以回帖 登录 | 立即加入

Archiver|手机版|第8个男人 - 论坛为只读模式,仅供查阅

GMT+8, 2019-7-18 18:16 , Processed in 0.029234 second(s), 8 queries .

Design by pvo.cn

© 2011 Pvo Inc.

回顶部