Day 3348 复制带有刻意制作的坏道的防拷光盘

copyprotected_cd_with_badsector_on_purpose

盘长这样,可以明显看到有一圈银色,那个是可以制作的坏道,如果使用按Sector复制的工具,读到这里就会因为读不下去而制作镜像失败。

这张盘是某部门下发的软件数据盘,因为某些奇怪的原因,在对应需要装的机器上无法识别,但是又必须尽快安装,于是处理方法如下:

  1. 使用IsoBuster的Extract RAW模式将光盘制作成镜像,当读到那圈银色的坏道时会出错,这时取消操作,会出现是否删除文件的提示,点击否即可。
  2. 此时制作出来的文件因为文件尾没有封口,是不能直接载入虚拟光驱软件的(尝试使用7-zip之类的软件也会出错),但UltraISO可以识别,所以在UltraISO中打开镜像文件,然后对其进行另存,文件就会被修正到可用状态。
  3. 在Daemon Tools Lite之类的软件中载入镜像安装即可。

话说现在已经是软件任意派发然后通过各种方式限制使用授权了,某些部门还在用这种落后的方式防拷,真是不思进取。

P.S. 这张盘检测安装程序是否是从光盘引导的方式是检测两个隐藏文件(不是简单的加了隐藏属性,而是从ISO目录中隐藏),所以通过制作镜像的方法很轻易就能绕过去。

Day 3341 Excel 2007 启动时提示配置 Visual Studio 2013

事情是从今年初安装了Visual Studio 2013 Community Edition后开始的,每次启动Excel 2007时都会出现以下Windows Installer的提示,让它走完或者按取消,下次启动Excel 2007都会重复出现:

excel_vs2013_msi_on_startup

解决方法:

  1. 如果系统配置了UAC,则去Office安装目录中「使用管理员权限运行」Excel.exe。
  2. 点击Excel左上角圆圆的Office图标,选择「Excel选项…」,点击左边的「加载项」,然后在右边找到「管理:」,下拉选择「COM加载项」。
  3. 在新弹出的「COM加载项」管理窗口中,取消选择「Chinese Translation Addin」即可(如出现「无法更改 HKEY_LOCAL_MACHINE中注册的……」请重做第一步)。

至于具体原因不得而知,因为给出这个解决方案的是Excel某次启动后给出的提示:「似乎中文翻译加载项出错了太多次,要禁用它吗」,点了确定就OK了。

Day 3337 Acrobat XI 使用amtlib.dll破解的后遗症

事情的起因是:最近使用WinRAR解压缩文件时,出现了一个奇怪的现象:通过双击打开压缩包中的某个文件时,无论选择的文件是什么,都会自动打开桌面上的第一个文件。我的桌面上第一个文件是1.jpg,就算双击一个exe文件,这个jpg也会冒出来,而如果用WinRAR内置的「查看」功能(右键点击文件选择「查看」菜单项),则会用WinRAR内置的文本查看器打开这个1.jpg,奇怪之极。

一开始完全不明所以,直到后来发现另一个软件也开始出问题,这个软件的中文名字叫影之袜(请自行翻译)。原本其运行良好,但最近每次在系统启动时,都会弹出一个它的异常,上书:拒绝访问。经过一番研究,发现这个软件需要向临时文件目录写一点东西才能运行,所以拒绝访问指的是向Temp目录写失败。

因为最近将UAC设置拉到了最高级别(始终通知),于是尝试降低甚至关闭UAC,没有变化,并且通过查阅资料得知,UAC拉到最高并不会影响Temp目录的写入权限,于是排除之。

问题指向Temp目录的写权限赋予,去C:\Users\{用户名}\AppData\Local下查看Temp目录的安全设置,发现变成了这样: 继续阅读 “Day 3337 Acrobat XI 使用amtlib.dll破解的后遗症”

Day 3325 ownCloud Permission Denied in mappedlocal.php

尝试了一下私有云ownCloud,版本为8.0,OS为Windows Server 2008 R2,一开始配置很顺利,但实际用客户端传文件时,稍微开始一会儿就出现Internal Server Error的提示,去看系统的日志,可以发现有类似这样的php错误出现(非实际错误信息,为转帖):

unlink(C:\inetpub\wwwroot\owncloud\data/jerome/files-trashbin/files/owncloudusermanual.pdf.d1423825653): Permission denied at C:\inetpub\wwwroot\owncloud\lib\private\files\storage\mappedlocal.php#270

Workaround方案(来自此帖):

下载7.0.4版本的ownCloud,将/lib/private/files/storage/mappedlocal.php覆盖掉即可。

Day 3318 为啥我的微信Access Token有效期那么短

最近给单位做了一个微信活动,由于要求甚多,现成的服务无法满足需求,最后决定从头开始开发。

由于自己的PHP、HTML和JS都是半瓶子醋(JS更是按滴算),所以编写代码的过程中遇到了不少磕磕绊绊。感谢这个信息便利的时代,大部分问题在查找资料后都得到了解决,最后活动于前两天正式上线了,除了一开始一点小意外,运行还算正常。

但是有一个问题从一开始就困扰着自己:调用微信的API需要先用微信公众号的APP ID和Secret向微信服务器申请Access Token,然后用这个Token去调用API,官方的文档中指出目前的Access Token有效期是7200秒(2小时),但是调试时Token的有效期一直在10分钟左右摇摆,活动上线后变得更加糟糕,几乎每7-8分钟就会在日志中看到某个Session下出现Token超时的记录。

最后终于找到了问题的原因,很蠢:我将Access Token理解成了一个per user而不是per APP的令牌,代码中为每个进入的用户都重复申请了token,并存储在了缓存中,于是一个新token没有失效前,如果有另一个用户进入了活动,那么这个跟公众号关联的token就会被刷新,其它用户再使用之前的token访问时,由于旧令牌已经失效,又会再次进行申请,于是陷入了恶性循环。

直到这时我才明白微信API文档中为什么要让一个「中控服务器」对Token进行存储,因为Access Token(和JS-SDK Ticket)是与公众号、而不是微信用户相关联的。

现在的问题是:由于多设计了这些没有必要的东西,数据表变得很庞大(没错,为了调用微信的JS-SDK我还为每个用户存储了JS Ticket,这同样也导致了毫无意义的频繁刷新),所以准备如果本次活动期间不出问题,就等到结束后对所有内容进行重写。

Day 3287 Touka’s Hosts file Replacer

toukahostsreplacer

之前受人恩惠,算是回报,同时也出于保密,以往这个应用叫什么就免提了。

功能有二:

1、从指定URL获取hosts文件,并通过以下三种方式更新本机hosts文件:直接覆盖、按行数范围修改、追加在原始文件后面。
2、将本机或远程hosts文件导出为UNIX换行符(LF)格式。

为安全起见,没有设计保存最后一次使用的hosts地址功能。

注:本程序需要.Net Framework 4.0的支持,如提示「应用程序初始化失败」,请至微软官方下载安装。

更新记录:

1.0.5.0 增加直接覆盖本地文件的选项、细节修正
1.0.4.0 初始(?)版本

下载地址

Day 3271 提取百度安全登录控件

最近单位被百度的加V推广缠上了,真是生财有道啊。

话说回来,登录百度推广页面的时候居然要安装一个什么「安全登录控件」,出于对百度系产品的不信任,对支付宝的「安全登录控件」举一反三即可安装这个密码控件:

  1. 点击需要下载控件的页面中出现的「请点击安装密码控件」下载安装程序。
  2. 使用7-zip将安装程序解包,提取其中的npBaiduSafeInput.dll,IE浏览器使用regsvr32进行注册,Chrome放到与chrome.exe同级的Plugins目录下。
  3. Chrome还需要在chrome://plugins下对BaiduSafeInput勾选Always Allowed(如果要区分domain设置exception请自行研究)。

Day 3269 Windows 7修改网络名称

modify_network_name看厌了每次接入新网络或NIC的时候系统自动分配的「网络2」「网络3」了吗?

在「网络与共享中心」里点击网络前的图标,即可对网络的名称和图标进行修改,听起来好简单的技巧,今天才刚刚学会。

注1:弹出的对话框下方还有一个「合并或删除网络位置」,可以对过去产生已经不用的的「网络」配置进行删除;

注2:「未识别的网络」不能更改名称或图标;

注3:图中使用的无线网络图标存在于:%SystemRoot%\system32\pnidui.dll

Day 3268 提取支付宝「真正的」安全控件

本文内容来自:http://bbs.kafan.cn/thread-1520630-1-1.html,以下只包含其中的手工操作部分:

  1. 下载官方安装包:https://download.alipay.com/sec/edit/aliedit.exe
  2. 使用7-zip打开安装包。
  3. 对于IE浏览器,提取以下6个文件:Alidcp.dll、aliedit.dll、npalidcp.dll、npaliedit.dll、npAlipaydhc.dll、npAliSecCtrl.dll,将这些文件放置到任意目录(原文要求目录名为aliedit,其实可以随意,我放到了alipay目录下一样用),然后使用regsvr32注册之(需要管理员权限cmd,命令行例:regsvr32 c:\alipay\Alidcp.dll),即可使用。
  4. 对于非IE内核浏览器(例如Chrome),提取以下3个文件:npalidcp.dll、npaliedit.dll、npAliSecCtrl.dll。由于手头只有Chrome浏览器,故仅对此进行实验,经确认,将以上文件提取到chrome.exe同级目录下的Plugins目录(没有则新建)中即可,以能在chrome://plugins/中看到Alipay webmod control、Alipay security control、Alipay Security Control 3为准,并将这三个插件的Always Allowed(总是允许)打勾即可使用。

可能有人要问为什么不用官方的一键安装,方便又快捷,那是因为原版的安装程序不仅会将需要的安全控件装进来,还会按照用户协议安装对本机流量进行监视的后台服务,最明显的特征就是会有一个一直吃CPU的Alipaybsm.exe和其守护进程AlipaySecSvc.exe。

关于其监视用户的嫌疑,可搜索关键字【alipaybsm 监视】查找相应文章进行阅读。

至于支付宝方面做贼心虚的表现,可以从安装程序附带的用户协议的变动看出来,支付宝官方有一份《支付宝安全控件安装许可协议》点击查看本地截图,截图时间2015年1月13日),其中列举了一条极具争议的内容:

3. 支付宝有权通过本软件收集您的相关信息(包括但不限于URL、登录IP、登录阿里旺旺ID)并有权将其传递给本公司的关联公司或阿里巴巴集团旗下的其他公司。

包括但不限于……嗯。

之前安装的时候也看到过这句话,不知从什么时候起,这句话从本地的安装程序中消失了,但在线版还是保留着的。

虽然理论上用户点击【我同意】时,同意的应该是不包含这句话的本地协议,但一来镇上的EULA对最终用户本来就没有什么保护效力,二来即使本地协议中也有这么一句话:

您通过点击确认本协议或以其他方式选择接受本协议,即表示您已与支付宝达成协议并同意接受本协议的全部约定内容。

其他方式是什么呢?大概解释权在支付宝公司方面吧。

就更别提在线版中的文字游戏了:

您对以上四点已有充分的理解并明白因此可能导致的相应后果对您使用本软件所产生的一切后果,支付宝(中国)网络技术有限公司(www.alipay.com)不承担任何责任。

看到红色的句号了吗?那个句号的意思是,两句话是独立的,并不是说因为「以上四点」产生的后果支付宝不承担责任,而是你用了这个软件产生的任何后果支付宝才不承担任何责任呢☆

说到底,毕竟EULA存在的意义就是写得冗长到几乎没有人愿意去读,但实际上已经在长长的文句中给用户下好了绊子,而且算准了用户一定会点击同意。

Day 3260 用系统提供的功能绕过UAC以交互方式启动应用程序

饭否@谜厎(就是锐风,太空饭否的合作+主要开发者之一)曾在我吐槽软件限制策略不管用时提到让特定程序(例如Sublime Text)绕过NT 6.0以后的用户账户控制(User Account Control,UAC)来修改hosts的方法,经过搜索和实践,通过系统本身提供的功能、用正常途径(其它高门槛途径还包括注入系统进程绕过UAC等,本文不做讨论)主要包含以下两种方式:

  1. 使用Microsoft Application Compatibility Toolkit为程序打RunAsInvoker的兼容性补丁
  2. 使用「任务计划程序」建立特定计划任务

本文主要展示两种方式如何操作,以及为什么第一种方式实际上对本需求没有效果。

本文操作环境为Windows 7 x64 with SP1。

继续阅读 “Day 3260 用系统提供的功能绕过UAC以交互方式启动应用程序”