Sunday, November 25, 2007
这可是真正最早的中文Mac系统。。。
很久以前就收到的(1988年版)系统CH-1.2,繁体系统TA-1.2。只不过今天才找到合适的工具把它弄成模拟器可用的格式。
安装方法其实很简单,别看第一张盘启动都是乱码,但只要把系统文件夹(看图标能看出来)拖到其它空盘上,把disk2、disk3里图标是“汉”的字体文件拖到那个系统文件夹里,可用的系统就build出来了。
本地下载:
简体CH-1.2 http://users2.nofeehost.com/yksoft1/download/ch1.2.zip
繁体CH-1.2 http://users2.nofeehost.com/yksoft1/download/ta1.2.zip
模拟器Mini vMac for Windows及 HFVExplorer工具 http://users2.nofeehost.com/yksoft1/download/minivmac.rar
(Windows)想用iTunes 7.5?不想装新版本Quicktime?这样就行。
我虽然没有任何新一代iPod和iPhone,但也想先试试这个新版本的iTunes。为了测试,我在下完7.5安装程序这个50多兆的怪物之后,准备做点小小的tweak。
我原使用的iTunes 是版本7.2,Quicktime版本是7.1.6。从http: //www.apple.com/support/downloads/quicktime716forwindows.html下载Quicktime 7.1.6的独立安装包,用WinRAR解压缩出其中的Quicktime.MSI,备用。
运行iTunes安装程序,直到出现第一个画面。此时,在资源管理器中进入当前用户的临时目录(可直接输入%temp%进入),找到一个形式如 ixp000.tmp的目录(iTunes安装包为Windows Installer的IExpress自解压包,%temp%\ixpxxx.tmp是其默认解压到的目录)。进入它,你就能看到 Quicktime.msi(Quicktime7.3)、iTunes.msi、Apple Mobile Device.msi(iPhone和iPod touch支持)、Apple software update.msi等几个MSI安装包。现在你应该想到了,把Quicktime.msi替换成刚才备用的那个7.1.6的,就能实现目的——装上 itunes 7.5 而不装Quicktime 7.3 的目的。(当然前提是你的老Quicktime已经是7.1.6,不然独立安装包和集成安装包之间的区别,我还不知道怎么对付呢。如果已经是7.1.6, Windows Installer根本不会继续运行7.1.6的安装脚本。)我这样测试,当然取得了成功。
其实iTunes因为是使用一种兼容型的Objective C编译器编译,因此体积确实偏大。但是可以通过移除一些不需要的语言资源来达到减小体积的目的。这些语言资源文件在C:\Program Files\iTunes\iTunes.Resources及几个类似形式的目录中,移除其中除en.lproj(英文)、zh-CN.lproj(简体中文)、ja.lproj(日本语)之外不用的语言即可。这样,几乎可以减少iTunes目录的一半体积(30多兆啊)。当然因为Windows Installer的那个自效验,原来Windows Installer建立的快捷方式就不要再用了,不然运行就会试图把这些语言文件修复回来。。
如果不需要支持iPhone或者iPod touch,也可以在“添加/删除程序”里把Apple Mobile Device删除(10多M),不会影响iTunes 7.5的正常运行和其它各种iPod的使用。你可以看到,我已经删除了。
Tuesday, November 6, 2007
对模拟器最强的挑战:PC98用 Windows 95
我经过多次实验,在Anex86+Anexx21 v2.78上最终将其运行成功。
最初我安装后无法启动,将DIPSW2-8(GDC频率)设置为开(5MHz),进入安全模式后将显示模式修改为640*480*256色,重启后启动成功。
启动成功。因为Anex86的bug(扩展内存不能超过14M)整个系统的内存都过少,而且由于9821GDC模拟效率超低,并且Anex86的SASI控制器根本不被Windows95支持(只能使用MS-DOS兼容方式),导致整个系统运行速度很慢。
Saturday, October 20, 2007
Windows Vista UAC的一处严重的愚蠢设计(之二)
为了搞清楚是什么程序或者服务造成这个问题,我打开了我的两个工具:IceSword和ProcessMonitor(这两个经常手工杀毒的肯定至少用过)。
先开IceSword,选中监视进线程创建,运行那个问题安装包。很快我就发现,有一个svchost进程和一个叫consent.exe的进程异常活跃。
(注意其中那个lsm.exe不是特殊程序而是相当于XP/2003的winlogon.exe和部分lsass功能的程序)。
consent.exe是在复制文件一段时间后才真正运行的。如果在它出现到UAC窗口出现之间的一段时间把这个进程结束掉,什么错误都不会发生,而那个临时文件已经消失了。为了继续调查,我设置了几下ProcessExplorer的规则。
证 明那个服务在疯狂读取原文件并复制到%windir%\temp下,consent只是读那个临时文件而已。知道了那个svchost.exe的pid, 也就容易弄清楚那个服务到底是何方神圣了。很快就通过IceSword查找到这个svchost的模块里有mmcss.dll(那个造成放声音减网速的 MMCSS服务),BITS.dll(Windows Update的那个背景传输服务)等等东西,看上去都是属于那netsvcs组。进一步查看,反复尝试对这个组的各服务进行操作,发现有一个怎么也结束不 掉(无响应)的服务──AppInfo。这是这个服务的说明:
辅助管理权限?和UAC的功能一样!难道是它?因为这个服务结束不掉(不管是用MMC,用net stop还是sc stop都无响应),只好先将其设置为禁用,再结束掉它的母svchost.exe。
再次运行那个安装包,结果……
果然。现在这个服务无法启动,任何要求UAC提升权限的东西都无法启动了,那个临时文件也根本没有被创建。但是为什么要求吞食硬盘空间的却是这个作为UAC功能之核心的服务呢?
我可以粗略分析出UAC对于一个安装包/自解压EXE文件是如何工作的:
(1)Win32 API Winexec函数运行该程序
(2) 检测安装包的文件名和属性中的信息,发现一些特征如关键词"setup""install"一类或者在应用程序兼容性数据库(我目前发现它存在在% windir%\apppatch下的三个.sdb文件中)发现相关项或者在应用程序的内嵌/外挂manifest中发现特殊要求(如 icesword.exe)
(3)Appinfo服务复制这个文件到%windir%\temp下
(4)consent程序检验这个临时文件的数字签名等信息,负责弹出UAC确认窗口
(5)如果选允许,consent以自身的高权限运行原.exe文件并退出
(6)appinfo服务检测到consent退出,删除临时文件
用伪代码可以这么描述
WinExec(string filename) /*这里的filename指完整路径名*/
{
bool issecure;
issecure=SecCheck(filename));
if(!issecure)
{
UAC(filename);
return 0;
} /*(2)*/
execFile(filename);
}
UAC(string filename)
{
string tempfilename;
string consentline="consent.exe -v origfile= ";
strcat(tempfilename, Getenvironmentstrings("Windir"));
strcat(tempfilename, "\Temp");
strcat(tempfilename, tempNamegenerate(GetNamefromFullpath(filename)));/*生成临时文件的完整路径名*/
Copyfile(filename, tempfilename); /*(3)*/
strcat(consentline, filename);
strcat(consentline, " tempfile= ");
strcat(consentline, tempfilename);
execFile(consentline, suspendwhenrunning); /*(4)(5)*/
deleteFile(tempfilename);/*(6)*/
}
我发现这个问题,就是发生在第二步。第二步失败后并没有跳到第6步。微软要做个权宜之计的修正,只需要把Copyfile(filename, tempfilename); 这里改成if(!Copyfile(filename, tempfilename)){deleteFile(tempfilename);return 0;}就没问题了;不过为什么一定要复制文件到系统目录呢?
Friday, October 19, 2007
Windows Vista UAC的一处严重的愚蠢设计
今天试图在Vista下运行一个500多M的大安装包,结果系统盘(F区)空间只有300多M。结果,运行了之后硬盘响了半天,愣是没看到那可爱又可恨的UAC提示,反而出来个对话框说“磁盘空间不足”。结果一看,F区没空间了。Windows Explorer自己的“磁盘清理”功能一弄,系统日志一清,各浏览器缓存一清,只清空出大概200兆空间。到处找了半天,找到了F:\Windows\temp——所谓“全局”临时目录下躺着个300多兆的临时文件。winhex打开一对比,结果此文件就是那个安装包的截断版本。
我做了个小实验。把F盘再腾出几百兆空间,再次运行那个安装程序。
硬盘又一阵稀里哗啦的狂响。20秒后,在UAC窗口闪烁在任务栏的时候,怪物也出现在了temp目录中:
切换到UAC窗口,随手点“取消”。这时候这个临时文件也突然消失了。再试了个别的安装程序(日文WPS2007 Beta安装包),结果也差不多,文件还是被复制到了F:\windows\temp下。
那如果系统盘的空间不足会怎样呢?再测试一下。。
结果。硬盘空间一下就被吃光,出现了那个“磁盘空间不足”的窗口。
具有讽刺意义的是,这个被截断的临时文件,默认还是TrustedInstaller组权限下的东西,你想删掉它,还要再过一次UAC。
这可以算是Vista的一个严重BUG了。验证数字签名,有必要放到自己的领地里来吗?当磁盘空间不足的时候,也没有进行任何的防护措施,最后出错后那临时文件也摆在那里了。
Wednesday, October 17, 2007
Youtube,墙的新牺牲品
C:\Documents and Settings\yksoft1>tracert www.youtube.com
Tracing route to www.youtube.com [208.65.153.251]
over a maximum of 30 hops:
1 1 ms 3 ms 1 ms *.*.*.*
2 1 ms 1 ms 1 ms 10.0.0.5
3 * * * Request timed out.
4 5 1 ms 1 ms 1 ms 222.247.29.109
6 7 3 ms 3 ms 3 ms 61.137.0.133
8 10 ms 10 ms 10 ms 202.97.40.49
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * ^C
当你看到第8步之后,你会认为什么呢?
202.97.40.49是在主干网上。。
只有一个原因,就是Youtube被第一层盾了。
使用另一个DNS的结果
D:\Users\Administrator>tracert www.youtube.com
通过最多 30 个跃点跟踪
到 www.youtube.com [208.65.153.253] 的路由:
1 2 ms 2 ms 2 ms *.*.*.*
2 1 ms 2 ms 2 ms 10.0.0.5
3 * * * 请求超时。
4 5 1 ms 2 ms 2 ms 222.247.29.69
6 1 ms 1 ms 1 ms 61.187.255.69
7 4 ms 4 ms 4 ms 61.137.0.229
8 11 ms 11 ms 11 ms 202.97.40.253
9 * * * 请求超时。
10 * * * 请求超时。
11 * * * 请求超时。
12 * * * 请求超时。
13 * * * 请求超时。
14 * * * 请求超时。
15 ^C
D:\Users\Administrator>
其他两个地方的结果:
Tracing route to www.youtube.com [208.65.153.251]
over a maximum of 30 hops:
1 * * * Request timed out.
2 41 ms 46 ms 31 ms 218.68.252.97
3 46 ms 46 ms 46 ms 218.68.251.161
4 42 ms 46 ms 46 ms 202.99.66.153
5 46 ms 46 ms 42 ms 219.158.5.90
6 41 ms 46 ms 46 ms 219.158.4.189
7 78 ms 73 ms 73 ms 219.158.4.190
8 219.158.3.222 reports: Destination host unreachable.
Trace complete.
Tracing route to www.youtube.com [208.65.153.253]
over a maximum of 30 hops:
1 <1>
1 * * * Request timed out.
2 <1>
为什么国外网站一出中文版,就如此多灾多难呢?难道是blogger的暂时解除换来的是youtube的Orz呢?明年狗林匹克的时候大量洋人要来,youtube估计他们有天大胆子都不敢继续盾。
Update 10.18 12:53: http://www.google.com/search?hl=en&q=www.youtube.com&btnG=Google+Search
哈哈。不仅是第一层,还是第二层。可惜我还不是最快的~
Wednesday, October 3, 2007
在Windows Vista 系统使用软波表软件 VSC-88 v3.23的办法
不过看了这篇文章http://www.pp-express.info/Vista_MIDI/vista_midi.htm之后,我真是茅塞顿开。原来在Vista上安装调试VSC竟然是这么简单!因为很多人不懂日文,我把其中的步骤简单解释一下。
1、关闭UAC(不用解释怎么关闭了吧),将VSC(需要是版本3.2以上)的安装程序设置为Windows XP SP2兼容模式(这点也不用解释了吧。。)
2、运行安装程序,在选择安装目录时,千万不要选择默认目录(这可能是整个问题的最大根源!),应该将其安装在一个User组就具有完全读写权限的目录中。
3、 重新启动系统。如果没有出现错误窗口,任务栏中出现VSC图标,安装就是正常的。双击VSC图标,随意用自带播放器播放几个MIDI文件,进入控制面板对 VSC进行设置,设备建议不使用DirectSound(使用DirectSound或有很大的延迟),第一个选项卡的延迟设定尽量调小(能用Vista 的机器把这个调低也没关系了)。
4、打开UAC,重新启动。如果此时启动后出现错误提示,那么前面肯定有步骤不对。如果正常,此时应该重新做第三步设置(UAC状态下,程序写入的注册表位置是虚拟化的)。
5、此时在可以自己选择MIDI输出的各应用程序中,VSC应该已经可以正常工作了。如果一直无法运行,甚至出现蓝屏、死机等严重错误现象,那么就可能是硬件驱动不兼容,这种情况没法解决。
6、但是此时在使用系统默认MIDI输出的程序(如WMP、Falcom的游戏)中,系统仍然会调用系统自带MIDI。此时需要通过修改注册表来修改默认MIDI输出,但这样明显过于麻烦。有些人已经为解决这个问题专门写了控制面板小程序。我使用的是Putzlowitschs Vista MIDI-Mapper(来自http://putzlowitsch.de/2007/08/07/sichtwechsel/)。它可以在系统自带MIDI和VSC之间切换默认的MIDI输出。
这是最后的结果:
最后要提一点,无论如何设置,VSC for MCI是一个古董级的程序(2001年最后更新),所以我不保证它在现代的机器上的可用性。
Monday, October 1, 2007
是blogger换服务器ISP了,还是已经进了城门了?
今天我的本空间竟然可以直接连接通,而不是连接超时。
在这个急需强大的和谐力量的时段(第十七件大事临近、离某和谐盛会只有11个月不到),怎么可能轻易打开城门放入这条怪兽呢?估计重新关门打狗、把它踢出墙外只是时间问题。
Update 10月2日上午11点:果然就和上次八一解封Wiki一样。放一天风。这就是网络为政策服务的突出表现。,
Update again 10月16日 下午5点半 第十七件大事正在进行中,城门似乎又打开了一点。可以直接访问这里。
Wednesday, September 26, 2007
对付微软强制要求升级Messenger 7.x到8.1的办法
Saturday, August 25, 2007
古董软件:Quicktime 1.1 for Windows
另外值得一提的是,苹果与微软的两宗积案之一就是和这个San Francisco Canyon Company有关(另一件是著名的“外观与感觉案”)。大约在1993年,Intel和这个公司合作开发了用于Video for Windows 1.1d的DCI技术。在第二年苹果将这个公司告上了法庭,声称其在与Intel合作开发的VfW1.1d代码中使用了数千行QuickTime的代码,并很快将被告延伸至微软和Intel。95年5月3日,一名联邦法官发布了要求微软停止公开发放VfW1.1d的临时命令,微软也很快放出了排除可疑代码的VfW1.1e版本。而此案一直没有判决。
当乔布斯回到苹果之后,这两件案子都最终私了处理,苹果不得不在以后5年内的MacOS中捆绑IE,微软则将原来开发苹果软件的各部门重新编成了专门的Macintosh Business Unit,简称MacBU,专门负责开发苹果软件。
参考资料:
http://en.wikipedia.org/wiki/San_Francisco_Canyon_Company
这里提供的是1.1版本,装在两张软盘中,适应于Windows 3.1。
它只支持早期的几种编解码器,16M以上的mov文件、QT6/7编码出的文件完全不支持
下载:2*1.44MB软盘镜像
http://users2.nofeehost.com/yksoft1/download/qt11.rar
Tuesday, August 21, 2007
CCED的最终版本:CCED2000 发行版系列
CCED是当年中国大陆一个很著名的文字处理软件。它的出现和当年的王者——WPS几乎是同一时间,它和WPS一起取代了当时最流行的中文文字处理软件Wordstar汉化版。由于后来微软Office的入侵,CCED和WPS马上就变得不再流行。现今WPS仍然在继续开发并开始往海外发展,但是CCED因为它的WINDOWS版过于类似它在DOS下的原版,而且它后来又完全变成个人小公司开发,因而比WPS的下场更为凄惨,自从2004年它更新了最后的发行版3和发行版5之后,就再没有更新记录。它的网站自从2004年6月之后,完全出于冻结状态。可能也不能够再注册了。(注册了也不一定能用,尤其是那该死的软盘认证)
我提供三个发行版(1、3、5)的注册破解版本地下载。
http://users2.nofeehost.com/yksoft1/download/cced2k_release.rar
古董软件:Acrobat Exchange 2.0 for Windows
这个版本很老,在Windows 3.2中文版下使用时,中文字符会被位图化,使得压缩率很低。
安装序列号请见第一张图。
下载地址:http://users2.nofeehost.com/yksoft1/download/acrobat200.zip
古董软件:WPS97
稀有的Windows for Workgroups 3.11 “导通科技”汉化版
古董软件:PC Paintbrush 系列
PC Paintbrush这个程序出现得很早(大概是1985年)——Windows刚出1.01,Mac出现不到一年。它模仿了MacPaint和之前PC上第一个有GUI的位图处理软件PCPaint,在DOS下实现了鼠标操作的图形界面。这个程序建立了自己的PCX文件格式,应用了LZW压缩算法。这个软件的1.x系列中,1986年的1.05是Windows 1.x用版,成为了第一批Windows程序之一,但直至1992年才推出下一个Windows版。这个程序历经2.0-5.0 DOS版,之后母公司Zsoft被broderbond收购,broderbond又被The learning company收购。其间,PC Paintbrush被移植到Windows3.x平台,其后发展成了PhotoFinish和PC Paintbrush Designer两个分支,最后的一个版本是32位Windows版的,1996年发行的PhotoFinish 4.0。
它最大的失败原因在于,它的功能一直都无法真正满足需要,加上Photoshop、Painter这类强大而专业的位图工具的出现使其几乎失去了竞争力。
微软与PC Paintbrush是有一段关系的。在PC Paintbrush还在1.x版本的时候,微软就得到了授权而将其加上Microsoft品牌,和微软的鼠标一起捆绑发售为“Microsoft Paintbrush”,以2.0和2.1的版本号发售。Windows 3.x/NT 3.x的“画笔”程序,实际上是PC Paintbrush的这个版本的简化移植。
这里提供的截图和下载包括Publisher's Paintbrush 1.03、Microsoft Paintbrush 2.0和PC Paintbrush Plus IV。
Publisher's Paintbrush 1.03
Microsoft Paintbrush 2.0
PC Paintbrush Plus IV
下载:Publisher's Paintbrush 1.03
http://users2.nofeehost.com/yksoft1/download/pbrush3.rar
Microsoft Paintbrush 2.0
http://users2.nofeehost.com/yksoft1/download/mspbrush2.rar
PC Paintbrush Plus IV(720K软盘镜像*3)
http://users2.nofeehost.com/yksoft1/download/PCPaintBrushIVPlus.rar
想知道Real媒体系统、Realplayer和real编码软件最早是什么样子吗?
和今天大量向系统复制文件(主要是Real编解码器群)并写入很多注册表键值的RealPlayer相比,这个最初的、只有16位的版本组成非常简单:两个EXE(pnclient.exe、pnfront.exe),一个DLL(ra.dll),就是全部。当然它的功能也是很弱的——只能播放一种Codec的RA文件,就是8kbps的RealAudio 14.4。而且,它也只支持PNM协议的网络流传输。
RealAudio 14.4是一种适合于语音的解码器,它并不适合音乐的编码(响应频率只有4KHz,而且本身并未为复杂内容所优化)。因此,在下面提供的示例文件中,你将会听到,音乐已经不成为音乐。
下面就是编码器RealAudio Encoder 1.1。它更加精简,只有一个EXE。使用方法仅仅就是把16位、单声道、线性PCM的WAV文件拖动到编码器窗口内,输入信息,就会自动编码成同一目录下同名的RA文件。当然,也只有一种编码器,一种码率,就是8kbps的RealAudio 14.4。
下载Player+Encoder:http://users2.nofeehost.com/yksoft1/download/oldestreal.rar
RealAudio 14.4示例文件http://users2.nofeehost.com/yksoft1/download/ra1sample/natumabo.RA
http://users2.nofeehost.com/yksoft1/download/ra1sample/xslds.RA
你试用这些老掉牙的工具,你会觉得Real的发展实际上也是个奇迹。
古董音频播放器:WinPlay3
就是这个了,MP3格式的专利所有者——Fraunhofer IIS在94-97年间发布的第一个实时MP3格式播放器,也就是Winplay3。
Winplay3的界面和功能都极其简陋。它只能播放本地的MP3文件,并且通过HTTP1.0协议(不支持1.1!)播放Web服务器上的MP3。只能显示文件本身的信息(压缩层数、码率、采样率、声道),不支持任何一种ID3描述格式。如果带有ID3V2,早期的WinPlay3甚至因为文件头不是一个MP3帧,而不会接受这个MP3文件! 至于播放,他也没有快进快退的功能。在它的时代,它还属于高端应用程序(需要486DX2/66以上的CPU和支持48KHz 16位采样率的声卡)。
这是WinPlay3 1.0 16位版运行于32位的Windows Vista操作系统下的截图。
很快这个播放器就被扩展到了32位Windows平台。以后这个播放器发展得极其缓慢,Winamp的兴起、Fraunhofer IIS MP3 ACM/DirectShow编解码器在Windows Media Player的绑定与使用的普及也许是它在1997年停止更新的原因。
这是它的最终版本WinPlay3 2.3b5 32位版运行于32位的Windows Vista操作系统下的截图。
下载:http://users2.nofeehost.com/yksoft1/download/wpv10.zip
WinPlay3 1.0
http://users2.nofeehost.com/yksoft1/download/wpv23b2.zip
WinPlay3 2.3b5
Windows 1.x的共享软件
这些软件大多只是简单的小程序,大小最多几十K。包括:
balloon.exe 鼠标钻气球?!
boxes.exe 显示大量矩形的demo
chase.exe 多个点追踪一个点的demo
cube.exe 显示一个旋转的立方体
digiclok.exe 任务栏上的时钟图标
dumpmsp.exe Win1.x下罕见的一个截图程序,保存为黑白MSP,需要Win1.03以上
fishes.exe 微软的显示很多游动的鱼的demo
fontdemo.exe 显示所有字体
fuse.exe 旋转的直线demo
getbitmp.exe 把剪贴板位图保存为.bmp(不知道什么格式,不是Windows的BMP)
globe.exe 显示旋转的地球,法国微软某人作品
gopher.exe 随机在屏幕上显示钻出洞的地鼠
hexcalcw.exe 简单的16进制计算器
hpcalc.exe 难以使用的科学计算器
life.exe 模拟菌落(?)的游戏
puzzle.exe 微软的拼图小程序
slapjr.exe 微软员工作品,把屏幕内容保存到剪贴板
spy.exe & spy104.exe 显示各控件的属性
tictac3d.exe 3D空间的Tic-tac-toe游戏
tp.exe 类似于“四川省麻将”的游戏
截图(10张!)
下载
http://users2.nofeehost.com/yksoft1/download/win1share.zip