Me

4/19/2017

流氓与功能 -- Windows 下某些软件的藏身之所


除了工作中使用的 Windows XP,除了帮助别人修理电脑,几乎没有什么机会操作 Windows 系统。而近来几乎也听不到周围有朋友说电脑中毒、不好用等的情况了。当然这个原因可能有几个:比如在移动网络速度大幅提升后,用移动设备的人多了,使用桌面计算机的用户减少了,有关桌面计算机软件的问题自然也就少了;还有可能则是自己平时几乎不使用 Windows,也不关注,与周围隔绝了;当然还有可能是网络发达,普通问题靠搜索,靠各种“管家”就可以解决了。

因最近本人的工作电脑出现了一些无法解释并由本人修复的问题的缘故,而让我对 Windows 下某些软件的行为有了新的认识。下面详细说明。

前段时间本人工作电脑中的 Outlook 突然无法连接公司的 Exchange 服务器,导致无法正常使用 Outlook 进行工作。尝试重新建立帐户,删除配置文件等方式均无法修复。最终联系公司IT部门。该部门同事给我的回复很简单:“重做吧……”。我其实很反感把重新安装系统叫做“重做”,不知道因为什么。另外我也非常不赞成因为一些小问题就重新安装系统的做法。当然这些都是我主观想法,公司的电脑,那还是交给专人去解决吧。IT的同事效率很快,半天内就把系统装完然后又让我抱回办公室了。
让我非常不满的是,这次他们使用的盗版盘跟一开始我用的不同。在此顺便再啰嗦强调一句,我已摆脱盗版软件多年,坚持不使用盗版,也常建议别人不要使用盗版,对于乐意听我唠叨说教的朋友,我也会多解释、普及一些相关知识给他们听。当然在公司工作,我没有能力决定我是使用盗版还是正版。回到正题。
这个盗版系统同样是他们通过十多年前的老方法 -- Ghost 还原-- 装到硬盘的,与之前那个盗版系统的区别是,这个系统里增加了相当多的广告链接,一堆我没听说过的浏览器。还有国内常见的某文件压缩软件,某看图软件等等。除此之外IT部门同事又给我装了某电脑管家,某杀毒,某输入法。按我的使用习惯,先把这些挨个从硬盘里请走,然后只安装 7zip(更多情况下是用来计算文件的hash值,压缩和解压其实更多会用到windows自带程序以及winrar)和 Firefox。重启电脑,问题来了,无论我如何修改浏览器主页,它都会自动被改为同一个网站,该网站直接会重定向到某知明输入法母公司的主页。无论是 Internet Explore 还是 Firefox。即使用 regedit 把 IE 的 start page项删除也不行,用注册表编辑器的搜索功能反复搜索改主页地址并删除有关项和键值也无法解决。
更令人苦恼的是,在快下班前的一个小时内,系统无故在启动后3分钟内自动重启,让我没有任何还手之力(我已排除绝对不是CPU散热不良的问题,也基本判断不是其它硬件故障)。好不容易在某次重启后将设置改为计算机出现故障后不自动重启,但没过一会儿,直接蓝屏了。强制启动后几分钟内不再自动重启,取而代之的是蓝屏,具体提示信息现在已经忘了。无奈之下,第二天又联系IT部门。
他们测试时并没有重现问题,后来我说把网线插上试试。之后听说插网线后没几分钟就出问题了。起先他们怀疑是网卡驱动的问题,后来有问我是不是中毒了。我说中毒的可能性是没有的(我对我的计算机使用水平真的是这么自信)。他们后来又把某杀毒装上杀了杀毒,后来告诉我说杀出来一些病毒,现在没问题了。
我又把机箱抱回办公室,试验了一阵子,确实是没问题了。但我好奇的是,病毒是哪来的。我找到了查杀日志,日志中查到的病毒位置并不是我存放我文件的目录。而从名称看,可以确定是我之前提到的被盗版系统制造者加入的广告链接。
好吧,既然系统稳定了,那看看主页被强制篡改的问题是不是一并被修复了。结果很是令我失望,IT部门同事的答复是,那盗版系统就这样了,也没办法,你用某电脑管家把主页锁定吧。按我的使用习惯,我是坚决不会允许这么一个设计丑陋、耗用资源、又有些“流氓”特性的“管家”存在与我的计算机中的,但为了能够不受主页被改的困扰,也不想再麻烦IT部门同事,同时也为了赶快回到工作中,决定暂时有条件的妥协一下。这些条件如下:关闭了该管家的全部网络功能,关闭了该管家自启动的功能。简单的说,唯一保留的就是锁定浏览器主页这一项。然后彻底关闭。这样一来,其实也跟没有安装差别不大了。当然不是没有差别,具体后面详表。
在这种状态下使用了一段时间,系统基本运行正常。也没再多想那“管家”的问题。鉴于前一天清理某家属工作电脑垃圾时偶然发现的当今软件的“另类”藏身之所,于是手动修复这一问题的冲动再次点燃,查找无比的顺利,一顿 shift+delete,delete……,然后“请走”某管家,重新启动系统,测试浏览器主页,嘿,终于有恢复正常了。

哦,my ……,我这个前言、背景写的有点儿长了吧。
太晚了,明天再说重点吧。

现在开始正式说这个藏身之所。
以往的 Windows 下的程序默认都会把自己的有关文件,执行/启动程序等等都放到 Program Files 这个目录下以产品或公司名称做为文件夹名称下面。比如 Tencent,Adobe,Microsoft等等。而程序的配置文件,用户配置文件等等多会放在用户目录下。XP 系统里这个目录位于 Documents and Settings,之后的 Windows 系统则是 Users 目录。以下内容基于 Windows XP。

Documents and Settings 目录下方是由用户名组成的文件夹集合。每个用户名文件夹下由存放了对应用户的配置文件等等。假设一个用户名叫做:Test,那么在此文件夹内就会有一个 Test 文件夹。进入该文件夹后就会发现一些熟悉的文件夹:比如收藏夹(Favourites)、开始菜单(Start Menu)、我的文档(My Documents)等等,当然还有“桌面”(Desktop)。这些文件夹的功能自然就不用说了。但这其实只是一小部分而已。因为当你查看这个文件夹大小时可能会吃上一惊,它怎么占用了这么大空间?这是因为有相当多的用户数据默认都要存放到这里。这包括你的文件访问记录,上网记录,浏览器插件、Outlook 数据文件、微软 Office 模版、宏等等……。

如果你的文件夹选项设置为显示隐藏文件,显示受保护的系统文件和文件夹时,那么会看到另外几个文件夹。比如 Application Data,Local Settings。根据文件夹名称的字面意思也不难理解它们是做什么用的。这里附上微软官方介绍:https://technet.microsoft.com/en-us/library/bb490855.aspx

其中 Local Settings 里就是默认存放应用程序数据的位置之一。附带说一句,如果喜欢重装系统,又不想让以前应用程序的设置(比如浏览器插件,Office模版等等)丢失的话,可以把这个文件夹内的内容备份一下。既然这是一个默认隐藏的受保护的系统文件夹,就难得不成为那些行为不轨的程序干脏活、私活的活动中心。

拿我之前所说的工作电脑为例,里面有某知名输入法厂商的文件夹,进去会发现,除了输入法有关的配置文件外,还有此厂商的浏览器可执行程序,自动更新可执行程序等等。呵呵,我只是安装了输入法,怎么还出来浏览器的运行程序了呢?呵呵,因为它是个流氓,利用自己的某些功能干了点儿私活。所以大概有不少人都有类似的疑问,咦,电脑用的好好的,不知什么时候就装了个某某程序出来了。

再找找,又发现了某电脑管家的文件夹,里面创建了 Android,某某Phone,某某Download,某某杀毒等一些列以该厂家产品名称命名的文件夹,其中有大量的可执行程序文件,即exe为扩展名的文件。不要小看这些文件啊,它们在后台同时悄悄运行起来的话,会让你的老电脑有些吃不消的,而且不一定哪一天,你打开电脑就会发现一个未经自己安装的小程序出现在你的桌面。

再拿我家属的电脑为例,其抱怨说偶尔会在电脑右下角弹出一个小方框的广告,必须点角上的小叉才能关掉。碰巧那天修理电脑时这货正好显出原形,顺藤摸瓜,用任务管理器这种最直接的方式查到异常进程名称,然后用系统的文件搜索去搜索该名称,顺利定位到此小广告的位置 -- Documents and Settings\用户名\Local Settings\Application Data\某知名视频网站\**.exe。为了确认此即广告来源,在任务管理器内结束了该进程,广告直接消失。判断无误,然后直接按着 shift 删除了这个 exe 文件。这就算解决了吗?还没有。

又有点儿晚了,明天再说。

接上文。

其实这样的删除可能只是治标不治本。为了保证能完全解决问题,还需要仔细想想有没有其它方法可能对这个可执行程序实现其功能。比如,在这个示例中我只删了test用户文件夹中对应的内容,那这些喜欢干私活的程序会不会通过其它用户运行呢?再比如,这些程序会不会还给自己设置了恢复程序,以便在被删除后重新把自己“制造”出来?

1. 我的第一个猜测是正确的。当我浏览了 Documents and Settings 下面的 Administrator、All Users、Default Users 以及文件夹后,也同样发现了上面提到的那个某知名视频网站的广告程序。于是我毫不犹豫的按着 shift 键进行了删除。之后没有听到家属反馈说再有此程序出来干扰使用。
2. 在我上述提到的那些程序中,有相当多的程序在其安装目录或是现在讨论的用户文件目录下存放了自己的保护程序、或恢复程序还有自动更新程序。这些程序多数都以**protect、update等词命名。其实程序制造商的本意大概都是保护自家的程序不受其它程序、病毒等破坏,保证其程序能够正常运行,并且让用户能够一直无忧的使用其最新的产品。可是有不少事物都有着两面性,比如那些喜欢搞小动作的、干私活的程序就会借助其自身的这个功能,在自己被破坏后通过它们实现原地满血复活。

虽然没有亲自去做测试,但这种可能性是非常高的。

下面简要的说明它们是如何通过自动更新、保护程序实现上述功能的。

现在多数应用程序都要使用网络功能,除了实现本身应有的功能外,目的还有改进、提升体验、修复漏洞等等。当然对于“那些”程序来说,它们通过网络要做的事情可能就更多了。但是光有诸如update.exe的可执行文件还是不够的,它必须要接受来自用户、系统下达的命令才可以运行。

很多程序为了不需要让用户自己去寻找升级按钮,提高程序易用性,会在Windows系统的“任务和计划”中增加定期检查更新的计划,从而免去用户亲自查找更新的烦恼。这其实是个很贴心的想法,它省去了用户命令的环节。但也是这个功能,让别有用心的应用程序干了些脏活。最终结果便是本文前面提到的,用户好奇的会问,我用的好好的,不知什么时候就出来个这个浏览器,有出来个这个下载、那个影音、那个管家等等。

因此没事常检查一下“任务和计划”中的定期任务,也可以了解自己计算机的状况。如果不确定某个计划的具体作用,可以点右键菜单查看其属性,详细了解一下调用的文件位置,再查看该文件的属性了解详情。而我为了省事,在我的工作电脑上也添加了两个任务计划:1. 每个工作日定时进行文件备份、然后复制到公司的文件服务器;2. 每天定时关机。

另外可以配合实现以上功能的,还可以通过在系统内增加服务完成。这个做法其实已不是什么新鲜事。但仍然要留有足够的警惕心。俗话说,最显眼的地方,也是最隐蔽的地方。打开系统服务也很方便,直接运行 services.msc 命令即可,或者在“我的电脑”右键菜单“管理”中也可找到。为了查看方便,可以先把服务按照某个方式排个序,比如按照启动状态,描述,名称等等。对于陌生的服务,可以点击属性详细查看其目标文件位置,然后最终决定停止还是保持此服务的运行。

下面再通过实例,介绍另一个经典、隐蔽的位置:注册表。

开始曾说过我工作电脑重装系统后浏览器主页被劫持的事情。当时也曾试过在注册表编辑器内查询关键字寻找蛛丝马迹,可惜没有成功,靠修改internet explore中start page的值也无法成功解决。直到后来在 Documents and Settings\用户名\Local Settings\Application Data\ 下发现了某国内著名搜索公司的文件夹后,决定也要在注册表编辑器内对该公司在我电脑的行为做个了解。毕竟我是从来没有在电脑上安装、使用过它的产品。

打开注册表编辑器 regedit,搜索该公司名称,一个注册表项引起了我足够的注意,我甚至有些略带激动的感觉。因为我发现了主页被篡改的真正原因。具体可见以下屏幕照片。当然我并不确定这个项却是此家公司的程序而为,亦或是某个公司的栽赃嫁祸之作,因为篡改后的网址会重定向到国内某知名输入法的网站。不管怎样,我的问题确实得到解决。

写本文的目的就是想介绍下不少干脏活、私活软件的藏身之所,没想到却花了三个晚上的时间。算算居然也有上千个字了吧。
为了方便参考,还是写个简要总结。
1. 用户目录 Documents and Settings\用户名\Local Settings\Application Data\
2. 控制面板的“任务和计划”
3. 服务,可运行 services.msc 查看
4. 注册表编辑器 regedit
5. 程序本身的设置。(很多软件功能和流氓行为兼备,为了限制其流氓行为,可在其软件设置中进行调整,一来减轻系统负担,让自己的电脑运行顺畅,二则可以有效避免其露出马脚。)

如果使用 Windows 的过程中曾经遇到过文中提到的类似的软件行为,可以尝试在上述位置检查。如有必要可删除相关文件。其中 1 和 2 位置下,即使误删文件,也不会对系统造成严重损坏,可能造成的影响是某个软件的功能异常,重新设置或重新安装此软件可解决问题。4 中使用要非常慎重。5 要结合程序和个人使用偏好进行,故在文中没有详细介绍。


最后一点,删文件要慎重,没有足够的把握,不要按着 shift 去删除。


完,2017-4-19  口十

3/31/2017

工作琐事一件

1. 倒休
公司有个规定,就是年前加班未休完的倒休必须要在次年三月末休息完毕,否则剩余倒休天数全部作废。
由于工作实在过于忙碌,多数有倒休的人往往是有好几天不得不被作废掉的。我也有幸位在这部分人之间。好在今天至今天3月30日为止,只剩12小时没有休完。
中午饭后向A领导请示:“xx,我还剩一天半倒休,不知今天下午和明天可不可以休完呢?”,我说话的语气明显带着大量的不自信,连我自己都觉得说完这话后矮了半截。
A领导照例没有直面我,思考片刻后看着电脑的邮件说:“xxx工作你开始做了吗?”
“哦?……”,其实我根本不知道这个工作要今天进行。
A似乎看出我还不知道,问B领导,“xx,这个邮件没有转给小T吗?”
B领导急忙说:“哦,我刚看到,还没有。”
这时的我已认识到没有必要在A前等待回答。转身回到座位,查看了B领导发来的邮件。

按照B领导先前群发邮件的周内工作计划,我的任务中这项工作不是优先的。所以按理说我只要完成另外两项比重紧急的工作即可。为了能够最后用完剩余的倒休,我更是抓紧时间把这工作提前完成了。所以才有了中午向A请示的“资本”。

B转发来的邮件内容中看,RD的发出日期其实就是今天。按往常大家转化此类文件的速度,通常要3-4天。而从A的语气来推测,他大概是要我在清明节放假(也就是后天)之前能完成并发送至各部门。所以留给我的时间并不太多。

虽然A对我申请使用我的倒休假的反应让我的心情极为失落。但作为一个职业蓝领,工作还是要讲究职业素养和职业道德的。除去下午一些琐事的时间,我用了近3个小时修改了文件并打印交由C开始校对。(之所以说是修改,是因为在今天B领导发邮件之前几天,曾告诉我先开始准备。当时RD的文件还没有到,所以只能参考之前的文件进行,可惜C升职之前做的那个文件无故损坏,我只好从零做起。今天RD的文件到达,做起来相对容易些。)其实干这个工作很没有技术含量,就是把RD发来的文件按照本厂的条件进行转化,说简单些基本就是在微软的Excel里填数字,改格式,改格式,填数字;在用简单的公式计算面积体积重量等等。偶尔再用AutoCAD画几个图贴进来。

下班走之前,办公室剩下A和RD出差来的某领导,A对我说:“xx,那个工作做(的)怎么样了?”
“做完了,打出来交给C校对了”
大概又隔了十几秒,A又对我说:“那一天半的倒休,就当给公司做贡献了吧,另外后天(星期六)不也还要上班嘛。”
“行”。
“要没什么事儿,就别(发音bai)休息了……”
“行”,
我冷冷地接着说,“我先走了”,话音未落,我走出了办公室。

我是不高兴时跟人争论或听别人说话时往往会过一会儿才能回过味儿来的人,头脑里才能想出回应别人的其他更合适的词汇。A的最后那句话,又一次刺到了我,或者我已经麻木不仁了,他说什么我也不会再争论。因为我知道我争不过,在A手里,我只是个软柿子。

但我又不能憋着不说,因为长此以往会对我心理健康有严重影响吧。所以再最后说说我对这个倒休问题的看法。

倒休是公司对其员工加班后的补偿,在我看来这样的休息是员工合法、合情、合理的权利。在理想的情况下,作为管理层,在上述这种存在效期的情况下,应当是尽可能主动提出让自己的员工休息。一则员工可以在忙碌间做个调整,二则员工也会因管理者的这种爱护下属的行为抱有感激之情,而在后续工作中继续无悔的出卖自己的劳动力。这本是个双赢的做法。可在这方圆九百多万平方公里中成千上万的企业里,又有多少管理者会抱有这样的想法呢?
我们再退而求其次,管理者虽不主动,但有员工申请使用倒休时绝不拒绝。因为他清楚这是自己的员工该有的补偿。这种情形下的员工,其工作积极性仍能保持大部分。
最后一种情形,也许就是我今天碰到的这种情形了。“要没什么事儿,就别休息了”。那意思就是,这个加班换来的倒休,要有事才能使用。使用的主动权已经几本上不在员工手里了。长此以往,其结果可想而知。

有一天,当这样的管理者再问员工:“xx,明天有事吗?没事来加个班吧”。员工会做什么回答呢?

3/05/2017

近日纪事

一:大意
上周日(2017-2-26)带着燃去玩滑梯。此前已知他有玩滑梯的经验,所以没有多虑。扶着他走上台阶,慢慢引他坐在最高处即将自然滑下的位置,然后放手。
前三、四次都还算顺利,只是由于惯性的缘故在落地后还会前倾,腿软双膝跪到土地上。最后一次依旧顺利滑下,我自己还在暗暗高兴他能玩的这么高兴。可就在滑到地上的最后1/x秒内,他的上半身随着强大的惯性直接接触到了地面,还没有学会自我保护的双臂也顺势甩到了身体两旁。
发现不妙的我此时还略感庆幸,他居然没有哭。一步上前双手抓着他的小肩膀把他轻轻扶起。随着小脸被抬离地面,可怜的哭啼声也伴随而起。
小小的脸庞上到处都粘着潮湿的泥土。面颊上已有一纵行土黑色被泪水浸湿的泥流下。顺着这道黑泥向上,眼睫毛上也挂满了细细的黄土。额头上的浅色蓝黄相间的毛线帽子也堆上了一层土黄的小颗粒。
从那哭泣张开的小嘴巴中也可以清楚地看到还没有来得及被口水混合的土壤满满的堵在下牙龈和嘴唇之间。嘴唇上还有点点血迹。
我顾不及周围其他人对这始料不及的惨状的反应,迅速把他抱离滑梯,开始“救援”。万幸的是潮湿的土没那么容易被风吹散落到眼睛里。我用指尖小心翼翼的做着拨琴弦的动作,试图去弹掉睫毛上的土,可惜粘的实在太牢固,最后只好跟燃说,“闭-眼,闭,上,眼,睛,”,然后用手掌从上至下轻轻缕过。此时他也哭声不在,静静的听我指挥。
更大的问题出现在嘴里,忙中出错的我没有去用手一点点把口中的土捏出来,而是打开水杯让他喝水,想让他把口中的土随着水吐出来。我给他做吐东西的动作,见他喝完一口不知所措,我就拿过水瓶自己吸了小口然后吐出,随后又把水瓶给他让他再试。我对他说:“阿……”,从那略张的小嘴中已看不到此前入口泥土的一粒。结果可知,两三次的喝水早已把残留在口内的泥土带到了肚子里。
摘下帽子抖抖,拍拍裤子。基本清理完毕。又小玩一阵,如无事般牵着手回家。

这滑梯与他之前玩的滑梯相比,坡陡了不少,又是直的,所以下滑速度比较快。这次是我太高估了他已得的成长经验,回想起来仍是心有余悸。所幸滑梯底下是片土地,恰巧几天前融化的雪又把这土灌的软软的。不然最轻的也是要破相了。

二:Tech Interview (2017-2-23)
难得有公司赏脸能联系我做个Interview,更何况这次是心慕已久的欧美企业。这事对我来说始终是个新鲜事物,每次面临时都是忐忑不安,心潮澎湃。这次用心准备了一下,认真研究了常见的问题,并把自己写的回答打在了记事本里供我随时参考或修改。可人家是要先进行Tech interview的,而我是跨行,所以仍是略显无从下手。到夜间约好的时间之前就已在测试、熟悉面试网站。敲击键盘的手指都有些开始抽搐了。

终于开始,第一个问题还是标准的开场问题,我尽量让自己的回答多一些相关性。可我这平时只能靠跟Siri和燃交流进行练习的口语水平已经远远落后于每日查看英美本土媒体新闻所获的阅读水平和看剧努力渐渐脱离字幕(装(读niu) B)的听力水平。所以在表达我的想法上稍有困难,也让我暴露了我的弱处。对方利用这一点进而想了解我这弱势所在,结果就是我败了。

之后因为糟糕的网络,对方只好断开视频,保留音频,但即使这种情况下整个过程也是断断续续,其中甚至只好打字进行。而有几个问题我自认为也是没有打到对方想要的焦点上,而有个回答则可能让对方对我在某些领域的了解情况上产生不少怀疑。无奈,我在这些场合总有可能做到嘴比心快,但其实我可不是那么想的。

到最后对方以为时已晚提出了结束的要求。我看看表已接近夜十一点,不知不觉中居然也说了四十多分钟。

此事已过了些天,因为没有下文。所以我估计我已经是被pass掉了。当然最大的原因是我自己把自己搞砸了。本不想提及此事,却因今日加班略有闲时,在某社交平台逐个向老友发去问候,结合自己现状,略感失落。即做记录亦用作自省。

三:工作 (2017-2-28)
限于此为现状,仅作简要记录。
我刚入职时办公室内有一位领导,另有七位干活儿;如今三位领导,另有五位干活儿。我被通知要接下其中一同事升任后所留下的工作的90%,作为补偿,原有工作的20%转给了其他同事。其实人家是找我谈的,但看白纸上已经都签好了字,所以不如是当做被告知一下更好。我有异议,但只是应声好吧。

我很害怕如此会再出现像去年那样忙碌的状态,进而真的崩溃掉。思考再三,我大概是可以挺过来的。原因若干:
1. 经过在这公司内近三年的历练,心理上已有了足够的准备已应付突如其来的工作压力
2. 我慢慢的去学着同领导沟通,慢慢的说服我自己干活不要“太快”(无偷懒之意)
3. 我有若干爱好容我在压力之下无处发声之时释放自我

去年那样的忙碌对我来说宛如梦魇,难以忘却。除了心理,生理上留给我的是之后开始时常肿胀的右腿膝关节。

常常强调要保持乐观,而在多数时间我也是这么做的。但有时太多的乐观也会让你失去自我,没有方向。你突然发现自己好像是个阿Q,你会问自己为什么要这样乐观,为了什么?也因此,偶尔的悲观、压抑、不快倒是身心调节的一方良药。

我始终记得在第一家公司工作的最后几天,那韩国领导跟我谈话,其中之一大意是他年轻时跟我一样,就像全身棱角分明的一块儿石头,但最终还是要磨圆磨光的。他讲的没错,但我无法接受这样的过程。我固执的认为我是一块儿无法磨光磨圆的石头,到最后,还是有处或几处尖尖的棱角,让抓着的那只手始终犹豫,仍掉还是留下?

但这就是我。