“行了,你就别挖苦我。”柳荣华白了他一眼,说道,“你知道我学校学的东西都还给老师了。”
“没事,反正卖衣服也用不上微机原理和C++,”孙轶民笑道,“说来听听,只要工程不是太大,我都可以免费帮你做。”
“恰恰相反,工程小到不能再小。”柳荣华说,“我只需要一个小程序,要求如下:运行的时候窗口是隐藏的,当然我需要界面的时候还是可以用快捷键调出来。它的功能是用来记录电脑使用者打开过那些软件,以及记录键盘按键痕迹。”
“你想要干什么?”程序员的敏感令孙轶民警觉的问。柳荣华这样的要求令他有点意外。
“别问那么多,你就说你能不能做得出来?”柳追问。
孙轶民思忖良久,答道:“你如果想把这个东西放在别人电脑上,想要窃取什么信息的话,恐怕是不实际的。大部分电脑都有安全软件,即便我给你做出来了,也会被秒杀掉。”
“我不装别人电脑,我装自己电脑。我可以让安全软件默许它运行,这样总可以吧?”柳荣华问。
这令孙轶民很不解:“装自己电脑上有什么用?监控自己?难道你还有多重人格症状不成?”
“我说的自己电脑是公司里的那些工作电脑。我现在怀疑员工上班不用功,趁我不在偷偷上网娱乐。我就想看看,他们都在电脑上做了什么?”
“不是有监控吗?”孙轶民反问。
“监控有时候看不清楚。查起来也很累。”柳荣华道。
孙轶民陷入了沉思,良久后他拒绝了柳荣华:“要做这么一个东西对我来说完全没问题,但我不会帮你做。”
“为何?”柳荣华不解问。
“我有我的职业操守,从不碰触黑客行为底线。”孙轶民的解释简单明了。
但柳荣华似乎仍不甘心:“我付你工钱,就算帮兄弟一个忙?”
“那也不行。”孙轶民再次拒绝了他,语气斩钉截铁。此时他在怀疑,柳荣华的目的或许并非他所说的那么单纯。
柳荣华有点失望,哀叹道:“唉……只怪自己大学没有好好读书。”
“唉,作为计算机专业的本科生,你居然对编程知识还处于一知半解的状态,可怜啊。”孙轶民挖苦了一句。
柳荣华白了一眼,叹了口气,自嘲道:“学到用时方很少啊,只怪当年读书的时候太贪玩。还是你觉悟高,半路改邪归正,弃暗投明,学得一身好手艺,不枉费4年青春。”
此时,孙轶民心中唯恐柳荣华对他存在误解,便拍了拍他肩膀,再三跟他重申了一下缘由:“不是我故意不帮你,是有些事我不能做。”
事实上,这确实是他的职业道德底线。他的技术水平完全可以胜任何计算机软件开发以及操作,但他之所以成为了程序员,而不是黑客,正是因为有这条底线存在于心中。
对话不了了之。
临睡前想起柳荣华白天的不情之请,突然心生好奇。尽管他不能答应柳荣华的要求,但职业习惯让他此刻还是在心底构思了一下这个软件功能的实现过程。
思来想去似乎只有一种实现方法,那就是采用一种很久以前听说的API函数,这函数似乎某一本旧书上出现过,但他编了那么多年的程序,从未真正调用过。
孙轶民从床底拖出行李箱,拿出从老家带回来的几本计算机书籍开始翻阅,最终在那本老古董的书籍《Windows程序设计》中找到了这个函数。
这本书的名称看起来极其普通,却是他的珍藏。只因这本书在市面上已经无迹可寻。尽管类似名字的计算机书籍书在市场上俯拾皆是,却唯独只有这一本,因作者讲解思路的细致独到而被孙轶民认可。并且书本内容涉及到了很多比较冷门的知识,是其他很多类似书籍上无法见到的。其中就包括今天他要找的这个“钩子函数”。
他温习了一遍:这个函数的作用其实是为了截获指定一个线程的输入消息,比如键盘鼠标消息,截获之后,程序员可以分析该消息中包含的内容,比如按键消息中包含的键盘上哪一个键被按下的信息。分析完毕你还可以任意处理它:你可以把消息原样返还给原有线程,或者把消息做修改后返还,甚至你也可以拦截该消息——不予返还。
这令孙轶民疑惑:微软为何要安排这样一个API函数供开发者调用?这似乎完全没有必要,而且引起了一定的安全风险。
做了这么多年的程序员,他还是第一次在构思过程中运用到了这个函数。
作者在举例说明这个函数如何使用的时候,顺便提到了另一个发送虚拟窗口消息的API函数SENDMESSAGE,这引起了他的一点兴趣。而这个函数,他在多年的编程生涯中,同样一次都没有用过。
看着书上的函数原型与简介,孙轶民脑海突然闪过一丝灵感。这灵感宛如流星划过天幕般,在一瞬间,点亮了他思绪的夜空。
本小章还未完,请点击下一页继续阅读后面精彩内容!