伴随着一记电流响声,天逐渐亮了,不到一会儿太阳就升起来了,熟悉的蓝天白云和草地再次出现,今天又是繁忙的一天。
我是explorer公司的一个工作人员:一个普通的线程。我们公司就是人类看到的explorer.exe进程,公司的业务主要是提供可视化的图形界面,让人类来操作电脑,我负责的事情是桌面窗口的消息处理,隔壁工位小薇妹子负责的是任务栏窗口消息处理。我们国家是一个Windows体制的国家,有很多公司,像notepad公司是做文字编辑业务的,calc公司是做计算器业务的,还有iexplore公司是做网页浏览业务的,别看我们两个公司名字很像,负责的业务可不一样,顺便提一下,曾经有很多人想抢他们的生意,比如有个firefox的公司,抢了不少市场,后来又来了一个chrome公司,iexplore公司的业务那是一落千丈,门可罗雀啊。
听老一辈的说,我们国家实行的是32位的Windows体制,每个注册的公司都有4GB大小的场地,在他们人类看来,就是每个进程有4GB的内存地址空间,我觉得已经很宽敞了。据说还有实行64位体制的国家,他们那里的公司场地比我们大得多,不过我是没见过了。虽然有4GB大小,但是这其中有很多地方是禁区,不让我们去的,这里面有个近公司一半大小的区域听说是特权区域,我等普通员工是从来没资格去的,里面到底是啥,我一直很好奇。
我们线程每天的任务就是执行一串串的代码指令,我的工位上有一个大大的工作栈,执行代码指令过程中用到的数据资料存放就要靠这些栈来存,我天天要执行无数个函数,要是没有这个栈台,我都找不到之前忙到哪一步了,迷失在代码海洋里,有时间给你们慢慢聊这一段,可麻烦了。每天忙死忙活的,公司福利差的要命,当初来的时候说是国企编制,来了之后才知道被骗,这里只是政府的一个外包公司,最多是跟政府关系比较近一点,压根不是国企。哎,不说了,有人来办事了,有一个消息包裹到了。
我拆开包裹,原来是一个双击消息,目标是chrome图标。你看我刚才还说iexplore生意不好了吧,话说这一大早的这是谁又要上网了,不好好工作。抱怨归抱怨,我还是老老实实的去执行任务了。
顺着图标的目标链接,我找到了chrome的程序文件,接着准备好资料,去到了真正的国企部门:kernel32,这个部门可厉害了,从名字都能看得出来,是个很核心的单位,主管着这个国家所有重要的事务,所有进程公司要工商登记、线程出生登记,办户口,读内存,读硬盘都要经过这里。政府为了我们办事方便,在所有公司都外派了这个部门的办事处,除此之外还有user32部门,ntdll部门等等都设置了办事处。
扯远了,这次任务是chrome公司要开张,我直接来到了kernel32部门的CreateProcess窗口,我都轻车熟路了,国企就是大,在里面绕了半天,我的资料被各种盖章复印处理,最后根据指示来到了ntdll部门的ZwCreateProcess窗口,这个窗口办事程序很简单,就几句指令,其中有一句sysenter很神秘,听说这是政府部门的入口,每次进去都叫做系统调用。据说进去之后的世界很精彩,这里面藏了国家太多的机密,虽然前面经过安检了,但为了国家安全起见,所有进去的人出来后都要被消除记忆,所以我还是不知道里面发生了什么。但我一直很好奇,找个机会一定要想办法逃过记忆消除。
当我回过神来,我的事情已经办好了,手里拿到了chrome公司社会统一注册码:314号。顺着原路准备回去,在经过kernel32办事处的时候,被叫住了:“哎,你事情还没忙完了就想跑了?”
哎,我恍然大悟,我这脑袋,公司虽然注册好了,但是是个空壳公司,还没人管理呢!在我们国家,注册完公司,还得负责把公司创始人:主线程给建立起来。
于是我又去到CreateThread窗口,又绕道一大圈来到ntdll部门的ZwCreateThread,最后再次来到神秘的sysenter门口,一个哆嗦,大脑再次断片,线程已经建好了,拿到了这个新线程的员工编号:0x9527。
事情总算是忙完了,剩下的事情就是chrome公司自己去运营了,我可不管了。
这个单子总算处理完了,想着休息一会儿,没想到一堆新的消息包裹等着我去处理,我快崩溃了。
打开一个个包裹来看,还好大部分都是鼠标移动消息,处理起来很简单。一阵忙活过后,总算处理干净了,正好奇为什么没有新的消息包裹到来,隔壁工位的UI线程妹子说,现在chrome窗口出来了,我们可以休息会儿,让他们忙活吧。
刚聊了没几句,公司里广播响了起来:大家都静一静,别聊天了,好好干自己的活,361杀毒公司要来进行安全检查了。361杀毒公司来头可不小,虽然不是政府部门,但是承包了国家安全工作,道上干过几架后再也没人敢惹。我们赶紧回到自己工位坐好。很快,361杀毒公司的人来了,戴着墨镜,大声说到:“我们在你们公司代码仓库里发现了一个可疑的DLL模块,没有经过政府认证,我得检查下你们所有员工有没有内鬼。”
所有线程员工都倒吸了一口凉气,这可是重大安全事故!没多久,墨镜男走到了我这边,看了看我的工位,看了下我做的事情。然后继续走向下一个,我算是松了口气。
大约过了几分钟,墨镜男从公司一个不起眼的角落里揪出了一个陌生员工,反正我是没有见过。“这个人不是你们公司的,被人远程注入进来的,在这偷偷和别的国家通信,借你们公司掩人耳目!”,眼镜男说到。
“还真出了内鬼”,大家七嘴八舌议论到。
“打算怎么处理呢?”公司老大上前问到。
“你们公司现在已经不干净了,得解散重新组建。”,墨镜男登记完后就离开了。
留下我们凌乱中。
“大家下辈子再见吧,我们马上就要死去了”。
悲伤在空气中弥漫着,不知道361杀毒公司做了什么,一会儿一个个员工同事都消失了,所有的栈台和堆区都慢慢消失,最后我自己也消失了,再见explorer。
·
·
·
几秒钟后,不知道谁重新建立了我们,explorer公司又重新开张了,我又重获新生,原来我们负责的业务太重要了,没了我们人类都没法操作电脑了。
继续开始忙碌的工作,很快到中午了,人类吃午饭去了,趁着这会儿空当,我站起来想活动活动,瞄了一眼我的工作栈台,已经一层层码了挺高了,感觉要是等会事情很复杂的话,很快就要触顶了啊。
我问休息区的公司老大主线程:“这要是工作栈台满了可咋整?”
“一般来说不会的,相信国家,我们的代码是国家队写的,很少出现这种错误的”
“很少,那还是有可能了?”,我追问到。
“额,如果你工作中出了差错,还是有可能的”
“哦,原来如此,我工作很认真,不会出差错的”,我自信的说
“希望如此吧”,老大拍拍我的肩膀
“那要是有人出了差错,栈满了会出现什么事情呢?”我还是很好奇的问
“这个情况有点复杂·······我一时之间给你说不清楚”,老大欲言又止
“那犯什么错误会导致栈满呢?”我又追问
“额,那什么,我还有点事,咱们改天聊”说完老大就跑了,留下我一个人若有所思。
闲逛着来到了公司的堆区,这里是所有线程们共享的空间,一般需要动态生成的对象都放在这里。编号0x1122号线程正在这里忙碌着。
“老弟在干嘛,别干了,过来坐会儿”,我向他打招呼。
“我在整理堆块啊,这次我倒霉轮到我了”,他回答到。
“哈哈,辛苦了兄弟,等会我要用的时候就省事儿了”。
正想去看看他的工作,突然收到老大通知,有新消息来了,赶紧去处理,我急忙赶回工位,继续工作了。
未完待续·······
彩蛋1
夜已深,361杀毒公司的实验室里还灯火通明,我是墨镜男小周,今天从explorer公司揪出来的假冒的Kernerl32.dll到底是怎么进入我国的,背后到底有怎样的阴谋?已经一个下午我还是一筹莫展。
彩蛋2
“大人,豺狼号今天上午失去了联系,我们要不要采取行动?”
“不着急,Linux帝国还有更重要的事情,回过头再收拾他们,这件事先别告诉首领”