外星人起死回生指南

故事发生在爱丁堡一个阳光明媚的早晨,男主将一杯苏格兰现磨咖啡放在工位桌上,伸了个懒腰,准备开始一天的科(ban)研(zhuan)工作。

然而。。。

男主爱不释手的小外星人Alienware 13 R2却怎么也开不开机了,按下电源键没有任何反应,电源键那个外星人头也不亮了、风扇也不转了、硬盘也不响了。但是电源线上的蓝色LED灯是亮着的

昨天晚上关机时还好好的,也没有任何征兆,这才买了一年多,怎么就突然变砖了呢?

歪果的电脑维修出了名的不靠谱和昂贵,看来只能自力更生,展开自救了。经过一番问题分析、文献搜索和上手实践,本庸医竟将小外星人起死回生。以下给出整个治疗过程以供大家参考:

注:本方法不保证一定能拯救你的电脑,如果情况恶化,本人及本网站也谢绝负担任何责任。

据说,以下方法可以用于Alienware 13 R2 Alienware 15 R2 Alienware 17 R3这三个型号的突然开不开机的治疗

整个过程包括放静电和CMOS重置两个步骤:

1. 断开电源线,按住开关键10到15秒钟,以释放静电,完毕后插回电源线看看能不能开机了。如果还是不能,转到下一步。

2. 再次断开电源线,打开笔记本遮住内存条的那个后盖;

3. 将后盖内的电池供电线路的连接插销拔掉;

4. 移除内存条,此时你能看到几个金属触点(13 R2与15 R2和17 R3的触点略有不同,如下图)

* 分支剧情1:对于Alienware 15 R2 and 17 R3,定位CLRP 1,用导体(比如全金属镊子或者曲别针)连通CLRP 1的两个触点

* 分支剧情2:对于Alienware 13 R2,定位CLRP 2,用导体(比如全金属镊子或者曲别针)连通CLRP 2的两个触点

本文男主的小外星人是13 R2型号的,导体连通CLRP 2两个触点成功会听到滴的一声巨响,其他型号的反应不确定。

听到滴的一声巨响后,连回电池供电线路,合上后盖,插回电源线,开机,看是不是有反应了如果有反应了,外星人头开关灯亮了但是还不能正常进入系统,请重复上述第(2)~(4)步3到5次。男主就是重复到第4次成功的。

OS X运行MATLAB时addpath函数报错解决方法

最近用新买的MacBook Pro运行MATLAB程序,在Windows下跑的好好的.m程序拿到OS X愣是报错。

addpath_error

这可真是X了狗了,我找到报错的那行,是一条添加work directory的code,用的MATLAB自带的addpath函数,是这么写的:

addpath('.aok');

上看下看左看右看也没看出哪里有错,妹的莫非是系统bug?不能吧… 盯着这条code足有10秒,聪明如我突然就顿悟了,原来是OS X中路径的斜杠与Windows的斜杠方向正好是反的,简单改下就成了:

addpath('./aok');    % 不要告诉我你没看出区别在哪

然后就是见证奇迹的时刻了,have fun!

Mounty写NTFS移动硬盘时文件损坏的解决方案

感恩节期间在美帝新买了个MacBook Pro,拆封完毕第一件事情就是安装各类需要的软件。为了防止意外,就把好不容易找来的破解版安装包都做了个备份。当我想把这些备份安装包转移到移动硬盘的时候,万万妹想到,意外发生啦!意外发生啦!!意外发生啦!!!

移动硬盘是NTFS格式的,这是Windows操作系统最常见的文件系统格式之一,but苹果的OS X对它的支持做得并不是太好(NTFS是微软的协议,可能是商业竞争之类的原因,微软没授权给苹果)。具体表现在,Mac对于NTFS格式的移动硬盘,默认是只能读不能写的。为此,我下载了度娘推荐的Mounty。本以为故事到这里就是happy ending了,哪里知道这里才是恶梦的开始

通过Mounty备份到移动硬盘里的东西通通都打不开了,图标是灰色的,修改日期统一显示为1984年,双击显示正在被占用无法读取。(以下图片来源于网络)

file_crash
occupied

情急之下热插拔了一次,之后硬盘就不能被mount了

not_remountable

还好,我就是传说中的解决问题小能手。通过一早上的尝试和搜寻Google,终于找到了解决办法。

继续阅读

大迁徙

最开始弄黑捷克是在07年前后(一个曾经属于ASP+ACCESS的天下),选的也是当时流行的PJBLOG博客系统。眼看着互联网淘金热潮,就也照猫画虎地把喜欢看的魔术有一集写一篇,还从网上找来很多热门网文摘抄凑数,就想着流量折算Google Adsense好套点美金出来。再后来经历过实名制,域名备案,数据库错乱等一系列暴风骤雨的洗礼,直到2012年才算是真正安顿下来。虽然FckEditor写日志每次都得删改格式去匹配说不清道不明的样式风格,但觉得平静的生活来之不易,就此收刀,隐匿于和平饭店。

忙乱时向往闲暇,做梦都在计划,可真有空坐下来,就傻傻地坐到起身,哦还有个梦呢。因为成长于乱世,习惯于自寻平静,就像堆栈的push和pop,在两者见往复平衡才能让程序正常执行。平静久了,一味地pop,反而是在挥霍明媚的青春。想到这里,独裁者起身,手指欧洲,对着镜子歇斯底里的吼叫,让日耳曼的铁蹄踏平那里。

PJBLOG到Wordpress的转换,至少得处理三件棘手的事儿:日志,评论,链接的转换。

日志和评论的转换参考了http://maie.name/511.html,里面提到了一个mt.asp的转换程序,可以将原日志从ACCESS拽出来,格式化为Wordpress支持的一种导入文件。好容易找到了一份mt.asp,发现导出时就是无响应,大概是空间商做了限制,post请求的响应过大就中止,可能是出于dos的考虑吧。修改了mt.asp,让输出写入文件,然后用ftp连上去再下载吧。修改的内容还包括通过BASENAME让Wordpress的日志编号和原文章编号一致,方便重定向。这样导入日志后,index.php/xxx/就对应原来的article.asp?id=xxx了。另外要装上Wp-postview插件,这样还可以把浏览次数也迁移过来。mt.asp使用前要修改里面的https://www.hhjack.com.cn/为自己的博客地址。分享一下我的修改版本:点击下载

当然这只是第一步,后面就是漫长的人肉改日志了,因为很多日志用了html方式编写,导入后就很多编码问题,只能一篇一篇的修改了。我是新老站点同时在线,格式有错乱的,就直接贴老html代码过来,然后再调整。时至今日,已经不打算博取流量广告淘金了,只想着踏踏实实记录生活点滴,所以陈旧,错乱摘抄,失效外链,广告代码,遇到就毫不体面的全部删掉。

链接的转换是保证搜索引擎以前收录的URL仍然可以指向到新系统的日志。也就是用.htaccess文件实现301重定向,我这空间是windows系统,就用iis_rewrite的httpd.conf来跳转。httpd.conf文件内容为:

[ISAPI_Rewrite]
3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32

RewriteCond %{REQUEST_URI} ^/article.asp$
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^.*$ https://www.hhjack.com.cn/index.php/%1/? [R=301,L]

RewriteCond %{REQUEST_URI} ^/default.asp$
RewriteCond %{QUERY_STRING} ^tag=(.*)$
RewriteRule ^.*$ https://www.hhjack.com.cn/index.php/tag/%1/? [R=301,L]

RewriteCond %{REQUEST_URI} ^/default.asp$
RewriteCond %{QUERY_STRING} ^cateID=7$
RewriteRule ^.*$ https://www.hhjack.com.cn/index.php/category/call-others/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/default.asp$
RewriteCond %{QUERY_STRING} ^cateID=12$
RewriteRule ^.*$ https://www.hhjack.com.cn/index.php/category/sch00l-days/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/default.asp$
RewriteCond %{QUERY_STRING} ^cateID=9$
RewriteRule ^.*$ https://www.hhjack.com.cn/index.php/category/magicshow/? [R=301,L]
RewriteCond %{REQUEST_URI} ^/default.asp$
RewriteCond %{QUERY_STRING} ^cateID=10$
RewriteRule ^.*$ https://www.hhjack.com.cn/index.php/category/x-life/? [R=301,L]

由于日志导出过程就保证了序号的同步,所以只要定向article.asp?id=xxx到index.php/xxx即可,tag的定向方法类似。最后还要处理文章分类的定向,这个是从序号到名字,所以只能每类写一条,还好条目不多,不然定向会很耗时。

大框架就是这些,剩下的就是安装插件,调整样式和过去尽量相仿,修改字体,迁移附件等了。在虚拟机军事演习了两周,实战三天两夜,finally。

 

George Winston版卡农钢琴谱带完整指法

Kanon一直都是心中最爱,特别是George Winston的版本。想down个谱子弹弹看,发现网上有好些个自称Winston版本的卡农谱,内容却各不相同(掀桌)。后来自己找来原版音频听,再综合网上几个常见版本,于悼红轩中披阅十载,增删五次,(呃.. 上两句可以掐掉不播…),整理出了一版。标注了所有音符的指法,希望可以帮到入门级的同学们。

吾非专业人士,且处于非常初级的阶段(真不是谦虚),so谱子有点小错误在所难免。

请发现的同学见谅并及时留言更正。点击下面的播放,可以试听乐谱电子合成的MIDI音频:

此外,偶然发现自己制作的这个pdf在其他计算机上会出现字体显示错误的问题,通过度娘解决了这个问题。这个字体嵌入问题的具体解决方案来自CSND论坛的ptfcwnsohq同学,感谢他,solution如下:打开pdf文件后,点击文件->打印,选择名称到Adobe PDF->属性->默认设置【标准】->编辑->字体,然后将“字体来源”中的所有字体都添加到“总是嵌入”边框,最后点击另存为一个配置文件【名称自拟,按默认路径保存】,保存后退出;再按先前一样打印,但此时的Adobe PDF属性设置应选择前一次保存的配置文件名,点击打印后即可生成嵌入所有字体的PDF文件。

标题页: 

 

 

版权页:

 

 点击下载此文件

近期理财经验总结

去年开始买的宝宝类的货币基金,余额宝、微信理财通和百度利滚利都买了点,后来对比了很长一段时间,发现还是百度利滚利最合适,利率最高不说,最关键的是可以不分工作日非工作日20分钟取现到账,所以目前基本上日常生活所需的闲钱都放在这里。

今年初开始,货币基金收益越来越低,于是依据周边可以得到的信息,关注了炒白银、股票和p2p三种方式。对比了一下,发现还是p2p最合适,白银需要太强的专业知识和市场敏感,股票太黑了,p2p虽说不时有小平台跑路的现象,但是目前看,选个大点的靠谱点的平台应该问题不大。

结合朋友推荐和自己网上查阅信息,目前选了p2p四个平台:有利网红岭创投人人贷,还有我个人强烈推荐的汇通易贷(点击带下划线文字可进入带有我推广链接的注册地址,默认推荐人henryliu911,都会有奖励)

我平时查p2p信息主要上的是网贷之家。之所以推荐汇通易贷,是因为在网贷之家评级里,他的透明度评分是最高的,然后相对其他三个平台,标比较容易抢到,收益也比较高(最高20%的利,扣除收益10%的管理费,实际到手最高能到18%),新用户充1000还送VIP,送完VIP据说可以全额担保。

有利网我也投了一些,收益不如汇通的高,但是听周边的朋友的说,这家公司更大,都几轮融资了,很靠谱。

剩下两个都注册了账号,但是总抢不到标,伤心了。。

还是想投白银的其实,但是专业术语太多了,什么平仓啊乱七八糟的,不能说人话么?而且近期貌似白银跌得很凶的样子

弱X博士一枚,平时助研费奖学金神马的太不够花了。倒是借此时机锻炼了理财能力,哈哈~

给我一杯忘情水

一个人的时候,却难再享受 独自 带来的乐趣。

弹琴,偏偏练的源自我推荐的那段搭配四手,一双玩魔术,一双演奏。你从虫虫网下载了曲谱,练习这个曲目,我就研究那魔术怎么变。

那一段,远在天边近在眼前。而今,不远处却隔着贯穿地幔的裂痕。

听歌,韩国风的曲目都是AIR里的收藏。男女共学~哎,也是打你那儿来。站起来再跟着跳一会儿,却发现最初也是你鼓动我跟MV学舞,大半段学罢却没能跳给你看。

“你也擅长跳吗?不,我善诱”

黑白颠倒,却寻求着日月更替之际的执手。同一地平线,却背向疾走,木然回首。

做饭,柜子里的半包米线居然还没吃完,拿起来几根,想想又放下,吃完是不是就什么都不剩了。和写满韩语的类酱油瓶一样,都是五道口的韩国店出口。

几次也许路过,但从未曾见过这个神秘的地方,也猜不出这个瓶子里面到底装的是什么。只是,它看起来很像酱油。我以为我爱吃酱油。

越是不去想,越是长嗟。尤其安静得只剩下我的思绪。去恨,去抵消习惯成自然的喜欢。可是,oh my,一觉醒来,脑袋里居然浮现txstc的字符串。不怪,银行,邮箱,QQ,迅雷,衣食住行的口令都脱不了干系。”给自己留个退路”,我以为是耸人听闻,真是用心没用脑。

毒瘾烟瘾戒得掉吗?换作是十几年养成的习惯呢?

晚上还赶着写项目申请,听着音乐,间歇浏览网页,总是地三鲜–老三样,从前烙下的毛病,不管干什么,脑袋里都反复念着一个名字。

我以为要戒的只是一个习惯,结果却是一个人静下来生活每时每刻的全部。

病情反复,康复光芒闪耀,假象假象,只是回光返照。

喜欢,喜欢了整整一个曾经。只是,何时我才能过完曾经。

Matlab中figure转存eps字体模糊的解决办法

最近投论文,要求用latex投稿。然后文中想插入一张matlab仿真得到的figure。大家都知道,在matlab中,figure可以直接save as eps格式。之前也这样存了好几张图片,都没问题。但是奇怪的是,唯独就有那么一张figure,存成eps之后,图像模糊,上面的坐标label等文字在生成的pdf中也都成了很模糊的图片,而不是嵌入式的文字。找了半天解决方案,百度还是一如既往地不靠谱。于是就只好自己想办法啦,经过坚持不懈地探索,solution隆重出炉:

在figure窗口中选择File->Print Preview…,在弹出的窗口中选中Advanced标签页,然后在左边倒数第三行有个Renderer,你现在看到它右侧的下拉框一定是选择的auto,那么把它改成painters。接着点窗口右边的Close按钮。然后你再Save As…->*.eps。你再用latex生成一下pdf,是不是解决啦?

反编译doswf加密的Flash

使用诸如Sothink SWF Decompiler等软件可以很容易反编译不加保护的Flash程序。如果Flash内使用了秘密的网络通信或引入了一段漏洞利用代码,编写者不会希望自己的劳动成果被轻易获取的。

doswf用于给Flash程序加壳,混淆变量、函数和类名,增加逆向的难度。最近拿到了一份使用Flash编写的exploit,想要分析当中触发代码,但Flash已经使用doswf做了处理,直接反编译查看代码行不通。

根据近一段时间的分析,doswf在加密Flash时做了以下三个工作:

  1. 在原始的Flash程序中加入花指令,混淆变量函数类名
  2. 使用ByteArray的压缩算法压缩原始Flash,并针对压缩后数组做逐字节的加密处理,并将加密后的ByteArray附到doswf生成的一个Flash程序中,doswf的Flash程序会动态解码释放原始Flash
  3. 在doswf生成的Flash程序中加入花指令,混淆变量函数类名

花指令主要用于对抗反编译引擎。

Flash中的ActionScript源码被编译成字节码,类似于C语言代码被编译成机器码。对于C语言编写的可执行程序,由于汇编指令长度可变,通过在机器码中加入花指令(je jne 的组合等)可以造成反汇编引擎错误的解释机器码。

对于Flash编译的字节码,由于指令长度固定为一个字节,无法通过加入花指令实现字节码级别的解析错误,但反编译引擎在尝试将包含花指令的字节码转化为ActionScript源码时会发生错乱,导致Sothink SWF Decompiler无法正常工作(程序停止响应)。

混淆变量函数和类型名是一种不可逆的过程doswf直接修改了Flash的常数表,用一些特殊符号替代用户自定义的名称。不过名称的混淆对分析代码影响有限,毕竟ActionScript的运行时类、成员函数和成员变量的调用仍然保持了原有名字。

压缩与加密Flash虽然很靠静态处理很棘手但考虑到Flash最后一定会被动态解码加载到内存中,处理它可以靠动态内存抓取。

综合上述的特性,下面通过实际的例子说明如何得到原始Flash的反编译结果。

其实整个问题的关键就是针对1和3中提到的花指令的去除,而且对于3和2,除非你对doswf的加解密算法感兴趣,不然使用动态抓取就很容易绕过了。

我使用debug版的flashplayer加载执行目标Flash程序,相比使用浏览器,干扰更少,内存更小,抓取速度和准确度都会快很多。在内存中搜索FWS和CWS(Flash的文件头部的magic word)字样可以找到疑似的Flash程序,根据Flash文件格式中标识长度的字段能够从内存中将它直接Dump出来。实现类似功能的有很多类似软件,比如SwfReader.jar。Dump结果可能有二三十个,文件过小过大都能迅速排除,再使用swfretools格式解析器观察每个SWF文件,如果解析正确,并且包含DoABC(Flash程序的代码段),则予以保留。

通过动态抓取可以得到加花后的原始Flash程序。我分析的这个由doswf处理的Flash程序并没有使用过于复杂多样的加花指令,仅是

原始代码A

原始代码B

转化为

原始代码A

jmp [OFFSET]

一些奇怪的字节码

label: [OFFSET]

原始代码B

每隔几十行字节码就会出现一次这种插入,也正是它们导致Sothink Decompiler崩溃。

去掉它们的算法也很基本,对代码段中的所有ActionScript方法进行扫描,将原始代码A和B之间的字节码全部使用空指令代替(0x02)。我写了个一个Python脚本完成这个工作,使用时需要修改Python代码中的两个偏移值,指向method_bodies的开始和结尾。

处理后的Flash文件就可以用Sothink反编译了。上述方法不见得universal,也许只是我遇到的一个特殊情况,doswf如果引入多种花指令,去花更为繁琐。或者新版本的Sothink如果已经更为强大,能够自行避开花指令,分析Flash也就不需要这么折腾了。

Android内核源码下载

今天下午抽了会儿疯把电脑清理了一遍,删掉了之前的android源码和内核源码。不过事后想想,万一想编译个驱动啥的还是得用,就又切到linux下面开始下载android内核源码(tegra)。

下载的教程按照官方的走就行,

git clone https://android.googlesource.com/kernel/tegra.git

可惜速度是要多慢有多慢,估计又是伟大的GFW在作祟,还好教育网内有些不是特敏感的内容用ipv6都能很好的绕过。

做法就是找到android.googlesource.com的ipv6地址,添加到/etc/hosts,然后用Network manger关闭ipv4出口,仅保留ipv6就可以高速免流量的下载源码了。

具体操作如下:

windows cmd下输入:

nslookup -qt=aaaa android.googlesource.com 2001:470:20::2

-qt用于指定查询类型(a,mx,ns…)

2001:470:20::2 是一个公益组织的dns服务器,仅返回被查域名的ipv6地址

比如我查询结果:2404:6800:4005:c00::52

切回linux,添加到/etc/hosts

2404:6800:4005:c00::52 android.googlesource.com

以此类推,将cache.pack.google.com,www.googlesource.com也添加到hosts中

然后使用Network manager关闭ipv4通道

再git clone就能以4-5M的速度下载内核源码了~ enjoy