nichkhun 发表于 2012-3-25 08:06:49

我学习系统原理手记05

今天发帖是在早上,一夜没睡。感觉对不起狼魂和蛤蟆唉,在这里表示感谢你们的帮助,十分感谢

从昨天发完贴后一直在写PE结构的C++,由于自己对MFC的了解真的是少之又少,自己动手去编写的次数也很少,所以鼓足勇气去编写这个程序,按着黑狼的教程,摸索了很多天,最近在快接近尾声的时候,一次又一次的遇到困难,真的是一次又一次的站起来。

疯子说,当你从新写一次的时候就是1个新的成长,我都重新写不下去了。
狼魂最后困的不行了也下了,也推荐我如果在犯编译器的错误的话,那就不是我的问题了,而且我总是疏忽一些东西
十分感谢你们的帮助

在后来蛤蟆帮我查看系统问题,发现我的这系统确实也该重新安装了,可是我总是舍不得唉。跟随我有段时间了。。。

今天要回家了,但是还是想坚持的写下去,看到自己的帖子上了导读,我知道是他们鼓励我,其实我写的很烂把。
最近心情很糟糕,估计也是因为带着心情写代码把,研究PE好久了哟、

//////////////////////////////////////////////////////////////////////////////////////////////////////////
同样的,推荐1首歌曲, 1个资料, 1句名言

歌曲             在路上                            歌手老狼的!
书是 c++反汇编与逆向分析技术揭秘    这个是黑云的最爱了啊!
今天这句名言,
不引用任何人,而是因为自己回忆了很久,也没有想到的一句话,也是疯子最不喜欢听的1句话了把
我认为学习就是应该适当的囫囵吞枣,知道过程,知道是个怎么回事,需要的时候回头带着你想要的,疯狂的去整理,然后解决掉问题

//////////////////////////////////////////////////////////////////////////////////////////////////////////

时间紧迫,我也困的不行了,饥寒交迫,哈哈。急的回家了。。。该回去了。


在学习过8086和WIN32的汇编的时候,中断是大家最常见的了,回忆当初刚开始写第一段汇编代码,int 21h
想起自己当初第一次写C的时候,调试的时候查看DEBUG的汇编代码,到处是INT 3。

是否也让你想起了很多了呢??


是的,人总喜欢在回忆什么。。。。

那么你是否回忆当初小甲鱼老师给我们讲的1个故事呢?
故事是这样的,假设你现在正躲在房间里面看苍井空大战小甲鱼,结果你妈妈来敲门了,这个时候你就把片子挂起了嘛。(中断), 然后问你妈妈,怎么了啊。你妈妈跟你说,要你去打酱油,没办法啊, 你就要去打酱油了。
正当你打酱油回来的时候,准备继续欣赏激烈战斗的时候, 停电了(异常)。等你在开机的准备继续看的时候,蓝屏的盖好喝的盖的时候,又系统崩溃啦。。。(异常了)

其实中断和异常很像,正是如此。那有了上面的故事后,你是否可以明白一点中断和异常了呢?
那我开始了

中断和异常机制
记得小甲鱼老师在讲解汇编正要讲解到内中断的时候,对我们说,学习逆向和破解的朋友可以转向了下一个路口。。
其实我觉得不是全对,中断实模式,虽然像个大官,
可是在保护模式下,退休的干部,也是挺厉害的!

首先介绍,在实模式下的我们,小甲鱼老师说,貌似有个玩意叫中断大全,比如,int 15得到内存信息
可是在保护模式下,我们牛逼的微软,能让我们这样做么?难,他什么都喜欢藏起来,好比女人的心思,就是不告诉你把,要你去研究,你越研究,她越开心。。。
的确,在保护模式下的我们,中断机制在BIOS是已经不能用了,取而代之的是IDT, 这个东西叫中断向量表。看名字不难想到, 他和GDT, LDT 很像, 他也是1个描述符表

在前面的手记中,我曾经介绍过, 我们有个东西叫门,说过了调用门后,貌似就没了下文

因为IDT 包含可能是其中的3种门, 中断门描述符, 陷阱门描述符, 任务门描述符。
在此任务门参考资料上都没怎么做到介绍,说几乎用的很少。我也苦逼没办法。
那么就开始说下,我对另外2种的浅见把。。

在此我们都可以很清楚的有个概念,只要是发生了错误,那么就是引起了中断和异常机制
在此我就不想画中断门和陷阱门的结构图了他和之前的描述符的结构都是想通的。。。


记得在之前介绍过TSS,谈到如果TSS返回错误的话就是#TS 是的,他其实也就是我们保护模式下的中断和异常机制的1个部分。当然不会仅仅只有1个助记符的

http://hi.baidu.com/wellalone/blog/item/96f06c105f51235af819b884.html
http://hi.baidu.com/wellalone/blog/item/96f06c105f51235af819b884.html

看完上面2篇后,是否你也会觉得,中断是个很简单的事情呢?但是你要明白,不是知道中断就好了

让我们来对他有个新的认识把,也算是我标新立异在这里的看法,无论百科也好,他人的日记也好。我觉得介绍的还不仅仅是我们需要的,说来说去,都是外部中断和内部的操作符的中断实现。
研究原理汇编的朋友,大多都是对破解和逆向有兴趣的朋友
那么,控制1个进程中断,并非难事,但是怎么让他不断呢?或许你觉得我有点想入非非了。但是玩过破解的很多人都知道,当你对程序载入OD的时候,为什么程序会崩溃会退出,会蓝屏呢?
我也就吊吊胃口,哈哈

如果你对中断还是初学或者仅仅是才知道的话,那么知道上面的也就够了,如果你对中断已经研究过那么一段日子,已经很反感的话,接下来看看我的说法。如果你已经无所畏惧的超神啦,那请你给我的贴灌灌水,支持下新人把。

在此之前我给大家推荐了1分光盘代码orange's 一个操作系统的实现(pmtest9.asm),作者完美的实现调用中断,打开中断,如果控制中断和异常,如果你仅仅说,如果你用C或者其他语言也能办到的话,那我不说什么了- -。在上面的网站中,前辈很明显的说出了
作为操作符进入保护模式的中断和异常机制面对的是权限的考验。他的结构标识是对标致寄存器IF的影响而造成影响的。如何避免和刻意的去做你想做的,大家自由发挥把。

在时钟中断中, 想屏蔽中断的方法就是 IF位1, IMR为0时才可以发生,结合上面我所提到的,我希望对你能对中断能有个新的认识

IMA(Interrupt Mask Registrt) 中断屏蔽寄存器。当中断到达,IMA就会判断次中断是否已经被丢弃。
EOI, 每次中断,EOI都会给8259A发送1个EOI,这样就可以继续接受中断。

在回忆之前我说过的推栈机制, 里面对描述符做出了很好的一套方案,权限的调用和限制,页式存储机制,可以让1套寄存器可以连续的工作,但是如果自此中断发生的是错误的中断呢
当然不会总返回的是错误的推栈,但是如果发生了,错误的参数将会在最后1个压入推栈,在返回的时候也会自动在栈中被消灭掉。。

说了这么半天了,我对没对中断门和陷阱门做什么自己的看法,其实在我学习完了后,或许我看的很粗糙,所以我也做不出1个评价分析,我仅仅理解的是,中断门是影响IF标志器的,而陷阱门,则没有。。。


小结1下,

不知不觉天亮了,每次写贴,我都会用很久时间,虽然打的像很匆忙,但是找资料和翻书在去理解的时候,时间确实过的很快的

在保护模式下的我们,中断和异常机制已经不能在随便使用了 也提供了有特权的校验了。
并且,在保护模式下的我们,做任何1件事,就会几乎引起所有的保护机器的校验,难道不是么?难道你做任何1件事,就没有推栈?分页?等等,
实模式下的老古董并非是被淘汰了,而是被挡在了窗户外面1个个的排队进行校验后在操作,只是没实模式下那么疯狂了,比如操作符。。。比如操作符结构中的选择子。

回忆起我们可怜的内存,被这么多的关卡给一个个的校验,真的是越少,才会越觉得珍惜,越觉得宝贵。如果人人内存“N”TB, 那么我们都可以随便乱用了
当然也就是个玩笑话,这么多保护机制,也做到了灵活和方便的作用
现实当我们写代码的时候,也会诸多考虑,比如这个程序没有正确执行那么我会写下1个if,让他返回,这个返回就是中断异常
当程序都正确的时候,有会造成运行一半出错,这个也是中断异常,其实他和我们真的是无时不在啊,我现在写代码真的是痛恨他们的要死了啊

当然总比系统崩溃的要好~



最后有没会C++的啊~~~在下MFC写的时候,从主窗口要调用另外1个窗口的时候,怎么都调用不过来,求帮助了啊。。。我实在是想了1晚上了 。。。。。我的QQ联系方式 342300830当然有兴趣研究学习的,我都十分欢迎


                                                                                                                                       今天记录的有些仓促,                                                                                                                                             饿了,洗了出去过早。回家把                                                                                                                                                            2012/03/25早上







http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 nichkhun的微博

nichkhun 发表于 2012-3-25 08:27:58

还是自己的2楼
http://115.com/file/and19bca

我MFC消息不能映射,有朋友可以帮助那就太感谢了啊。。。
我有点笨,如果你说不清楚的话,你就发个附件我把,十分谢谢了。~ 或者加我QQ
页: [1]
查看完整版本: 我学习系统原理手记05