2016年6月10日星期五

阻止windows升级到win10

作为记录备忘
不要安装以下补丁:
KB2938861(微软设备健康助手,会弹窗提示升级)
KB3035583(臭名昭著)
KB2952664(我觉得和上面那个一样臭名昭著)
KB3123862
KB3135445
KB3138612

2016年4月10日星期日

centos部署DNSCrypt服务器及客户端配置

DNSCrypt是一款对DNS协议加密的应用,需要服务器和客户端配合使用,先看下维基百科上的介绍(https://en.wikipedia.org/wiki/DNSCrypt):

DNSCrypt is a network protocol designed by Frank Denis and Yecheng Fu, which authenticates Domain Name System (DNS) traffic between the user's computer and recursive name servers.

Although multiple client and server implementations exist, the protocol was never proposed to the Internet Engineering Task Force (IETF) by the way of a Request for Comments (RfC).

DNSCrypt wraps unmodified DNS queries and responses in a cryptographic construction in order to detect forgery. It also mitigates UDP-based amplification attacks by requiring a question to be at least as large as the corresponding response. DNSCrypt can also be used for access control.

DNSCrypt的官网是:https://dnscrypt.org/

以前大陆GFW防火墙还不完善的时候,它主要使用DNS污染来屏蔽一些网站,很多网友会使用配置本地host文件的方法来直接访问谷歌和facebook、twitter等网站,也有网友使用DNSCrypt等软件来规避污染。但随着封锁的加大,谷歌的ip基本被封完了,而DNSCrypt公开的服务器也连接不上了,所以很多网友都转用vpn或者shadowsocks。之前我一直使用Cisco的加密DNS,但现在所有DNSCrypt公布的服务器已经被墙,所以只能自己去搭建一个。

先说下为什么要使用DNSCrypt,既然现在很多人都使用vpn或者shadowsocks那么为什么还要用DNSCrypt呢?我主要的用途,是偶尔会下载P2P有一些开源代码等学习资源,很多都是在国外的一些学术机构,比如台湾国立大学、日本筑波大学或者美国的一些大学的服务器上,而这些服务器,有些是被封锁的(不知道为什么要封锁学术服务器),如果你把P2P下载软件上挂vpn或者shadowsocks,那么会很慢,不挂又没有连接速度。另外如果有的网友玩一些美服等外服的游戏,他们的客户端下载服务器被DNS污染,而且国内又没有下载,只能去国外下,如果客户端很大,挂vpn下载会非常慢。这时候需要一个干净的DNS,例如谷歌的8.8.8.8或者OpenDNS,但是这两者现在封的都很严重,谷歌大陆不能直接访问,OpenDNS很多访问也不稳定。使用DNSCrypt可以避免DNS污染。

DNSCrypt的官方服务器源码没有公开,你在官网上找到的“服务器源码”其实是国人Cofyc (github主页:https://github.com/Cofyc)根据客户端写的一个服务器。

首先,我们需要搭建自己的服务器,
1.安装依赖库

yum install autoconf gettext libltdl* libevent git libevent*

写这篇文章的时候,yum提供的lib event,版本已经是2.0.21,满足DNSCrypt服务器代码编译要求,所以我就直接yum下安装了,没有去编译libevent源码

2.下载libsodium源码编译(libsodium在yum下的版本倒是满足DNSCrypt编译要求,但我折腾了半天并没有什么卵用,所以还是用源码来编译)
先到http://download.libsodium.org/libsodium/releases/看一下官网最新的代码,我这里是1.0.10,

cd ~

wget http://download.libsodium.org/libsodium/releases/libsodium-1.0.10.tar.gz

tar xf libsodium-1.0.10.tar.gz

cd libsodium-1.0.10

./configure --libdir=/usr/lib

make

make install

ldconfig

这里我曾经按照http://03k.org/centos-make-dnscrypt-wrapper.html来操作,但是在编译DNSCrypt时,仍然提示找不到库,这个人遇到的问题和我一样:https://github.com/jedisct1/dnscrypt-proxy/issues/8,但我用了ldconfig命令,仍然不行,/usr/local/lib下也有库,仍然不能编译,所以在配置的时候直接把路径写成/usr/lib

3.下载DNSCrypt服务器代码编译:

cd ~

git clone --recursive git://github.com/Cofyc/dnscrypt-wrapper.git

cd dnscrypt-wrapper

make configure

./configure

make install

install -d -m 755 '/usr/local/bin'

install -p dnscrypt-wrapper '/usr/local/bin'



4.生成provider-key(这里我偷懒直接把key扔sbin目录,你可以自定义位置,注意文件夹访问权限即可):

cd /usr/local/sbin/

mkdir dnscryptcert

chmod 755 dnscryptcert

cd dnscryptcert

dnscrypt-wrapper --gen-provider-keypair

会生成public.key和secret.key,为了后面操作方便,不要修改这两个文件的名字,因为后面有些命令有默认参数,用默认的名字可以少打点字。。。这步会显示一段类似于

这样的key,这个key记下来后面配置客户端有用。

5.生成crypt key和签名证书

dnscrypt-wrapper --gen-crypt-keypair
dnscrypt-wrapper --gen-cert-file

注意,最新版的DNSCrypt服务器代码,只会生成crypt_secret.key一个文件,老版本的还会生成crypt_public.key

6.将启动DNSCrypt和防火墙端口开放写入开机自启动

vi /etc/rc.d/rc.local

增加:

dnscrypt-wrapper —resolver-address=8.8.8.8:53 —listen-address=0.0.0.0:5353 —provider-name=2.dnscrypt-cert.TheSeventhHeaven.com —crypt-secretkey-file=/usr/local/sbin/dnscryptcert/crypt_secret.key —provider-cert-file=/usr/local/sbin/dnscryptcert/dnscrypt.cert -d

firewall-cmd —permanent —zone=public —add-port=5353/tcp

firewall-cmd —permanent —zone=public —add-port=5353/udp


解释一下,8.8.8.8是谷歌的DNS服务器,53是它的端口,当然我的需求已经足够,因为我的服务器在国外,如果你想要折腾,自己搭建DNS的话,那这里的ip:端口可以换成你自己服务器的配置。
0.0.0.0:5353代表监听本地服务的5353端口,而5353端口就是对外服务的端口,就是你的DNSCrypt客户端连接你服务器的哪个端口,这个端口可以自定义,只要不和系统已用端口冲突就行。
这里有一个坑,就是name必须是这个格式:2.dnscrypt-cert.自定义英文.com,否则会出错,开始没注意,后来阅读了README文件,发现作者写了这个:

我防火墙用的是firewall-d,如果你用的是iptable,就把上面firewall那两句换乘iptable的命令

现在服务器已经配置好了,重启下服务器,然后用

ps -A | grep dns

看下DNSCrypt服务有没有起来,起来的话就成功了。


现在服务器有了,但是我们需要客户端,我是在mac下用的客户端(windows的同理,客户端下载在上面提到的官网有),客户端的配置文件路径是/usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv,(注意:1.0.10及之前版本的mac客户端是这个路径,1.0.11版本的路径已经改为/Library/PreferencePanes/DNSCrypt.prefPane/Contents/Resources/usr/share/dnscrypt-proxy/)直接在桌面shift+command+G复制粘贴路径即可,这个csv文件,我们要编辑它,mac自带的numbers可以打开可以编辑,但是无法保存成csv格式,所以你可以在microsoft office里编辑或者用其他的csv编辑软件,这个文件打开里面主要编辑这些列就行了,其他的可以不管:

Name、Resolver address、Provider name、Provider public key

Name是用来在客户端里显示用的
Resolver address填你刚才配置的服务器的IP和端口,例如123.123.123.123:5353。注意这里我被输入法坑了,mac自带输入法默认打开中文,我输入冒号的时候,输入的全角符号,后来在windows下才看到这个冒号是个方块。。。
Provider name填第6步里name的值,例如我的是:2.dnscrypt-cert.TheSeventhHeaven.com
Provider public key填第4步里生成的key,即刚才第4步记下的那个类似于红框里的key,如果忘记了,可以用这个命令找回:

dnscrypt-wrapper —show-provider-publickey-fingerprint —provider-publickey-file=/usr/local/sbin/dnscryptcert/public.key


配置好后保存,然后打开系统偏好设置里的DNSCrypt选择你的服务器连接即可,如果没有出现,关闭系统偏好设置重新开一次。

至此DNSCrypt已经配置好了

2016年3月31日星期四

psp完美破解,可关机,附方法

psp最近已经完美破解,但小p一直在吃灰,今天按照网上的方法来了一遍,的确是可以完美破解psp3000到最新的6.61系统。

关机破解由Davee给出,ta的网站是:http://infinity.lolhax.org/index.php

Davee(推特账号:
@DaveeFTW说ta使用了一个6.31系统的bug来为所有psp设备提供最新的自制系统(除了E1000)。这个自制固件基于官方最新也是最后发布的一个系统6.61,其本身并不包含破解,但可以配合Pro和ME的破解来实现psp关机重启仍然直接是破解状态的系统。

以下引自官网原文:

To solve this, I present 6.61 Infinity. By abusing a bug in 6.31, 6.61 Infinity utilises a similar technique to the old 1.50 firmwares to provide an upto-date custom firmware for all devices, excluding the E1000 (so far). Infinity itself is not a custom firmware; instead it allows the flexibility for users to install any compatible custom firmware they wish. For convenience, Infinity includes built-in functionality for both PRO and ME. Use the Infinity Configurator to update infinity and choose which custom firmware to boot into on start up.

同时ta也表示这是自己在psp的最后一个项目,下面将会把精力放在破解psv上。

关于破解的具体技术细节,ta在其个人博客https://www.lolhax.org/有详细描述

准备工作:
1.下载6.61 Infinity工具包:pan.baidu.com/s/1pJT1dxD
2.保证psp的电量充足,否则刷机断电有变砖的风险

破解的步骤如下:

0.如果你的psp已经是破解的(即可以运行iso,无论你当前系统是什么版本),则跳过这一步。如果是新买的psp还没有破解,则先联网升级到官方最新的6.61系统

1.psp使用usb模式连接电脑,在电脑上打开psp,根目录下如果原来有seplugins文件夹的话(不区分大小写),先将它改名为seplugins0,没有的话,则忽略此步

2.将下载的工具包解压缩,将“6.61Infinity破解工具”文件夹下的三个文件夹,即FLASHER、MAKER、STAGE,拷贝到psp的/PSP/GAME/目录下

3.如果你的psp是1000、2000、3000,则拷贝“PSP1-2-3000官方固件”文件夹下的631.PBP和661.PBP两个文件到psp的/PSP/GAME/MAKER/目录下。如果你的psp是PSPGo,则拷贝“PSPGo官方固件”文件夹下的631.PBP和661.PBP两个文件到psp的/PSP/GAME/MAKER/目录下。

4.将“6.61Pro-C2临时破解工具”文件夹下的PSP和seplugins两个文件夹拷贝到psp的根目录下,提示是否覆盖,选是

5.如果你的psp之前有破解,可以运行iso,则调到破解模式下并跳过第5步,直接进入第6步。否则,运行Pro Update

然后再运行661 PRO-C Fast Recovery

6.运行6.61 Infinity Firmware Builder,按提示操作一直下一步

7.将psp用usb模式连接到电脑,将/PSP/GAME/MAKER/文件夹下刚生成的DATA.MFC文件,复制到/PSP/GAME/FLASHER/文件夹下,断开usb连接

8.再次确保psp有60%以上的电,然后运行6.61 Infinity Firmware Flasher,成功后会提示重启psp

9.重启后是未破解状态,此时再次执行Pro Update和661 PRO-C Fast Recovery


10.运行Infinity Bootloader Configuration

按psp的左箭头,然后选择PRO CFW by Coldbird,前面会出现一个黄色的星号,按PS键选择退出程序

11.以usb模式连接psp到电脑,删除根目录下的seplugins目录(如果有的话),然后把第一步中的seplugins0改名回seplugins(没做第一步的话则忽略此步)

12.断开psp的usb模式,在psp中删除上面用到的全部程序并重启psp,就发现直接是破解状态了(注意:以后psp一开机就是破解状态,如果你需要有时候改回非破解状态,请保留Infinity Bootloader Configuration,反运行第10步下次重启就是非破解状态)

2016年3月20日星期日

mac通过andriod手机3G上网

公司发了个iphone,但是我平时一般不用,手机卡办了个3G的,但放在nexus6上,为的是能和Google Glass连接,之前的HTC实在太老,电池也不行了,就一般接接工作电话什么的。mac通过3G上网走andriod机的话,原本是想使用USB Tethering方式的,像HTC就有这种很方便的功能,连接到windows电脑上,可以安装它固化在内存光盘分区里的驱动,安装完了windows就可以通过使用USB连接的andriod机3G上网。查了下,在mac下的确有这样一个开源的软件可以实现,名字叫HoRNDIS官网:http://joshuawise.com/horndis,但是开头第一句就说:

Heads up: HoRNDIS does NOT yet work on Mac OS X 10.11 (El Capitan)! If you rely on HoRNDIS for your internet connectivity, you should not upgrade to Mac OS X 10.11. Hopefully when time permits I will fix the driver. 

我也是无语了,这个不支持10.11 El Capitan系统,只支持老的mac系统,那这条路没了,能想到的方法就是用Bluetooth Tethering了。打开andriod的蓝牙,在Settings-》More中,

有个Tethering & portable hotspot,

里面打开Bluetooth tethering即可。

我手机习惯用英文的,对照图片操作即可,andriod机都差不多的。然后我们再在mac中打开蓝牙,进行配对,配对成功后,在蓝牙中就能看到手机,选择“连接到网络”即可。

连接成功后手机上任务栏也会有图标提示,不同android机估计图标不同。而mac上蓝牙图标也多了三个点

Blogspot技术博客第一篇文章

注册谷歌账号也很久了,但一直没有认真写一些东西。打算把这个blogspot博客作为自己的技术博客。很久以前在百度开过技术博客,一直挺好,直到有一次我在上面分享如何翻墙,你知道搞技术的,遇到国家防火墙是很难受的一件事,结果百度就将我的那篇文章强制设置为隐藏,当时怒了,就将博客关闭,后来也一直没有去写正式的博客。虽然平时在mac上用Paper来管理自己的知识,但不利于自己方便的在任何地点查阅,在网上做个博客就很方便,而且可以记录自己折腾的一些东西。而且blogspot没有国内那样的审查,自己也不用使用一些同音字、缺偏旁部首的字去表达自己的意思,这样的自我审查也很不舒服。

在mac上用Blogo这个应用可以方便的写博客,很强大,基本上在线网页写博客的功能都具备,之前一直没注意它也可以插入图片什么的。。。

blogspot里让我比较疑惑的是,视频挂件在用代理后显示无法在当前的加密通信下显示,最后直接嵌入了YouTube。视频暂时找了两个,第一个是Google Glass的,第二个是微软的Hololens,以后会增加,主要会放一些前沿科技相关的视频。吐槽下Google Glass我有,但微软的Hololens实在太贵,价格是Google Glass的两倍,达到了3000美刀,实在太贵,所以没有入手。

分享到社交网络,是找的国内一个封装好的,直接嵌入javascript代码到博客。网址是http://www.bshare.cn/

看了下手机上有谷歌官方的Blogger App,但是功能还是和mac 端的不能比,不过看看还是可以的。