分类目录归档:Windows

Windows

[原] 配置linux iptables NAT方式端口映射远程桌面到内网windows

好吧,标题比较拗口。想象这样一种场景:
外网—-linux(可以是路由器、也可以是物理机)—-内网—-windows
那么外网怎么能远程桌面到内网的windows呢,简单来说,就是通过配置linux的nat端口映射到windows的3389端口:

默认linux没有开启转发,需要先开启:

[原] Win7下Adobe Flash Builder 4.7 安装后瘦身的简单办法

C盘是块64G的SSD,开发工具越来越大,装得也越来越多,快撑爆了。
Adobe Flash Builder 4.7装完后超过2G,简单瘦身后是500余M。
其实很简单,利用win7的mklink创建软目录(目录指向重复安装的东西):
这里 C:\bianbian 是我安装开发工具的目录,默认是 C:\Program Files
1)jre,因为java的jdk里有(如果你没有装过jdk或jre,则跳过这步),所以:

2)flex SDK,4.7自带了flex 3.?和flex 4.6的sdk,太老了。现在apache Flex SDK都到4.13了

3)air sdk,(如果你没有装过air sdk,则跳过这步。我是下载Adobe上最新的air sdk(15.0)替换到apache Flex SDK里面的air sdk,因为Flex SDK带的air sdk一般比较老)。这里可以省出几百兆:

4)好吧,有个介绍Air平台是多么强大的视频,看完可以删掉,当然不看也不要紧:

[原] win7下启用无线网卡的wifi热点功能

原来还通过路由器刷openwrt然后刷一堆东西抓包,现在不用了,用win7自带的wifi热点吧
代码如下:

[原] 几个Win7版chrome的cache目录指向链接

chrome的所有用户data目录:
C:\Users\bianbian\AppData\Local\Google\Chrome\User Data\Default
上面bianbian替换成你的用户名
因为我的R:盘是内存盘,所以把几个cache目录全指过去:

[原] HTTP Authorization Digest 方式以及XP映射网络驱动器的身份认证bug

HTTP Authorization Digest 方式具体是这样算的:
username:realm:password —md5—> a1md5
HttpMethod:Uri —md5—> a2md5
a1md5:nonce:nc:cnonce:qop:a2md5 —md5—> response
但是XP下映射网络驱动器的身份认证存在bug:username中它会带上域名
也就是:发送的username = domain.com\username
server端要fix这个bug,如果只是简单把username里的域名去掉是不行的。
因为response是根据带域名的username算出来的,直接去掉会导致response不匹配,无法通过认证。
而要这样解决:
计算response时保留带域名的username,但是根据username取password时又要去掉域名。

[原] Powerpoint(PPT) 2003和2007添加http开头的图片的问题解决

powerpoint 2003 直接 “AddPicture (http://” 可行,如:

但在ppt 2007中,无法通过AddPicture添加http开头的图片,必须先AddShape,然后Fill:

详见:http://support.microsoft.com/kb/928983/en-us

[原] Thinkpad T400在Windows XP下装蓝牙的办法

我的驱动都是手装的,只安装了必要的驱动(Think的那一大陀软件只安装了硬盘防震动的),发现XP下无法识别T400的蓝牙设备。
症状:Fn+F5没反应,bluetooth的指示灯不亮(机器左下角的硬件已经拨到启动无线、主板BIOS也已经Enable蓝牙)。
安装了蓝牙软件后一直提示“未找到buletooth设备”。
后来经过不断尝试,写出解决办法:
安装HOTKEY(鄙视Thinkpad啊。。。。非要多装个垃圾。。。。)。
找到HOTKEY的安装目录,手动运行TpFnF5.exe(其实就是按Fn+F5组合键后启动的程序,不知道为什么我全手动
装的驱动为什么不支持Fn+F5的监听)。
一运行,就提示找到新硬件,然后就可以安装Windows XP的蓝牙补充驱动和软件了,这时就可以看出蓝牙设备原来是个USB。
装完后,不能卸载HOTKEY,否则声音控制的那几个键不能用了,卸载程序太暴力。
只好在注册表里禁止开机运行。
记在这里,搜索过来确实有用的朋友请吱一声。

[原] Paragon Partition Manager真是太牛了

作为DOS下的分区工具,Paragon Partition Manager实在是太牛了!
上次装系统已经感慨过一次了:DOS下能直接对AHCI模式(高级主控接口)下的SATA硬盘进行操作,要知道这个模式Windows XP都没办法!
今天因为想格式化Temp分区(5G,用来放pagefile、asp.net的编译结果等;系统的Temp和IE的Temp我是放在内存盘里的,哇咔咔,内存一定要大),又进了一次这个软件。结果发现,它居然把插在USB上面的512G的移动硬盘也识别出来了。。。
太牛了,微软赶快把它收购吧。。。

[原] Total Commander Service to show/hide TC by hotkey/boss key/shortcut key

Total Commander Service is a NT service, which supports:
1. Auto-launch TC when starting Windows
2. Hotkey: Win+Q to show/hide TC, or start TC when exit

Please put the TotalCMDService.exe (52K) in TC’s directory, and run to install/uninstall the NT service.

Tips, the best configuration:
Operation:
Check “Allow only 1 copy of Total Commander at a time”
Uncheck “Move icon to system tray when minimized”

Feel free to modify or distribute this code in any medium as long as these following two lines remain unchanged:
Total Commander Service, by bianbian.org@gmail.com
http://bianbian.org/technology/336.html

Download exe:TotalCmdService.zip (22K) , and src:TotalCmdServiceSrc.zip (10K, VC++6.0)

[原] 自制Total Commander自动启动和呼出热键

经历多次安装卸载安装卸载,我这次终于静下心来琢磨了一下传说中的Total Commander。
总算有点上手了,确实方便,尤其现在内存大,根本不在乎耗多少资源。哈哈
不过郁闷的是这个玩意定义了那么多快捷键,却不支持呼出自己的快捷键。。。
好吧,我写个了windows NT 服务,来启动Total Commander。。。
同时注册了个全局热键(快捷键):Win+Q 来呼出Total Commander
Win+Q:T400的键盘这两个键,对我的手来说刚好是左手拇指和小指很舒服的位置。如果要改您下源码改吧
在注册表里扫了一遍,居然没有total commander的任何信息,果然绿色。
好吧,我承认,现在由于忙的关系,这个服务只做了个框。。。。过几天发布。。。。
补充:
好吧,发布了,嘿嘿:[原] Total Commander Service to show/hide TC by hotkey/boss key/shortcut key
1. 是系统服务(意味着没登录就启动TC了)
2. Win+Q隐藏或者呼出TC
下载到TC的目录里运行,安装/反安装(第一次运行安装,第二次卸载,。。。)。
由于是系统服务(默认用户是LocalSystem),如果直接启动TC也将以LocalSystem的身份运行,会带来很多问题(比如输入法就启动不了了)。
因此程序调用API(LogonUser)先进行了模拟登录,所以安装的时候需要输入用户密码。

Download exe:TotalCmdService.zip (22K) , and src:TotalCmdServiceSrc.zip (10K, VC++6.0)

[原]终于知道“未知设备”是什么了

上次导师给我用的HP的台式机原来是正版Windows Media Center(可直接升到Vista),我嫌装了一大堆HP的垃圾软件,刚拿到手就格了。后来自己找了驱动,装了一晚上的XP(听说HP的机器都不带驱动盘),网卡、显卡、声卡等等都装好了,就是多出来一个未知设备。
今天终于知道原来是“离开模式”:ARPC Devices MS ArACPI
离开模式(Away Mode)是Media Center 2005 更新汇总2新增的一种电源状态,也会在Windows Vista中提供。离开模式组件并不随Media Center 2005 更新汇总2 安装,而是由OEM(原始设备制造商)使用微软提供的AwayMode-KB902347-xxx.exe安装程序预安装在支持此技术的媒体中心电脑上。此功能并不能在普通电脑上使用,而需要OEM定制特殊的BIOS。
启用时,离开模式会替代休眠模式,也可设置为进入离开模式一段时间自动进入休眠模式以进一步节约电能。

在离开模式中:

★计算机仍然可以执行任务,如录制预定的电视或流媒体到网络上的位置
★不再输出显示信号
★系统静音
★暂停播放媒体(实时电视除外)
★可以正常使用Media Center Extender
★计算机看起来已经关闭,但实际上在运行(S0状态),处于低电源消耗状态
★当用户按下遥控器上的休眠按钮,可以立即打开显示器回到正常状态
★可以设置为阻止HID和PS/2设备输入(避免小孩和宠物搞破坏)
★当插入闪存设备(U盘、存储卡等)时,会立即唤醒回到正常状态
★当插入光盘时,会立即唤醒回到正常状态
★中央处理器和显示芯片进入低功耗但不影响功能的状态(需要硬件及驱动程序支持)
★提醒内核模式和用户模式的组件切换状态,比如显卡降频工作、即时消息软件(MSN Messenger)切换用户的状态
★OEM可以指定让电源指示灯关闭
★OEM可以指定计算机中的风扇仍然工作、放慢速度或者停止转动

微软知识库——“离开模式”说明(英文):
http://support.microsoft.com/kb/902437
微软知识库——“离开模式”已知问题(英文):
http://support.microsoft.com/kb/909311
HP网站关于“离开模式”的说明(英文):
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bph01013#bph01013_awaybph01013_away

[原]windows命令Copy合并多文件的bug及解决

先来看看copy的语法:

C:\Documents and Settings\Administrator>copy /?
将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ …]] [destination [/A | /B]]

source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。
/D 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/V 验证新文件写入是否正确。
/N 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/Y 不使用确认是否要改写现有目标文件
的提示。
/-Y 使用确认是否要改写现有目标文件
的提示。
/Z 用可重新启动模式复制已联网的文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批文件脚本中执行的,默认值应为
在改写时进行提示。

要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。

其中,file1+file2+file3还是挺好用的,我一般拿来合并JS脚本,比如:
copy bianbian.main.js + bianbian.DOM.js + bianbian.other.js bianbian.src.js /Y
jsmin <bianbian.src.js >bianbian.js
(用jsmin来删除注释缩进等等,让代码小一点)。

不过,现在发现多文件合并有bug:
1)合并以后在文件末尾会产生一个奇怪的字符(十六进制ASCII码为”1A”),如果直接引用这个js,则任何浏览器都会报错。不过这个字符用jsmin了以后就会被删除,所以这个bug倒并不要紧

2)如果这些文件格式是UTF-8的,合并的时候不会删除每个文件的UTF-8头声明,导致解析出错。我们知道UTF-8格式的文件会用“FF FE”开头(可以看做UTF-8声明),而copy只是简单地将所有文件的ASCII码合并,所以合并后的文件正文也会有“FF FE”。这样,会导致每个源文件第一行的脚本解析出错(比如function,会解析成 ?unction,此处问号表示不认识的字符。不过这个解析目前只在Opera下发现出错)
。解决的办法是每个源文件的第一行都留空,不要写脚本。

[原]远程桌面、端口映射和VPN真是好东西

先看完我的测试。。。。。
先介绍一下,家里有个没有显示器的台式机连在路由上天天下BT,平时用笔记本双机互联在台式机上上网。
1) telnet挂站测试:
小百合BBS可以登录三个窗口,于是:
笔记本->远程_家里台式机 登一个;
笔记本->远程_家里台式机->VPN南大校内->远程_实验室机器 登一个;
笔记本->远程_家里台式机->公司路由端口映射->远程_公司机器 登一个
2) 连环测试:
笔记本->远程_家里台式机->公司路由端口映射->远程_公司电脑->家里路由端口映射->远程_家里台式机->远程_笔记本(xp,把自己踢了)

[原]ARP欺骗及防治

今天和danny一起试了一下p2pOver(网络执法官也属于此类),一开始都觉得很奇怪:交换机不像hub,已经不广播了,怎么还能控制别的机器的流量呢。。。好玩,研究一下。用数据截取软件(wireshark)查看了一下,其他都正常,却发现狂发了N多ARP(Address Resolution Protocol、地址解析协议)包。看来问题就出在这里。
ARP欺骗原理
再仔细看了一下ARP数据包,终于恍然大悟欺骗原理。
是这样的,为了能和其他机器通讯,局域网上的各个机器都缓存了ARP列表(ARP列表可以简单理解成“一个IP地址对应一个MAC地址”)。机器要通过网关和其他机器通讯,其实是在局域网内发了查询ARP请求(可以简单理解成“网关啊,请把你的MAC地址告诉我好吗?”);网关收到此类请求后,就会发送ARP回应报文,回应网关的MAC。这样,某个机器就会把通讯数据发到网关的MAC上。
那么运行了p2pOver之类的软件后是怎么欺骗的呢?简单起见,我们设使用了p2pOver的机器为”A”,”A”的MAC地址为”M”。
首先,”A”通过ARP查询得到真实的网关MAC,和不停地轮询局域网上其他主机(IP)及其MAC。
其次,”A”不停地给局域网上其他主机发送伪造的ARP回应报文:告诉他们网关的MAC是”M”;
同时,”A”也不停给交换机发送伪造的ARP回应报文:告诉真正的网关局域网上所有主机的MAC地址为”M”。
因为是不停地发送报文,到了最后:局域网上的其他主机以为网关就是”A”,真正的网关以为局域网上的所有通讯只来自”A”。也就是”A”变成了事实上的中转中心:不仅可以截取其他主机的流量和数据,还能随心所欲地截断网络通讯。
ARP欺骗防治
从欺骗原理,不难推出防治关键就是想办法不接收错误的ARP回应报文:
1) 使用智能交换机,绑定网内所有IP-MAC。这样也就不需要ARP查询才能知道MAC。
2) 还有一个办法,就是在网内所有机器上绑定死网关的MAC(下面适用于WinXP):
在网络正常情况下:arp -a 网关IP(如192.168.1.1),查询到正确的网关MAC
然后绑定网关MAC:arp -s 网关IP 网关MAC
在执行arp -a,看到网关IP和MAC是静态(Static)的,就可以了:
arp