2006年05月09日

1. 开始-运行-控制面板-声音、语音和音频设备,进入后把将音量图标放入任务栏勾打上。

2.从其它机器上拷贝一个文件c:\windows\system32\sndvol32.exe。

3.利用安装盘

   光驱提示符:
   CD i386
   expand sndvol32.ex_ c:\windows\system32\sndvol32.exe

1.重新启动电脑按F8进入带命令提示行的安全模式

2.执行命令 assoc .exe=exefile(注意:assoc与.exe之间有一空格),屏幕显示 .exe=exefile

3. 重新启动

2005年09月17日

宗旨:学习日语,F*cking Japanese!!!

こんばんは. ko n ba n wa

晚上好.

おはようございます. o ha yo u go za i ma su

早上好.

お休(やす)みなさい. o ya su mi na sai

晚安.

お元気(げんき)ですか. o ge n ki de su ka

您还好吧,相当于英语的”How are you”,一种打招呼的方式.

いくらですか. i ku ra de su ka

多少钱?

すみません. su mi ma se n

不好意思,麻烦你….相当于英语的”Excuse me”.用于向别人开口时.

ごめんなさい. go me n na sa i
对不起.

どういうことですか. do u i u ko to de su ka
什么意思呢?

山田さんは中国语(ちゅうごくご)が上手(じょうず)ですね. ya ma da sa n wa chu u go ku go ga jyo u zu te su ne

まだまだです. ma da ma da de su
没什么.没什么.(自谦)

どうしたの. do u shi ta no
どうしたんですか. do u shi ta n de su ka
发生了什么事啊.

なんでもない. na n de mo na i
没什么事.

ちょっと待ってください. cho tto ma tte ku da sa i
请稍等一下.

约束(やくそく)します. ya ku so ku shi ma su
就这么说定了.

これでいいですか. o re te i i de su ka
这样可以吗?

けっこうです. ke kko u de su
もういいです. mo u i i de su
不用了.

どうして. do u shi te
なぜ na ze
为什么啊?

いただきます i ta da ki ma su
那我开动了.(吃饭动筷子前)

ごちそうさまでした. go chi so u ma de shi ta
我吃饱了.(吃完后)

ありがとうございます. a ri ga to go za i ma su
谢谢.

どういたしまして. do u i ta shi ma shi te
别客气.

本当(ほんとう)ですか. ho n to u de su ka

うれしい. u le si i
我好高兴.(女性用语)

よし.いくぞ. yo si i ku zo
好!出发(行动). (男性用语)

いってきます. i tu te ki ma su
我走了.(离开某地对别人说的话)

いってらしゃい. i tu te la si ya i
您好走.(对要离开的人说的话)

いらしゃいませ. i la si ya i ma se
欢迎光临.

また,どうぞお越(こ) しください. ma ta do u zo o ko si ku da sa i
欢迎下次光临.

じゃ,またね. zi ya ma ta ne
では,また. de wa ma ta
再见(比较通用的用法)

信(しん) じられない. shi n ji ra re na i
真令人难以相信.

どうも. do u mo
该词意思模糊.有多谢,不好意思,对不起等多种意思,可以说是个万能词.

あ,そうだ. a so u da
啊,对了.表示突然想起另一个话题或事情.(男性用语居多)

えへ? e he
表示轻微惊讶的感叹语.

うん,いいわよ. u n i i wa yo
恩,好的.(女性用语,心跳回忆中藤崎答应约会邀请时说的)

ううん,そうじゃない. u u n so u ja na i
不,不是那样的.(女性用语)

がんばってください. ga n ba tte ku da sa i
请加油.(日本人临别时多用此语)
ご苦労(くろう) さま. go ku ro u sa ma
辛苦了.(用于上级对下级)

お疲(つか)れさま. o tsu ka re sa ma
辛苦了.(用于下级对上级和平级间)

どうぞ远虑(えんりょ) なく. do u zo e n ryo na ku
请别客气.

おひさしぶりです. o hi sa shi bu ri de su
しばらくですね. shi ba ra ku de su ne
好久不见了.

きれい. ki re i
好漂亮啊.(可用于建筑,装饰品,首饰,画,女性的相貌等等,范围很广)

ただいま. ta da i ma
我回来了.(日本人回家到家门口说的话)

おかえり. o ka e ri
您回来啦.(家里人对回家的人的应答)

いよいよぼくの本番(ほんばん)だ. i yo i yo bo ku no ho n ba n da
总算到我正式出场了.(男性用语)

関系(かんけい) ないでしょう. ka n ke i na i de sho u
这和你没关系吧?(对八卦的人常用的一句话)

电话番号(でんわばんごう) を教えてください. de n wa ba n go u o o shi e te ku da sa i
请告诉我您的电话号码.

日本语(にほんご) はむずかしいことばがはなせませんが,やさしいことばがなんとかはなせます.
ni ho n go wa mu zu ka shi i ko to ba ga ha na se ma se n ga ya sa shi i ko to ba ga na n to ka ha sa se ma su
日语难的说不上来,简单的还能对付几句.

たいへん! da i he n
不得了啦.

おじゃまします. o ja ma shi ma su
打搅了.到别人的处所时进门时说的话.

おじゃましました. o ja ma shi ma shi ta
打搅了.离开别人的处所时讲的话.

はじめまして. ha ji me ma shi te
初次见面请多关照.

どうぞよろしくおねがいします. do u zo yo ro shi ku o ne ga i shi ma su
请多关照.

いままでおせわになにました. i ma ma de o se wa ni na ni ma shi ta
いままでありがとうございます. i ma ma de a ri ga to u go za i ma su
多谢您长久以来的关照.(要离开某地或跳槽时对身边的人说的.)

お待たせいたしました. o ma ta se i shi ma shi ta
让您久等了.

别(べつ)に. be tsu ni
没什么.当别人问你发生了什么事时你的回答.

冗谈(じょうだん) を言わないでください. jo u da n o i wa na i de ku da sa i
请别开玩笑.

おねがいします. o be ga i shi ma su
了.(如果是跪着时说这句话,那意思就是”您了”)

そのとおりです. so no to ri de su
说的对.

なるほど. na ru ho do
原来如此啊.

どうしようかな do u shi yo u ka na
どうすればいい do u su re ba i i
我该怎么办啊?

2005年09月01日

人类灭亡时间表

2005年2月,朝鲜退出六方会谈,并声称己有核武.

2005年4月,国民党主席访京,两岸和平统一希望再露生机.

2005年8月,朝鲜再次参与六方会谈,会上提出美军第7舰队撤出日本的要求,美方拒绝,会议毫无结果,朝鲜再次宣布退出六方会谈.

2006年3月,美国与伊朗关系恶化,美国向联合国提出经济制裁,五个常任理事国除中国弃权外,其余一致通过议案.

2006年4月,伊朗宣布退出联合国.

2006年9月,中,美,日,俄,韩5国再次要求朝鲜重返谈判桌,朝鲜拒绝.

2007年1月,伊朝两国结盟,盟约规定任何一方受到美方攻击,另一方就必须向美军发动袭
击,此举引起各国关注,联合国招开紧急会议,商讨对策.

2007年3月,台湾泛绿发表台独言论,刺激中共,两岸关系再次紧张

2007年4月.全国人民代表大会召开,商讨对台关系,会上通过,必要时可对台进行核打击,台湾严重不满.

2007年7月,朝鲜声称已拥有5颗核弹头及手提式核武.

2007年8月,日本再次修改教科书,否定日本一切入侵行为,严重引起亚洲人民不满,引发新
一论反日浪潮,更有日本人分别在中,韩两国被杀,日本强烈要求两国道歉,两国都表示拒绝,中,日,韩三国关系跌至最低点.

2007年12月,中,韩分别宣布对日断交,美国,俄罗斯介入,联合国呼吁三方克制.

2008年2月,日本宣布抵制北京奥运,中国则驱逐国内所有日本人出境.

2008年8月,北京奥运举行,日本没有任何代表出席.

2008年9月,中国宣布不再参与任何有关化解半岛危机的会议,美国表示强烈不满.

2009年3月,朝鲜播放试射洲际弹道导弹片段,引起美国不安.

2009年4月,台湾泛绿再次当选总统,中共认为和平统一已没有希望,开始公开备战.

2009年7月,朝鲜成功将携带式核弹运入日本,中国备战亦快将完成.

2009年8月,朝鲜引爆核弹,炸毁美军驻横须贺的海军基地,第7舰队全灭,横须贺死伤40万
人.

次日,美国国会通过议案,正式对朝宣战,3小时后向平壤发射一攻带核弹头的洲制弹导导弹,井成功命中.但金正日当时不在平壤.次日,日本通过宪改案,自卫队正式更名为自卫军,正式对朝宣战.

2009年9月,韩国不满美日对朝宣战,韩国脱离与美国关系,与朝鲜合作,支持金正日.

2009年11月,中共认为是统一战的最好时机,向台湾发动全面进攻,两星期后,战争结束.

2010年1月,美日联军登陆釜山,正式对韩开战.

次日,朝鲜向美国本土发射3支弹导导弹,其中两支被击落,一支命中三藩市,50万人死亡,美国宣布进入战时状态.

2010年2月初,美国向朝鲜发射一枚核弹,命中会宁,20万人死亡.

2010年3月,伊朗对美宣战,向第五舰队发射核弹,但被击落,

美军随即报复,向德黑兰实施核打击,100万人死亡,第5舰队撤回美国本土.

2010年4月,伊斯兰国家宣报对美宣战,袭突中东地区美军基地,美军不敌,向伊斯兰联军投降,却全部被杀,美国政府大怒,向埃及,约旦,沙特各发射一枚核弹,全部命中,伊斯兰国家死亡人数近200万.

2010年7月,第五舰队重返印度洋.准备反击伊斯兰联军.

2010年7月,北韩再向美国及日本各发射一枚核弹,均被击落,美国报复,向朝鲜发射一枚中
子弹. 命中咸兴,金正日丧生,金氏政权灭亡.

2010年11月,中国东海舰队与日美海军发生争执,中国向日,美宣战.

2小时后,美国宣布退出"核不扩散条约",中国跟随.

2011年1月,韩国宣布接收朝鲜政府一切权力,半岛统一.次日,韩国政府向美国政府提出休战请求,美方要求韩国政府道歉赔偿,韩方拒绝.

2011年2月,韩,美,日再次交战,中国与韩国结盟,正式投入战争.

2011年3月,伊斯兰联军与中,韩缔结盟约,新同盟国形成.一星期后,美国成功拉拢北约参战,新协约国形成.

2011年7月,沙特阿拉伯国王被杀,皇储阿卜杜拉继位,触发第三次世界大战爆发.

2012年1月,协约国登陆巴士拉.

2012年3月,同盟国收复朝鲜半岛.
2012年4月,同盟国中东战线失利,伊拉克,伊朗陷落,同盟国大肆烧毁石油资源,伊朗秘密将核弹头运往埃及.

一星期后,埃及向欧洲发射4枚洲际弹道导弹,三枚被击落,一枚命中巴黎,死伤300万.

2012年5月,美国向埃及及沙地阿拉伯各发射3枚核弹,全部命中,死伤500万人.

两星期后,中国向美国以及日本发射五枚洲际弹道导弹,两枚命中大阪及东京,三枚命中洛杉矶,夏威夷及纽约.

2012年6月,印巴矛盾激化,印度加入协约国,巴基斯坦加入同盟国.中,美要求俄罗斯表态,俄罗斯宣布中立.

2012年6月,美国向中国发射4枚核弹,3枚命中,分别是上海,大连,以及吉林,死伤人数达到1000万.

2012年7月,中国向美国,日本发射4枚洲际弹道导弹以及长程导弹,1枚命中东京,死伤300万人,日本政府迁都札幌.

2012年9月开始,至2013年7月,双方动用核武不下20次.

2013年7月,东亚,中东开始缺少日光,

北美洲于1个月后出现同样情况.

2013年7月,俄罗斯发生核武爆炸事件,受害范围包括整个俄罗斯西部,东欧多国.

2013年9月,埃及向英国发射两枚核弹,全部命中,伦敦死亡人数达300万.

2013年12月至2014年7月,核子冬天开始,其间全球死亡人数达到16亿人,一半是来自非洲

2014年1月开始参战国双方国内爆发大规模反战示威.

2014年3月,参战国双方宣布休战,开始进行谈判.

2014年5月1日,参战国双方达成共识,双方宣布无条件停战,5月13日,双方签定停战协议,第三次世界大战结束.

2014年6月,全球展开环境修复工作,由于大量植物枯死,各国大肆兴建温室,尽量保留余下物种.

2014年7月,经联合国统计,全球人口下降至40亿2000万人,其中有一半人已受到核辐射感染.

2014年8月,亚洲地区首次重见天日,3星期后核子冬天结束,各地开始解冻.

2014年12月,各国共同签署"反核武宣言",宣布未来十年以各种方式,销毁所有核武,核燃料.

2015年3月,美国政府宣布将12艘航母,所有核潜舰,以及所有提康德罗加级巡洋舰的核反应堆移除,世界各国亦有同等行为.

2015年6月,科学家发现南极冰帽快速溶解,两年后将会完全消失,北冰洋也有同样情况

2015年8月,各岛国要求各国申出援手,中国宣布,同意日本国余下的2000万人民,撤至中国大陆.

澳大利亚以及印度同意接收东南亚一切国家的国民.

2015年9月,英国政府及爱尔兰政府宣布放弃不列颠岛及爱尔兰岛一切发展,呼吁国民撤向
欧洲大陆及美洲大陆,同时解散联合王国政府及共和国政府.欧洲沿岸国家开始撤各内陆
工作.内陆国家宣布愿意接受一切难民.

2015年10月,英联邦解散.

2016年1月,联合国发表战后影响评估报告

内容指出:

未来两年全球多个大城市将会消失.

未来二十年,大约会有10亿人死于核辐射后遗症.

未来三十年,新生人类将会表现很多异常情况,估计到时会有不少于15亿畸形儿诞生.

未来五十年,人类将会开始缺乏人材,以及劳动力,文明发展将会有停顿什至倒退现象.末来一百年,人口将不多于10亿.

2016年4月,WWF发表物种调查报告,发现生物物种己减少至战前的40%,预料情况将会继续.

2016年5月,第三次世界大战结束两周年,全球己有二十多个岛国消失.

2016年7月,东京,大阪,上海,大连,香港,伦敦,阿姆斯特丹,悉尼,里斯本,洛杉矶,纽约,华盛顿,圣彼德堡等多个大城市消失于海平面.

2016年7月,美国迁都芝加哥,芝加哥改名新华盛顿.

2016年9月,巴黎,柏林,大马士革,马德里,北京,首尔,新墨西哥,都柏林消失于海平面.

2017年3月,联合国发表地理及生态环境报告,指出陆地与海洋最新百分比为22%与78%.

2017年5月,第三次世界大战3周年,联合国发表全球人口报告,全球人口减少至37亿1000万人.人口增长率为-1.9%.

2017年9月,中非国家出现下雪奇景.
一星期后巴西政府发表对亚马逊河流域的环境评估,发现"地球之肺"只剩下战前的19%.

2017年12月,成都气象局录得50度高温.

2018年3月,四川卧龙大熊猫培育中心宣布,野生大熊猫己完全消失.

2018年4月,日本驻中国自治政府宣布,日本群岛己成为历史,日本国宣布解散.一星期后,中国政府宣布台湾省更名为台湾群岛.

2018年7月,不列颠群岛消失.

2020年3月,长江,黄河断流.

2020年4月,喜玛拉雅山溶雪,2500万人死亡.

2022年7月,西伯利亚平原第一批小麦出产.

2023年,战争期间,受辐射感染者相继大规模地死去.

2024年1月,联合国人口报告发表,全球人类下降至25亿,当中15%为不正常人类.

2030年7月,联合国发表,城市发展及人类文明调查报告,发现全球有40%城市荒废,20%接近
无人居住,人均生活水平下降至1960年水平,此外,报告亦指出,现存科学家及一切高知识
人员数量,不足以推动人类文明再次发展,并有文明倒退现象出现.全球正常儿童失学率达
60%,人数为4亿2000万人,当中有1.3亿为孤儿.

2031年-2034年,全球荒漠面积占陆地的30%.

2035年-2040年,战前的高知识人材相继死去,人类面临文明崩溃的局面.

人口降至20亿6千万人.不正常人类占全人类30%.

2043年,联合国发表人类科技发展表告书,报告指出人类科技已倒退至1945年以前,大量工厂,高科技设施荒废,高科技产物严重流失.

2044年3月,联合国发表世界能源调查报告书,指出中东有89%以上油田枯竭.

两星期后,石油输出国组织一致同意,中止一切石油贸易,引发世界经济崩溃,通货彭涨,美
元贬值.

美元对黄金降至一百年来新低,6800万美元对一安士黄金,世界银行破产.

2044年5月,宗教危机爆发,千多年的罗马教廷崩溃,人类对宗教思想产生根本变化,追求唯
物主义.

2045年4月,由于能源紧张,世界各国宣布中止一切民航服务,限制人民拥有私人车辆.

2046年7月,中国所有天然气油田耗尽

2046年9月,第一次"人类文明与将来研讨会"于新华盛顿展开,为期10天的会议,会议没有
带来任何成效.

2047年1月-7月,欧洲爆发粮食危机,总共3000万人饿死.欧洲联盟一致通过,实行粮油配给制,所有农作物由政府统一处理,每4人家庭一星期可分得小麦粉半公斤,盐300克,油200毫升,糖300克.

2047年9月,粮食危机蔓延至全球,各国均实行粮油配给制.

2048年8月,联合国第3次人口报告发表,全球人口只剩下15亿1千万.

2048年11月,联合国紧急大会召开,寻求阻止人口锐减辨法.

2049年1月,已荒废30年的国际太空站坠落太平洋西部.

2049年3月,美国将封闭20多年的穿梭机除役,人类失去了最后一件登上太空的工具,标志人类短暂的太空时代结束.

2050年1月,联合国发表"社会状况调查报告书",指出全球6成地区处于无政府状态,地球上只余下20多个国家.

2051年3月,美国科学家发现,地球上有70%男性精子存率偏低,每一毫升精液只有若0.03%健康,不正常人类占当中的60%.

2052年4月,日久失修的金门大桥倒塌,同年8月,纽约市的新世贸中心倒塌,人类从此再没能力建造如此巨大的建筑物.

2053年6月,著名的死海干涸.

2053年7月,以色列与巴勒斯坦合并,成立以色列及巴勒斯坦合众国.

2054年,联合国发表第4次世界人口报告,世界各大国人口分是中国为1亿3252万人,美国1412万人,俄罗斯2600万人,印度2亿1000万人.

2055年7月,中,美科学家发现有直径1.5公里的小行星将于5年后撞击地球,要求各国商讨对策.

2055年9月,世界各国开始建造大量防空洞,并大量生产粮食,准备一切避难用品.

2060年7月8日,小行星落下现今的不列颠群岛位置,7亿人死亡,地球开始进入长达15年的冰封时期.

2074年,冰封结束的前一年,各防空洞出现储粮短缺,出现了吃死人的现象.

2075年,冰封过后,人类文明已回到17世纪,世界人口约为2亿1000万,当中不正常人类占39%.

其后20年,地球环境急速变化,2095年世界人口降至4100万人,当中不正常人类占40%.

2080年,人类只剩下7个聚居点,分别是西安,重庆,新西伯利亚,新华盛顿,班吉,喀布尔,以及新悉尼(巴罗克里克).

2110年,人类最后一个聚居点消失,人类不再群居生活.

2125年,人类终于成为自然界的淘汰品,最后一群人类消失于西伯利亚平原,人类文明结束……。

2005年06月10日

  打开注册表编辑器,进入主键[HKEY_CURRENT_USER\Software\Microsoft\Command Processor],将“CompletionChar”键值设置为9。

2005年06月02日

什么是OEM

  OEM,英文是Original Equipment Manufacture的缩写,中文为"原始设备制造商"。
  究竟什么是OEM?确切来讲,OEM就是委托生产,实际上是一种"代工生产"的方式,其含义是品牌生产者不直接生产产品,而是利用自己掌握的"关键的核心技术",负责设计和开发新产品,控制销售"渠道",具体的加工任务交给别的企业去做,承接这一加工任务的制造商就被称为OEM厂商,其生产的产品就是OEM产品。
  OEM是在电子产业大量发展起来以后才在世界范围内逐步形成的一种普遍现象,也是市场细分的必然结果,如今已成为IT企业生产经营的新趋势。比如像微软、IBM、HP、康柏等国际上的主要大企业均采用这种方式。"用最直接的方式赚钱!"这是康柏总裁菲费尔的名言。他曾在美国《商业周刊》上公开表示要省去那些所谓的资产(厂房、设备、办公楼)带来的财务负担。因此,康柏大量采用委托生产(OEM)和委托设计(ODM)方式生产。如果单纯从OEM的概念来理解,那么OEM商实质上是IT产品的幕后英雄,因为产品的表现形式是以单一品牌形象出现在用户面前的。用Turbolinux产品市场经理罗维的话讲,OEM实际上就是品牌的重新包装,对用户来说,接受的是一个整机品牌。
  关于OEM,最容易让普通用户迷惑的是OEM和DIY的区别:都无非是攒机呗。其实,OEM品牌的生产流程中,从上机的所有零部件、组件,到整个组装流程,都有严格的质量检测,因此,它代表着承诺和信誉,更代表着各种服务;而这些恰恰是攒机所没有也不可能有的。

    OEM可分为技术OEM、硬件OEM、软件OEM几大类。

    在打印机的生产上,目前有HP、EPSON、CANON、联想、方正、利盟,施乐(xerox)等十来家,但核心技术却掌握在HP、EPSON、CANON三家手中,其他品牌的打印机要用这些技术,一定要得到他们的授权,这就是技术OEM。技术OEM多是专利技术,在某种意义上说一般具有垄断的性质。对于软件OEM来说,软件捆绑可以统称为OEM,这包括软件与软件的捆绑、软件与硬件的捆绑。这其中包括软件的预装,最具代表性的就是微软的操作系统,中文之星以及其他一些常用的办公软件等,在硬件产品卖到用户手里的时候,有些软件就已经装好了,有些则根据不同用户的要求来预装的,比如,预装游戏软件、教育软件等。

    在硬件OEM方面,国内最初被简单的称之为来料加工。如CPU风扇,INTEL或AMD公司本身并不生产,它们通常会找像日本三洋公司这样的专业电机制造企业作风扇的OEM生产。但随着近几年IT产业的迅猛发展,产品的流通方式逐渐多无化,OEM的含义开始外延,范畴越来越广,其中的技术会含量已大大增加。最有代表性是各大芯片生产厂商同各大板卡厂商之间的OEM关系。如:INTEL和联想,INTEL和华硕,NVIDIA公司和丽台等。

    对于正式授权的板卡生产厂商芯片厂商直接给予技术支持和芯片销售,而不再通过地区性的芯片代理商参与,并且板卡公司完全可以通过自己的研发力量按照芯片厂商的设计标准开发产品,这样大大降低了其生产成本,另外又保持了与授权厂商产品技术和性能方面的一致性。为了保证公司的品牌形象不受影响,芯片厂商在找相应的OEM厂商时一般都相当谨慎,对OEM厂商的实力要求得相当高,除了有相当大的生产和出货能力外还要具有一定的研发能力。如上面提到的著名板卡生产厂商华硕和丽台,分别为INTEL和NVIDIA公司正式授权的主板和显卡OEM生产厂商,并且对于正式的OEM或ODM授权厂商,芯片厂商都会给予其正式的授权协议书。例如对于最近ATI RADEON系列芯片的授权方案中,ATI为了扩大其产品在市场上的份额,通过其在各地的芯片代理商向世界各大板卡生产厂商提供专利的RADEON芯片组及原装显卡,但对于正式授权的OEM厂商目前在全世界只有8家,而太阳花则是ATI在中国大陆唯一一家被正式授权的OEM生产产商。

    另外为了更好的协作OEM厂商,扩大产品在市场上的占有率,各大芯片厂商一般除了在技术上给予板卡厂商 一定的支持外,并与之配合进行全方位的市场推广方面的合作。例如,为了笼络OEM客户,2000年,INTEL曾在全球范围内推出与其是由直接提供芯片生产主板、显卡,OEM厂商的战略合作活动计划:在每个国家挑选一家合作厂商,确定其“COUNTRY LEADER”的地位,并与之开展从开发、生产到培训、市场推广等全方位的密切的战略性合作。而对于签约厂商太阳花显卡推出的ATI RADEON系列产品,ATI方面亦作了积极的响应,除了会派专人参加本月中旬太阳花将在北京举行的新闻发布会外,并承诺后期还会支持并配合太阳花做好一系列ATI RADEON系列产品的市场活动。
 
什么是ODM

    ODM,是Original Design Manufacture(原始设计厂商)的缩写,这是近年来兴起于国内IT业的概念。与之不同的是,早为业内所熟知的OEM(原始设备制造商),主要是指按照上游厂商的设计进行制造,OEM的流行与ODM的兴起,反映了国内制造业发展的过程:早期国内厂商缺乏核心技术,不得已扮演OEM的角色,给别人生产产品,或是拿来其他厂商的OEM产品进行贴牌销售;而随着国内厂商逐渐掌握核心技术,开始出现自主知识产权的产品设计,ODM进入了人们的视野。

Anti-debug
用指令预取反跟踪


CPU的执行时并不是执行到哪一句再到内存中去取那一句, 而是先读入到
CPU的Cache中,如果指令已经到了Cache中, 再将它修改也没有用了,如
果用跟踪程序的话,CPU的Cache中就不会是跟正常执行时的指令相同,
所以可以改动下几条指令,当然是故意改错,如果没有跟踪,程序还回照
常执行,有跟踪的话,那就…

汇编编程示例:
code segment
 assume cs:code,ds:code
 org 100h
start:
 jmp install
d1 db ‘OK, passed …’,0dh,0ah,24h
install:
 mov word ptr _code,20cdh
_code:
 nop ;如果跟踪一下,就会发现下一条指令是
      INT 20H,返回 DOS 了
 nop
 mov si,offset _code1
 mov di,si
 cld
 mov ax,20cdh
 stosw
 lodsw
_code1:
 nop
 nop
 mov ah,9
 ;now ax=20cdh
 mov dx,offset d1
 int 21h
 int 20h
code ends
 end start    

关于启发扫描的反病毒技术

        虚拟机,其作用是让病毒受控地虚拟运行。而所谓“启发扫描”就是在病毒运行 /动态分析基础上进行判定的具体方案。

启发式代码扫描技术
─────────

  病毒和正常程序的区别可以体现在许多方面,比较常见的如通常一个速应用程序在最初的指令是检查命令行输入有无参数项,清屏和保存原来屏幕显示等,而病毒程序则从来有会这样做,它通常最初的指令是直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。这些显著的不同之处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。启发式代码扫描技术实际上就是把这种经验和知识移植到一个查病毒软件中的具体程序体现。

  因此,在这里,启发式指的“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能。”一个运用启发式扫描技术的病毒检测软件,实际上就是以特定方式实现的动态高度器或反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。例如,如果一段程序以如下序列开始:MOV AH ,5/INT,13h,即调用格式化盘操作的BIOS指令功能,那么这段程序就高度可疑值得引起警觉,尤其是假如这段指令之前不存在取得命令行关于执行的参数选项,又没有要求用户交互性输入继续进行的操作指令时,可以有把握地认为这是一个病毒或恶意破坏的程序。

可疑的程序功能
───────

  在具体实现上,启发式扫描技术是相当复杂的。通常这类病毒检测软件要能够识别并探测许多可疑的程序代码指令序列,如格式化磁盘类操作,搜索和定位各种可执行程序的操作,实现驻留内存的操作,发现非常的或未公开的系统功能调用的操作,等等,所有上述功能操作将被按照安全和可疑的等级可以排序,根据病毒可能使用和具备的特点而授以不同的加权值。

  随便举个例子,格式化磁盘的功能操作几乎从不出现在正常的应用程序中,而病毒程序中则出现的几率极高,于是这类操作指令序列可获得较高的加权值,而驻留内存的功能不仅病毒要使用,很多应用程序也要使用,于是应当给予较低的加权值。如果对于一个程序的加权值的总和超过一个事先定义的阀值,那么,病毒检测程序就可以声称“发现病毒!”仅仅一项可疑的
功能操作远不足以触发“病毒报警”的装置,如果不打算上演“狼来了”的谎报和虚报来故意吓人,最好把多种可疑功能操作同时并发的情况定为发现病毒的报警标准。

==================================================================

启发式扫描通常应设立的标志
─────────────

  为了方便用户或研究人员直观地检测被测试程序中可疑功能调用的存在情况,病毒检测程序可以显示为不同的可疑功能调用设置标志。
  例如,TbScan这一病毒检测软件就为每一项它定义的可疑病毒功能调用赋予一个旗标,如F,R,A……,这样以来可以直观地帮助我们对被检测程序进行是否染毒的主观判断。

各标志的含义
──────

F= 具有可疑的文件操作或能。有可疑进行感染的操作。
R= 重定项功能。程序将以可疑的方式进行重定向操作。
A= 可疑的内存分配操作。程序使用可疑的方式进行内存申请和分配操作。
N= 错误的文件扩展名。扩展名预期程序结构与当前程序相矛盾。
S= 包含搜索定位可执行程序(如EXE或COM)的例程。
#= 发现解码指令例程。这在病毒和加密程序中都是经常会出现的。
E= 灵活无常的程序入口。程序被蓄意设计成可编入宿主程序的任何部分,
   病毒极频繁使用的技术。
L= 程序截获其它软件的加载和装入。有可能是病毒为了感染被加载程序。
D= 直接写盘动作。程序不通过常规的DOS功能调用而进行直接写盘动作。
M= 内存驻留程序。该程序被设计成具有驻留内存的能力。
I= 无效操作指令。非8088指令等。
T= 不合逻辑的错误的时间标贴。有的病毒借此进行感染标记。
J= 可疑的跳转结构。使用了连续的或间接跳转指令。这种情况在正常程序
   中少见但在病毒中却很平常。
?= 不相配的EXE文件。可能是病毒,也可能是程序设计失误导致。
G= 废操作指令。包含无实际用处,仅仅用来实现加密变换或逃避扫描检查
   的代码序列。
U= 未公开的中断/DOS功能调用。也许是程序被故意设计成具有某种隐蔽
   性,也有可能是病毒使用一种非常规手法检测自身存在性。
O= 发现用于在内存在搬移或改写程序的代码序列。
Z= EXE/COM辨认程序。病毒为了实现感染过程通常需要进行此项操作。
B= 这回程序入口。包括 可疑的代码序列,在完成对原程序入口处开始的
   代码修改之后重新指向修改前的程序入口病毒极常见。
K= 非正常堆栈。程序含有可疑的或名其妙的堆栈。

例如对于以下病毒,TbScan将点亮以下不同标志。

   Jerusalum/PLO(耶路撒冷病毒)  FRLMUZ
   Backfont/ 后体病毒           FRALDMUZK
   mINSK-gHOST                  FELDTGUZB
   Murphy                       FSLDMTUZO
   Ninja                        FEDMTUZOBK
   Tolbuhin                     ASEDMUOB
   Yankee-Doodle                FN#ELMUZB

   对于某个文件来说,被点亮的标志愈多,染毒的可能性就愈大。常规干净程序甚至很少会点亮一个标志旗,但如果要作为可疑病毒报警的话,则至少要点亮两个以上标志旗。如果再给不同的标志旗赋以不同的加权值,情况还要复杂得多。


关于虚警(谎报)
────────

   正如任何其他的通用检测技术一样,启发式扫描技术有时也会把一个本无病毒的程序指证为染毒程序,这就是所谓的查毒程序虚警或谎报现象。原因很简单。被检测程序中含有病毒所使用或含有的可疑功能。例如,QEMM所提供的一个LOADHI.COM程序就会含有以下可疑功能调用。

A= 可疑的内存分配操作。程序使用可疑的方式进行内存申请和分配操作。
N= 错误的文件扩展名。扩展名预期程序结构与当前程序相矛盾。
S= 包含搜索定位可执行程序(如EXE或COM)的例程。
#= 发现解码指令例程。这在病毒和加密程序中都是经常会出现的。
E= 灵活无常的程序入口。程序被蓄意设计成可边入宿主程序的任何部痊,
   病毒极频繁使用的技
M= 内存驻留程序。该程序被设计成具有驻留内存的能力。
U= 未公开的中断/DOS功能调用。也许是程序被故意设计成具有某种隐蔽
   性,也有可能是病毒使
O= 发现用于在内存在搬移或改写程序的代码序列。
Z= EXE/COM辨认程序。病毒为了实现感染过程通常需要进行此项操作。

   LoadHi程序中确实含有以上功能调用,而这些功能调用足以触发检毒程序的报警装置。因为LoadHi的作用就是为了分配高端内存,将驻留程序(通常如设备驱动程序等等)装入内存,然后移入高端内存,等等……,所有这些功能调用都可以找到一个合理的解释和确认,然而,检毒程序并不能分辨这些功能调用的真正用意,况且这些功能调用又常常被应用在病毒程序中,
因此,可怜的检测程序只能判定Load Hi程序为“可能是病毒程序”。

虚警(谎报)的后果有多严重
─────────────

   如果某个基于上述启发式代码扫描技术的病毒检测程序在检测到某个文件时弹出报警窗口“该程序可以格式化磁盘且驻留内存”而你自己确切地知道当前被检测的程序是一个驻留式格式化磁盘工具软件,这算不算虚警谎报呢?

   因为一个这样的工具软件显然应当具备格式化盘以及驻留内存的能力。启发式代码检测程序的判断显然正确无误,这可算做虚警,但不能算做谎报(误报)。问题在于这个报警是否是“发现病毒”,  如果报警窗口只是说“该程序具备格式化盘和驻留功能”,好,100%正确,但它如果说“发现病毒”,那么显然是100%的错了。关键是我们片怎样看待和理解它真正的报警的含义。检测程序的使命在于发现和阐述程序内部代码执行的真正动机,到底这个程序会进行哪些操作,关于这些操作是否预期或合法,尚需要用户方面的判断。不幸的是,对于一个一的新手来说,要做出这样的判断仍然是有困难的。

如何避免虚警和误报
─────────

   不管是虚警也好,误报或谎报也好,抛开具体的名称叫法不谈,我们决不希望在每次扫描检测的时候我们的检测程序无缘由地狂喊“狼来了”,我们要尽力减少和避免这种人为的紧张状况,那么如何实现呢?必须努力做好以下几点:

1、 对于病毒行为的准确把握而给定的关于可疑功能调用集合的精确的定义。
除非满足两个以上的病毒重要特征,否则不予报警。

2、 对于常规的佥程序代码的和识别能力。某些编译器提供运行时实时解压或解码的功能及服务例程,而这些情形往往是导致检测时误报警的原因,应当在检测程序中加入认知和识别这些情状的功能模块,以避免再次误报。

3、 对于特定程序的识别能力。如上面涉及到的LoadHi及驻留式格式化工具软件等等。

4、 类似“无罪假定”的功能,首先假定程序和电脑是不含病毒的。许多启发式代码分析检毒软件具有自学习功能,能够记信那些并非病毒的文件并在以后的检测过程中避免再报警。


如何处理虚警谎报
────────

   不管采用什么样的措施,虚警谎报现象总是要存在的。因此不可避免地用户要在某些报警信息出现时作出自已的抉择:是真正病毒还是误报?也许会有人说:“我怎么知道被报警的程序到底是病毒还是属于无辜误报?”大多数人在问及这个问题的第一反应,是“谁也无法证明和判断。”事实上是有办法作出最终判决的,但是这还要取决于应用启发式代码分析检测技术的
查病毒程序的具体解释。

   假如检测软件仅仅给出“发现可疑病毒功能调用”这样简单的警告,信息而没有更多的辅助信息,对于用户来说几乎没有什么可资判断是否真正病毒的实际帮助价值,换个说法,“可能是病毒”似乎永远没错,不必担负任何责任,而用户不希望得到这样模棱两可的解释。

   相反地,如果检测软件把更为具体和实际的信息报告给用户,比如“警告,当前被检测程序含有驻留内存和格式化软硬盘的功能”,类似的情况更能帮助用户扩清楚到底会发生什么?该采取怎样应对措施。比如这种报警是出现在一个字处理编辑软件中,那么用户几乎可以断定这是一个病毒。当然如果这种报警是出现在一个驻留格式化盘工具软件上,用户大可不必紧张万
分了。这样以来,报警的可疑病毒常用功能调用都能得到合理的解释,因而也会得到圆满正确的处理结果。

   自然地, 需要一个有经验的用户从同样的报警信息中推理出一个 “染毒”还是“无毒”的,结论并非每一个用机者可以完全胜任的。因此,如果把这类软件设计成有某种学习记忆的能力,在第一次扫描时由有经验的用户逐一对有疑问的报警信息作好“是”与“非”的判断,而在以后的各次扫描检测时,由于软件学习并记忆了第一次检测时处理结果,将不再出现同样的
烦人的提示警报。因为不论在什么情况下,偶尔请教一下某个有经验的“高手”并不,难难堪的是每次就同样的问题去麻烦别人。

   不管怎样的缺点和不足,和其它的扫描识别技术相比起来,启发式代码分析扫描技术几乎总能提供足够的辅助判断,信息让我们最终判定被检测的目标对象是染毒的,亦或是干净的。启发式代码分析检测技术的实用应用效果如何?启发式扫描技术仍然是一种正在发展和不断完善中的新技术,但已经在大量优秀的反病毒软件中得到迅速的推广和应用。按照最保守的估计,
一个精心设计的算法支持的启发式扫描软件,在不依赖任何对病毒预先的学习和了解的辅助,信息如特征代码,指纹字串,校验和等等的支持下,可以毫不费力地检查出90%以上的对它来说是完全未知的新病毒。 可能会出现一些个虚报、谎报的情况,适当加以控制,这种误报的概率可以很容易地被降低在0.1%以下。

    例如以下是TbScan(6.02)在对由Vesselin Bontchev 提供的测试用真实病毒样本扫描处理的结果。

扫描的技术      从总数7210个样本中检出病毒的个数    检测的检出概率

传统基于手工分析和特征值        7056                97.86%
启发式代码分析                  6465                89.67%

误报率测试是必要的,但实施起来则要困难得多,因此这里没有提供。

传统扫描技术与启发式代码分析扫描技术的结合运用
───────────────────────

   前面论述了簋多启发式代码分析技术的优点和长处,会不会引起某些人的误解,以为传统的检测扫描技术就可以丢弃了呢?情况当然不是这样。从实际应用的效果看来,传统的手法由于基于对已知病毒的分析和研究,在检测时能够更准确,减少误报;但如果是对待此前根本没有见过的新病毒,由于传统手段的知识库并不存在该类(种)病毒的特征数据,则有可能毫无瓜,
产生漏报的严重后果。而这时基于规则和定义的启发式代码分析技术则正好可以大显身手,使这类新病毒不至成为漏网之鱼。传统与启发式技术的结合支用,可以使病毒检测软件的检出率提高到前所未有的水平,而另一方面,又大大降低了总的误报率。详见以下测试实验结果对比数据:

         启发式判定结果    传统式判定结果    可能的真正结果

           干净              干净              非常可能就是干净的
           干净              有毒              很可能误报
           有毒              干净              很可能有毒
           有毒              有毒              极有可能确实染毒

                                               三种技术结合使用
虚报率      10%               1%                1%
漏报率      0.1%              0.001%            0.00001%

   某种病毒能够同时逃脱传统和启发式扫描分析的可能性是小的,如果两种分析的结论相一,致那么真实的结果往往就如同其判断结论一样砍无,疑两种不同技术对同一检测样分析的结果不一致的情况比较少见,这种情形下需借助另外的分析去得出最后结论。

   仍然以 TbScan 6.02为测试举例,下面是分别使用不同技术和结合应用的测试结果:

测试用技术      总数为7210个样本的病毒检出数    检出率
传统的                      7056                97.86%
启发式                      6465                89.67%
结合应用                    7194                99.78%


启发式反毒技术的未来展望
────────────

   研究的逐步深入,使技术发展不断进步。一方面绝大多数反病毒厂家的产品中还未能引入一个较为成功和可靠的启发式检测技术的内核,另一方面,即使是在少数依靠的知名反病毒产品中这项技术的运用也还需要经受不断的完善和发展。任何改良的努力都会有不同程度的质量提高,但是不能企望在没有虚报为代价的前提下使检出率达到100%,或者反过来说,大约在相当长
的时间里虚报和漏报的概率不可能达到0%。

   这听上去或许有些不可思议,其实不难理解。100%正确的检测结果只所以不存在,是因为有相当一部分程序(或代码)介乎于病毒与非病毒之间,即便对于人脑来说,合乎逻辑又合乎病毒定义的结论往往会截然相反。随便举一个例子,如果依据广为接受的病毒的定义:“病毒,就是复制自身的拷贝或改良的复本的一些程序。” 那么,众所周知的磁盘复制程序 DiskCopy
岂不是也落入病毒的分类中了吗?但是,情况显然并非如此……

   病毒技术与反病毒技术恰如“道”与“魔”的关系,也许用“道高一尺,魔高一丈”来形容这对矛盾的斗争和发展进程再为恰当不过了。当反病毒技术的专家学者在研究启发式代码分析技术对传统的特征代码扫描法查毒技术进行改革的时候,也确实收到了很显著的效果,甚至可以说,相对于病毒技术的加密变换(Mutation),尤其是多形、无定形病毒技术(Polymorphsm) 对
于传统反毒技术的沉重打击,杀了一个漂亮的回马枪。但是,反毒技术的进步也会从另一方面激发和促使那些丧心病狂的病毒制作者的不断研制出更新的病毒,具有某种反启发式扫描技术功能,可以逃避这类检测技术的新型病毒。但是,值得庆幸的是,即便能够写出具有这种能力的病毒,它所需要的技术水准和编程能力要复杂得多,绝不可能象对搞传统的基于特征值扫描技
术的反毒软件,那么容易,任何一个程序的新手只要将原有的病毒稍加改动,哪怕只是一个字节,只要恰 好改变了所谓“特征字节”, 就可使这种旧病毒的新变种从未经升级的传统查毒软件的眼皮底下逃之夭夭。

结论
──
   抛开启发式代码分析技术实现的具体细节和不同手法不谈,这种代表着未来反病毒技术发展的必然趋势具备某种人工智能特点的反毒技术,向我们展示了一种通用的、不需升级(较省需要升级或不依赖于升级)的病毒检测技术和产品的可能性,由于诸多传统技术无法企及的强大优势,必将得到普遍的应用和迅速的发展。资料显示,目前国际上最著名的排名在前五名的反
病毒软件产品均声称应用了这项技术,从来自不同机构和出处的评测结果来看,纯粹的启发式代码分析技术的应用(不借助任何事先的对于被测目标病毒样本的研究和了解),已能达到80%以上的病毒检出率, 而其误报率极易控制在0.1%之下,这对于仅仅使用传统的基于对已知病毒的研究而抽取“特征字串”的特征扫描技术的查毒软件来说,是不可想象的,一次质的飞跃。
在新病毒,新变种层出不穷,病毒数量不断激增的今天,这种新技术的产生和应用更具有特殊的重要意义。

  几周之前,我隐约记得好象哪里有一篇文章,顺便找人去试试看能否要来。不想今天下午从E-mail里面收到了。文章显然是译文,有很多用词的习惯可能不一样。我大致看了一遍。整理一下就POST上来了。

  总的来说,这篇文章和前面的虚拟机一文正好互相补充。虚拟机为启发式扫描的实现提供一个基础,而启发扫描是以虚拟机的分析为基础进行病毒判定的具体手段。可以说,这基本上是目前比较先进的技术了。但是我们也看到,启发式扫描对病毒的判定同样不是使用以病毒定义出发的直接标准,而是一系列间接的准则──甚至可以说是使用的统计方法。正如我们在模式
识别工作中的过程类似,虚拟机解码病毒并提供特征素材,而启发式扫描方法是进行特征的分类(如前面所说的各种“标志”,最后要进行权衡分析(特别象模式识别中的距离计算)。

  可以看出,我们在处理很多问题上都是采用的类似直接与间接方法相配合的手段。汉字/图象识别、声音识别、病毒处理……, 当直接准则不易于实现时,往往就采用间接准则。经常还是基于统计的间接准则。从反病毒角度看,我们当然希望存在一种技术,它能够使用与病毒的定义准则更加接近的标准。同时,我们在以MS-DOS文件病毒为例进行分析时,别忘了不断新生
的新的病毒,包括Windows病毒、宏病毒等等……

   希望有兴趣的虫虫能把自己的体会多多地说出来。不必担心说错,更不必保守。大家一起探讨。


Coding program

花指令加密法
 
用‘花指令’来进行静态加密是很有效的,这会使解密者无法一眼看到全部指令,杜绝了先把程序打印下来再慢慢分析的做法。我们知道,一条指令的长度是不等长的,假使有一条指令为
3 字节长,然后你从它的第二个字节开始反汇编,你照样会看到一条面目全非的指令,‘花指令’就是在指令流中插入很多‘垃圾’,使静态反汇编无法进行,如何实现你把以下程序编译出来用
Debug 的 U 指令看一下,跟踪一下就能理解了。
汇编编程示例:
XX1 MACRO
local _next1
 jmp short
_next1
 db 0e8h
_next1:
 ENDM
;————————————–
XX2 MACRO
local _next2
 jmp short
_next2
 db 0e9h
_next2:
 ENDM
;————————————–
XX3 MACRO
local _next3
 jmp short
_next3
 db 09ah
 db 0e8h
_next3:
 ENDM
;————————————–
XX4 MACRO
local _next4
 jmp short
_next4
 db 09ah
 db 0e8h
_next4:
 ENDM
;————————————–
.286
CODE SEGMENT
 ASSUME CS:CODE,DS:CODE
 ORG 100H
start:
 db 20 dup (90h)
 
 xx3
 mov ax,0201h
 xx3
 mov bx,0200h
 xx3
 mov cx,0001h
 xx3
 mov dx,0080h
 xx2
 int 13h
 xx2
 int 20h
CODE ENDS
 END START
     

Using clock to anti-debug
用时间差反跟踪
概述:
 如果关掉中断,不仅仅是键盘不动了,时钟也不会走,所以可以利用时间差来反跟踪,具体方法是:先关掉中断, 再用当前时间作 key 加密,在执行一大堆指令后,偷偷地再用当前时间解密, 如果为了解密跳过关中断指令, 时间就会变化, 解密结果就会不对,然后…当然是死机啦 !
汇编编程示例:
code segment
 assume cs:code,ds:code
 org 100h
start:
 jmp install
d1 db ‘OK, passed …’,0dh,0ah,24h
install:
 xor ax,ax
 mov es,ax
 mov ax,es:[046ch]
 ;系统时间计数
 xor word ptr _code,ax
 ;把 _CODE 处的指令加密
 mov ah,0ffh
 in al,21h
 xchg ah,al
 out 21h,al
 ;关掉中断,并保存原中断开关情况到
AH
 
 mov cx,100
 ;这儿是延时语句,模拟其他程序的执行时间
lop1:
 push cx
 xor cx,cx
lop2:
 loop lop2
 pop cx
 loop lop1
 
 mov bx,es:[046ch]
 ;再把时间取回来解密
 xor word ptr _code,bx
 xchg ah,al
 ;记得把中断复原
 out 21h,al
_code:
 nop
 nop
 mov ah,9
 mov dx,offset d1
 int 21h
 int 20h
code ends
 end start