学习心得---关于seh(1)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

关于seh(1)

好久就想写点东西了,无赖自己太懒了。好不容易写了篇进程插入得投了,

还被退回来了,郁闷。

天天打游戏,玩奇迹,其实每天我都知道要好好学习,就是克制不住。

正题。

大家看清楚了,这里写的不是SHE偶像组合,是结构化错误处理,不知道我有没有翻译错误。

其实以前我对这玩意儿重来不在乎,不就是try,catch么,有什么难的,这些天也看了一些东西,觉得这东西确实不是那么简单的。

明确一下学习目的,这里讲的seh的目的就是为了做一些"不正当"的事情,比如黑客呀,进入ring0亚等等,所以,会牵扯到其他的很多知识,我懂得我会尽量说明白,不过,如果你是那种觉得vb就已经很好用不想再学其他语言的人,我劝你还是别看了,这里面没有你想要的东西,大部分是汇编。不是我对谁不满,而是这是事实。或许你说可以用vb编出嵌入汇编的程序,但是那只是奇技淫巧罢了。

首先讲一下关于c++中的错误的处理方法。

try. 这是一个很简单的语句,一般来讲和catch配套使用例如:

try

{

int a=34;

int b=0

int c=a/b;

}

catch(int errno)

{

.......//错误的处理

}

程序执行try块里面的语句,如果遇到错误,就会把错误类型逐个的和后面的catch括号里面的错误类型比较,如果有匹配的就交给这个catch处理,如果没有的话有系统处理,默认的方式是中断运行。

这里最重要的就是错误的类型号了,我这里不多说了,你们自己去查书,我们以后主要还是接触到asm,毕竟比高级语言自由的多,这一讲只是抛砖引玉,引出一个话题。

当然有个简单的方法,就是不管出什么错,由一个catch统统承担,可以使用下面的代码:

catch(...)

{

...........//处理代码

}

用catch(...)就可以捕获任何类型的异常。

这是c++封装的异常处理,其实和一般的seh差不多,先写到这里,

好像和我们的目标----进入ring0差得比较远。不过不要着急,我知道一次写太多你们看这也吃力,一次这么一点点大家看着舒服嘛。大家体会一下,下次就准备我们的正式旅途了。

不知道大家有没有觉得看老外写的书特别费劲,他们写书老是拐弯抹角,不一句话讲清楚,尤其是那个lippman,越来越受不了他了,不过他的书又不得不看,如果大家对我的写作方式有什么意见告诉我。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航