系统运行之我见_浪子绘粹_奇书网
返回

浪子绘粹

首页
系统运行之我见(2 / 2)
最新网址:www.qisuu.info

种水平,不过我一直在努力。

在多任务系统上编程,永远只是在主人那里登记一个信息,然后再把指令放到内存去运行,永远运

行在主人的监控下,如果要逃脱主人的监控,只有找到主人的漏洞或者在主人打瞌睡的时候偷偷地跑进

去,改了他的记录所有信息的表,这样你才能躲过主人的监控,轻而易举地和主人平起平坐了。

说到底,这好像还是一个模式,先是详细地了解电脑的运行原理,然后再找空子打进他的内部(术

语叫知己知彼,百战百胜),例如,在每个关键环节赶在主人之前偷偷地改了指向自己的记录,然后你

就可以取得控制权。在32位下运行的程序都是运行在ring3权限下的,如果能把记录这个程序权限的记录

改成ring0,那么就和实模式下一样拥有至高无上的权利了,电脑所有的资源任你取舍宰割了。不管gdt

、ldt还是页表,都只是一些存放在一定位置的记录每种信息的表结构,只要你能找到它,并能控制它,

那么你就是主人家的管家了,只要不被主人发现,你就是老大。

总的流程就是:先从硬件启动,在一个特定的位置执行第一条指令,如果空间足够,你可以把所有

的初始化任务指令和导入主引导程序的指令全部放在这个地址的后面,不过一般是不可能的,所以只能

把控制权交给另一个地址了,其实控制权的转交就是一个跳转指令,什么jmp、jnz,很多很多,也可以

是调用无限循环不返回的函数,当然这只是我的认为,只要能达到目的就要不择手段,这是我理解编程

的思想,不是我做人的准则,各位请别误解我的用意。跳转到主引导程序后,进行各种必需的初始化操

作,硬件算是全部正常,可以工作了,再把硬盘上的引导指令载入,并跳入到引导程序中去,从此执行

这些不一定是厂家才能做的工作中去,因为从硬盘引导指令开始,这一切都可以由程序员在电脑上编写

指令完成,而以前的bios驱动指令一般是由厂家固化上去的。进入我们力所能及的阶段后,就是一些不

同的信息表在等着我们,有硬盘的格式分区表,目录表,每个执行文件的pe表,太多太多了,反正就像

进了信息统计局,什么东西都有个记录表,如果你想好好了解每一个东西,第一件事就是要知道它在硬

盘上存储的格式,怎样才能被系统识别,当然你也可以按你自己的格式存放,在系统调用之前你先得把

它转换成系统认识的格式,因为系统是老大,他可不像人脑一样对新事物有很强的识别记忆能力。这些

是静态存储在硬盘上的,如果在运行时就要涉及到内存的动态分配了,这时又有了全局描述符表,局部

描述符表,页表什么的,这些专业术语并不是什么高深莫测,只是些内存地址或一段地址空间的描述符

表,相当于一个人的档案,人家一看到你的档案就能大致了解你是什么样的一个人,同样看到这些表,

系统就知道某个地址可以做为什么用。然后运行多任务程序就是把线性地址按照页表中的记录不停地指

来指去,指向不同的物理地址,操作不同地址中的数据,或读或写。至于具体内存中如何安排,我没记

住,记住的只是一个模糊的印象,好像是最高地址放的是操作系统内核和一些第一时间需要的指令吧,

往下就是什么bss,再就是堆栈,再就是数据,再就是代码了。这些都是由主人分配的,他随时可以变更

规定,做客人的永远只能跟着主人走,除非你想到更好的放置方式然后把他的内核给改了,那样你就是

个牛人了,呵呵。

总算有了些模糊的印象了,不再是以前那样抽象得让你头脑原地打转了,好像这一切和社会上的管

理流程那么相似,莫非系统就是先入为主把一切资源按照他的意思定义好,然后再控制一群跟在他后面

屁颠颠的文件,好霸道啊!完全不民主不平等,这可能就是智能系统发展的一个障碍,呵呵......,个

人观点不可取,切记!

当你的思维方式和数字电路、代码指令一致时,那你就能成为电脑狂人,也许是神人!

有不正确之处,请您指正,我诚心向您请教!

最新网址:www.qisuu.info