wenjiang 的个人资料morning's blog照片日志列表更多 工具 帮助

日志


1月30日

新年礼物 - 让VC2003直接打开VC2005的工程

VC2003的工程文件和VC2005的工程文件看起来文件格式上没什么区别的,但是微软却升级了版本号,使得VC2003无法直接打开VC2005的工程,如果把sln和vcprj的版本号信息改了,就可以顺利打开了,但是每次阅读VC2005的代码都要这样操作很不方便,而且很多时候工程文件是只读的,使得用VC2003阅读代码就很不方便了.
要使得VC2003顺利打开VC2005的工程,要解决2个问题,首先,解决sln的加载问题,然后解决vcprj的加载问题.

1.先解决sln的加载问题,估计应该是ide目录的某个文件,于是定位到msenv.dll,查找关键字,定位到这里
看到了_wtoi,OK接近成功了,修改一下跳转即可

500FFDFC   .  8B7D D4       mov     edi, dword ptr [ebp-2C]
500FFDFF   .  BE D0FE0F50   mov     esi, 500FFED0                    ;  microsoft visual studio solution file, format version
500FFE04   .  56            push    esi                              ; /wstr2 => "Microsoft Visual Studio Solution File, Format Version"
500FFE05   .  57            push    edi                              ; |wstr1
500FFE06   .  FF15 A41A0050 call    dword ptr [<&MSVCR71.wcsstr>]    ; \wcsstr
500FFE0C   .  85C0          test    eax, eax
500FFE0E   .  59            pop     ecx
500FFE0F   .  59            pop     ecx
500FFE10   .  0F84 612A0400 je      50142877
500FFE16   >  6A 20         push    20                               ; /c = 0020  (' ')
500FFE18   .  57            push    edi                              ; |s
500FFE19   .  FF15 B41A0050 call    dword ptr [<&MSVCR71.wcsrchr>]   ; \wcsrchr
500FFE1F   .  8BF0          mov     esi, eax
500FFE21   .  3BF3          cmp     esi, ebx
500FFE23   .  59            pop     ecx
500FFE24   .  59            pop     ecx
500FFE25   .  0F84 F82B0400 je      50142A23
500FFE2B   .  46            inc     esi
500FFE2C   .  46            inc     esi
500FFE2D   .  6A 2E         push    2E                               ; /w = 002E  ('.')
500FFE2F   .  56            push    esi                              ; |wstr
500FFE30   .  FF15 A81A0050 call    dword ptr [<&MSVCR71.wcschr>]    ; \wcschr
500FFE36   .  3BC3          cmp     eax, ebx
500FFE38   .  59            pop     ecx
500FFE39   .  59            pop     ecx
500FFE3A   .  0F84 E32B0400 je      50142A23
500FFE40   .  56            push    esi
500FFE41   .  66:8918       mov     word ptr [eax], bx
500FFE44   .  FF15 AC1A0050 call    dword ptr [<&MSVCR71._wtoi>]     ;  MSVCR71._wtoi
500FFE4A   .  8B15 28462F50 mov     edx, dword ptr [502F4628]
500FFE50   .  3BC2          cmp     eax, edx
500FFE52   .  59            pop     ecx
500FFE53   .  C745 C8 01000>mov     dword ptr [ebp-38], 1
500FFE5A      0F8F C32B0400 jg      50142A23     ;//nop之
500FFE60   .  F685 A0140000>test    byte ptr [ebp+14A0], 4
500FFE67   .  895D C8       mov     dword ptr [ebp-38], ebx

2.vcprj,vc相关的工程文件,于是定位到 VCProjectEngine.dll,找到 version 字符串,然后看到各版本的字符串,修改跳转即可

53B71F2D    6A 03           push    3
53B71F2F    5F              pop     edi
53B71F30    57              push    edi
53B71F31    68 A41FB753     push    53B71FA4                         ; 7.0
53B71F36    FF75 14         push    dword ptr [ebp+14]
53B71F39    FF15 1815B453   call    dword ptr [<&MSVCR71.wcsncmp>]   ; MSVCR71.wcsncmp
53B71F3F    83C4 0C         add     esp, 0C
53B71F42    85C0            test    eax, eax
53B71F44    0F84 5A810300   je      53BAA0A4
53B71F4A    57              push    edi
53B71F4B    68 9C1FB753     push    53B71F9C                         ; 7,0
53B71F50    FF75 14         push    dword ptr [ebp+14]
53B71F53    FF15 1815B453   call    dword ptr [<&MSVCR71.wcsncmp>]   ; MSVCR71.wcsncmp
53B71F59    83C4 0C         add     esp, 0C
53B71F5C    85C0            test    eax, eax
53B71F5E    0F84 40810300   je      53BAA0A4
53B71F64    57              push    edi
53B71F65    68 941FB753     push    53B71F94                         ; 7.1
53B71F6A    FF75 14         push    dword ptr [ebp+14]
53B71F6D    FF15 1815B453   call    dword ptr [<&MSVCR71.wcsncmp>]   ; MSVCR71.wcsncmp
53B71F73    83C4 0C         add     esp, 0C
53B71F76    85C0            test    eax, eax
53B71F78    0F85 73800300   jnz     53BA9FF1   ;//再不相同就失败了,于是nop之

为了方便大家修改,这里给出文件的偏移(注意,是VS2003 English Pro SP1的,其他版本请自行解决,或email问我,ywjheart@gmail.com)
1.文件: msenv.dll ,偏移: 0xFFE5A , 原始字节: 0F 8F C3 2B 04 00 ,修改成: 90 90 90 90 90 90
2.文件: VCProjectEngine.dll ,偏移: 0x31378 ,原始字节: 0F 85 73 80 03 00 , 修改成: 90 90 90 90 90 90

修改后,可以直接打开VC2003和VC2005的工程,对于VC2005的工程,如果点击了保存,版本会降低为 "Microsoft Visual Studio Solution File, Format Version 8.0",对于阅读代码应该没什么影响,如果是团队协作开发,记得不要把这个保存后的工程合并到svn,否则,你的弟兄会有些郁闷(VC2005会提示他升级工程)
enjoy this patch,hacked by morning @ 2009.1.30

 

1月29日

一个为了广告而"艺术"的时代

广告植入似乎成了一个流行的新名词了.
贺岁片成了广告片,春晚成了广告联欢.
1月22日

QQ有关闭侧边的选项啦

随着QQ的不断升级优化,不得不承认,越做越棒了!
放弃Preview3,改用Beta1啦.
 
新版可以使用 天气,可以使用离线文件,皮肤更靓了.

星际争霸 居然还有更新补丁

1.16.1 发布了,不得不佩服暴雪的服务态度,这样的企业做出来的产品不是精品都难啊
1月21日

庞大的学生就业群

2008年有2000多万毕业生在找工作,2009预计毕业生611万
 
祝大家幸运吧,相信自己,肯定自己,那么一切都会OK的.

President Barack Obama meeting with all the living Presidents

President Barack Obama meeting with all the living Presidents--from left, President George H.W. Bush, George W. Bush, Bill Clinton, and Jimmy Carter.

 

1月20日

配合IIS时mysql 的安装问题

拷贝完文件到系统目录,应该记得检查 文件的权限
1月18日

又有人从ATM取到假钱

我记得是10.1左右,我从工商银行柜员机取到100还是200的假钱,当时,确实,挺郁闷的.
今天看到一个一样郁闷的人了,这是我第三次见闻ATM假钱了(5月份在招行遇到有人取到假钱).
 
 
以下是链接:
 
 
 
 

布什告别演讲全文:我跟随良知的指引

各位同胞:在过去的八年间作为你们的总统,是我的荣幸。新世纪的第一个十年,是重要的十年——一个与众不同的十年。

今晚,怀着感恩之心,请允许我在这最后的机会分享一些想法,一些有关总统历程和国家未来的想法。

五天之后,世界将目击美国民主的一个重要时刻。按照建国伊始的传统,总统之职将传递给你们——美国人民选择的继任者。这位即将站在国会台阶上的人,他的故事正彰显了我们这块土地所延续的承诺。

对我们整个国家来说,这是一个充满希望与自豪的时刻。我与全体美国人民一道,对候任总统奥巴马、他的妻子米歇尔和他们那一双美丽的女儿,致以最美好的祝愿。

今晚,让我表达对副总统切尼和内阁成员的感激之情;我还要感谢劳拉(译者注:布什的夫人),是你为我们的家庭带来欢乐,为我的生活带来爱;还要感谢我们的女儿,芭芭拉和詹纳;以及我的父母――是他们的榜样为我提供了一生的力量。

而最重要的,我要感谢你们――美国人民,感谢你们给予我的信任。感谢你们的祈祷,它振奋着我的灵魂。感谢在过去八年间我所见证过的,无以计数的勇气、慷慨、和仁爱。

今晚,我的思绪回到2001年9月11日,我第一次在这里向全国发表讲话。

那个早上,恐怖分子在那次自珍珠港事件以来,美国所遭受过的最严重的袭击中夺去了近3000名美国人民的生命。我记得三天后,我站在世贸中心的废墟之中,身边是加班加点连续作战的救援人员。

我记得与那些穿越五角大楼浓烟的勇士们的对话,以及与93航班上殉难英雄们的妻子或丈夫们的交谈。

我记得艾琳•霍华德。她把她逝去的儿子的警徽送给我。那个警徽提示我们所有失去的记忆――我至今仍然随身携带他的徽章。

随着时间的逝去,大多数美国人能够恢复到9.11之前的正常生活中去。但我不能。每天早上,我都会收到一份对我国威胁状况的简报。我发誓尽我的一切力量保卫美国的安全。

在过去的八年间,一个新的部门——国土安全部成立了。军队、情报部门、FBI都发生了改观。

我们的国家掌握了新的手段来监视恐怖分子的活动、冻结他们的财务、打破他们的图谋。而有坚强的盟友与我们一道,我们对恐怖分子和他们的支持者宣战。

阿富汗,从一个塔利班袒护基地组织、妇女当街遭乱石致死的国家,转变为一个对抗恐怖主义、支持女孩子们走进校门的年轻民主国家。

伊拉克从一个残酷的独裁国家、美国的宿敌,转变为位于中东心脏的阿拉伯民主国家,和美国的朋友。对于这些决策进行辩论是完全合理的,但其结果是不可辩驳的。

在过去的七年间没有发生一起在美国土地上的恐怖袭击活动。这是那些夜以继日保障我们安全者的功劳——执法官员、情报分析员、国土安全与外交人士,和美国武装部队中服役的男女士兵。

这些在危难时志愿保卫我们国家的公民是美国之福。我记忆中珍藏着与这些无私的爱国者,以及他们的家人的见面的情景。美国感谢你们。

对于今晚正在收听讲话的部队中的男女士兵,我要说:没有比作为你们的最高统帅更荣耀的事了。我们的战士所进行的战争,在广义上,是这样两个截然不同的体系间的斗争。在一个体系中,是一小撮狂热分子,追求对一种压迫性的意识形态的绝对服从;女性只能屈从附属;异教徒遭到谋杀。

而另一个系统是基于这样的信念:自由是全能的上帝赐予我们的普世礼物;自由与公证将点亮通往和平之路。我们的国家正是诞生于这样的信仰之中。而从长远来看,只有发扬这样的信仰,才能实实在在保护我们公民的安全。

当人们生活在自由中,他们不会去选择那些发动恐怖战争的领袖。当人们对未来充满希望时,他们不会令生活向暴力与极端主义俯首。因此在世界范围内,美国推崇人类自由、人权与尊严。

我们与持不同政见者和年轻的民主力量并肩作战;我们提供艾滋病药品挽救垂危的病人;我们挽救患疟疾的母亲与婴儿。我们这个与自由共同降生的伟大共和国,正引领世界走向一个自由属于所有国家的新时代。

在过去的八年间,我们还努力在美国本土扩展机会和希望。在美国各地,公立学校的学生们获得提升,达到更高的标准。

一个新的医疗福利计划让老年人和残障人士无后顾之忧。每位纳税人的所得税更低。瘾君子与其他处在痛苦中的人士从基于信仰的组织中找到新希望。

人类脆弱的生命获得了更好的保护。安置退伍老兵的资金几乎倍增。美国的空气、水与土地更清洁。睿智的新法官,如山姆•阿利托法官和约翰•罗伯茨首席法官加入联邦法院。

当影响美国繁荣的挑战出现时,我们直面之。当面对金融崩溃的前景时,我们采取果断措施,保卫我们的经济。

对于那些努力工作的家庭来说,这一时刻相当艰难。但如果我们不采取任何行动的话,情况会糟糕得多。对此,全美国凝聚在一起。信念、苦干和团结,将让我们把经济重新带回增长的轨道。

我们会再次向世界展示美国自由企业系统的韧性。如同所有我的前任一样,我也经历过挫折。如果还能有机会,有些事我会做出不同的选择。然而,我始终是以我们国家的利益为考虑标准。我跟随良知的指引,做我认为正确的选择。

你可能不同意我曾经做出的一些强硬的决定。但是我希望你能相信,那是出自我的真实意愿。未来的十年里,我们将面临更多的艰难抉择,我们应该有一些原则来决定我们的方针政策。

虽然我们的国家比七年前更加安全,但恐怖袭击依然是我们面临的最大威胁。我们的敌人极富耐心地等待下一次袭击。美国人本不应该承受这种灾难。但是我们有责任,也必须去面对这些威胁。我们要避免自满,我们要坚定决心,我们决不能放松警惕。

同时,我们还应该继续怀着自信和清晰的目标来参与世界各地的事务。面对来自外面的威胁,人们很容易畏缩不前。但是我们必须杜绝孤立主义和保护主义,闭门造车无异于玩火自焚。在21世纪里,一个国家的稳定和繁荣,取决于整个世界的自由进程。如果美国不能引导自由,那就没有人可以做到。

当我们谈论这些问题的时候——还有那些我们今晚无法预测的问题——美国人必须保持明确的道德性。我曾经无数次地跟你们讨论过善与恶。这个话题可能过于沉重,但世界上的确是善恶并存,并且没有妥协。

依靠残害无辜来推进意识形态在任何时候、任何地方都是错误的。将人们从压迫和绝望中解救出来才是正确的。这个国家必须继续宣扬真理和正义。我们要继续坚持推进和平。

托马斯·杰斐逊总统曾经写道:“我不缅怀过去的历史,而致力于未来的梦想。”当我要离开两个世纪前他住过的这座建筑的时候,我希望能够与你们分享这种乐观。美国是个年轻的国家,充满活力,不断成长,不断创新。即使在最艰难的时刻,我们仍昂首望着远方。

我对美国的承诺充满信心,因为我知道美国人的精神。

这是一个能够激励移民冒所有的风险来追求自由的国家。这是一个人民在危机中仍保持镇静,在痛苦中仍怀有同情的国家。我们周围都是这样的人。

今晚,劳拉和我邀请了一些人来白宫加入我们。我们在托尼·雷卡斯纳尔博士身上看到了美国精神,他在卡特里娜飓风的废墟中建立起一座崭新的学校。我们在胡里奥·梅迪纳身上看到了美国精神,他出狱后怀着信仰,领导了一个帮助犯人重返社会的帮助计划。

我们在奥布里·麦克戴德身上看到了美国精神,他在伊拉克勇闯敌阵救出了三个战友。我们在比尔·克里索夫身上看到了美国精神,这位来自加利福尼亚的外科医生,他的儿子牺牲在了伊拉克的战场。

当我见到克里索夫医生和他的家人时,他告诉我一个令人惊异的消息:为了纪念他的儿子,他希望加入海军医疗队。这位老人已经60岁了——比参军年龄上限大了整整18岁。

但是他的请求被允许了,过去几年里他一直在战地医院接受培训。克里索夫海军少校今天无法来到现场,因为他马上就要开赴伊拉克,在那里,他将帮助受伤的勇士们,并以此来纪念他的儿子。在这些美国人的身上,我们看到了我们国家的精髓——百折不挠而又充满希望,心存善良而又生性坚强。

这些美德使得我对美国的信心不可动摇。我们经历了危机与考验,而前方还会有诸多凶险。但是有了我们的勇气和信念,这个伟大的国家将不知疲倦……毫不犹豫……永不言败。我很荣幸有生之年能够成为总统,我体会过快乐,也经历过艰难。

但是每天我都为这个伟大的国家和善良的人民所振奋。我非常幸运地能够代表这个我们深爱的国家。我将永远为这个对我意味着更多的头衔而感到骄傲:美利坚合众国公民。

所以,美国人民,在这最后的时刻:晚安。愿上帝保佑下一任总统。愿上帝保佑我们和这个美丽的国家。

09规划

也算是对自己的一些要求吧.
 
1.不再折腾任何逆向别人的小软件,这对发展没有好处;
2.针对电视娱乐和桌面应用开发不少于3款作品,关于硬件方面;
3.加强体育锻炼;
 
1月17日

逍遥叹

岁月难得沉默秋风厌倦漂泊
夕阳赖着不走挂在墙头舍不得我
昔日伊人耳边话已和潮声向东流
再回首往事也随枫叶一片片落
爱已走到尽头恨也放弃承诺
命运自认幽默想法态多由不得我
壮志凌云几分愁知己难逢几人留
再回首却闻笑传醉梦中
笑谈词穷古痴今狂终成空
刀钝刃乏恩断义绝梦方破
路荒已叹饱览足迹没人懂
多年望眼欲穿过红尘滚滚我没看透
词嘲墨尽千情万怨英杰愁
语尽人散发花鬓白红颜莫
烛残未觉与日争辉图消瘦
当泪干血隐狂涌白雪纷飞都成空
爱已走到尽头恨也放弃承诺
命运自认幽默想法态扔刹坏梦?
壮志凌云几分愁知己难逢几人留
再回首却闻笑传醉梦中
笑谈词穷古痴今狂终成空
刀钝刃乏恩断义绝梦方破
路荒已叹饱览足迹没人懂
多年往烟雨穿过红尘滚滚我没看透
自嘲末境千情万缘已皆愁
曲终人散发花鬓白红颜末
烛残未觉与日争辉图消瘦
当泪干血隐狂涌白雪纷飞都成空
笑叹智穷不知今况终成空
到了人方恩断义绝梦方空
路荒已叹饱览足迹没人懂
多年往烟雨穿过红尘滚滚我没看透
自嘲末境千情万缘已皆愁
曲终人散发花鬓白红颜末
烛残未觉与日争辉图消瘦
当泪干血隐狂涌白雪纷飞都成空
 
1月14日

农历月份的别称

一月:正月、隅月、孟月、端月、始春、元春;
二月:如月、杏月、仲春、早春;
三月:病月、桃月、季春、炳月、三春、阳春、暮春;
四月:余月、清和月、桃月、孟夏;
五月:榴月、薄月、仲夏;
六月:且月、荷月、伏月、季夏;
七月:相月、巧月、霜月、孟秋、桐月;
八月:壮月、桂月、仲秋、中秋月:
九月:亥月、菊月、季秋;
十月:阳月、小阳春、孟冬;
十一月:辜月、葭月、仲冬;
十二月:涂月、腊月、嘉平月,季冬。
1月13日

铁路售票窗口为何要有窗帘?

不太理解,银行都没有,为什么部分铁路售票窗口却有?
 
今年票大多买不到了,许多人买到都是原价的几倍.
 
 
一些丑陋的画面:
1月11日

慎用 nokia 3230的 发送名片功能

刚才一个同事找我要另一个同事的手机号,我就用 名片夹的发送功能发过去了.发之前,发现姓名一栏只有 姓,打算加上名,但是无法编辑.当时想想,无所谓就发出去了.
 
结果过了一段时间,同事再次打电话过来,说怎么还没发过来,于是打算再次发送,打开已发送信息时,发现 图标和普通短信不同,多3个红竖线,于是改成打字发.
 
看来以前转发名片都失败了,这害人的功能.....惭愧,以前问我号码的朋友们,估计都没收到信息. 
 
再次激起 MTK 更实用的想法,Nokia的闹钟也很不爽.

cpptooltip 原来不是用IE控件的

惭愧,我错怪它了,之前遇到这个代码时一看html就无视了,这样再次看,发现是 html-lite,是作者自己实现的.
这样的话,就可以接受了,因为如果用IE控件来渲染,那资源相差可能就相差一个数量级了.
1月10日

巧做压缩包,节约磁盘空间

今天在整理硬盘,发现 VS2003中文版的压缩包 421M,英文版 400M,集成SP1的英文版403,考虑到两个原版安装包很少用到,决定合并成一个压缩包.花费差不多1小时候,包含中英文原版的安装包仅有461M,节约了300多M的大小.这个做法是以两者大量文件重复作为依据的.

屯堡地戏

居住在贵州天龙屯堡的人是朱元璋征南战争的屯军后裔,屯堡人是一个“尚武”的汉族群体,最能体现这一特点的是地戏,地戏在“屯堡文化”中占有很重要的分量,它是屯堡人的一种精神寄托和精神象征。地戏源于军傩,军傩是古代军队中用来作为出征祭典、振奋军威、恐吓敌人的一种傩仪。