分类
未分类

看门狗2

14年时迷恋于看门狗1无法自拔,被蛋疼的ctOS Scan和自带狙击枪的直升机(而且由于视角限制通常无法抬头反击)虐出翔。等听说看门狗不仅要出续作还要做一个湾区出来时简直欣喜若狂的1b,又看到黑人主角,直呼这次是真·“黑”客(手动滑稽

然而狗2刚出时价格还是有点太贵了,steam各种买买买的我还是受不了,更别说辣鸡国区锁语言、uplay和steam版到底选哪个、加个DLC就要加一百,简直坑爹。直到一月的某个时候cpy出了一发破解补丁,从此才开始爽起来。其实那时有离线出租,但我一来台式没组起来二来要排队,没耐心等所以玩别的狗(Sleeping Doge)去了。

然而就算cpy破解了狗2还是需要依赖一个叫做easy anti-cheat的组件,这玩意有很大几率会导致游戏压根就加载不出来,任务管理器发现WatchDogs2.exe只出现几秒钟就消失了。解决方法是将EAC.exe扔进防火墙的屏蔽列表,入站和出站规则都加一套,设成阻止。然后就可以随便爽了。

其实这段时间早就通关了无数次,只是因为最近实在是没啥玩的,战地1不想碰(一碰又是一个大坑),cm3d2下的好几个源都没法玩(辣鸡up居然用国产辣鸡软件压的,WinRAR没法解,搞得我用虚拟机解压了一遍,然后用encrypt.sh重新压缩了一遍,简直坑爹,等我到时候再重新传到zod上),所以只能重新恢复原来的存档玩了。感觉和狗1相比狗2的主线略短,按照遇见t-bone和黑卫星可以划分为三个阶段,第一阶段dedsec瞎激霸闹腾,直到dushan下局坑主角、dedsec心灰意冷遇见t-bone为止;第二阶段从黑Google开始一直到给spacex的卫星装上后门硬件,其中穿插着黑客互怼(dedsec的对手连一代的default都不如)、干FBI还有某龙套角色领便当(甚至连官方介绍都没有他的位置,而且死得不明不白),那啥之后就是喜闻乐见的黑卫星了;黑卫星的关卡可谓神来之笔,迪拜server farm有两人一半阿拉伯语一半英语,首尔那里全程思密达,最后黑进blume总部,搞到blume和一大堆企业甚至X国政府(在游戏中以华人黑帮antie shui boys的形式存在,但我赌五毛黑nyse不是国家意志就怪了,当然从某种程度上把X国政府和asb一个黑帮混淆不清本身就是在黑了)的屁眼交易;黑卫星之后基本上快要完结了,直接扔出三个任务,上海ed、搞选举和机器人战争,都搞完后就直接出现最终关卡:去blume的湾区分部干翻最终boss,当然你是不会在那儿遇见他的,作为黑客其实去blume湾区分部是来搞数据的(手动滑稽

我第二次玩就是从黑卫星的存档开始的。Shanghaied其实和上海一点关系都没有,因为英语里shanghai当动词用(而且首字母不大写)时是“被迫当船员”的意思,至于这个词为什么和上海扯上了关系,一方面是因为上海和这种勾当有关,要么是这些船的目的地要么是船员的来源,另外一方面此处的上海要以动宾结构来解(当然我觉得下海都比上海更适用于这种情况)。总之这个关卡讲的是asb强迫一堆黑客在某服务器船上黑nyse,主角一开始在某集装箱发现了一个被拐到美国的研究生学金融的上海交大毕业生(满满的槽点),然后从某asb的据点发现了他们的黑nyse的大型服务器船在公海某处停着,通过之前搞到的卫星黑进了那艘船(因为那艘船在用blume的卫星黑nyse,所以反过来也可以),使其油漏光被迫开进湾区补给,上船然后用一架大型无人机带走船上的服务器。在后htw三关卡里质量最高,无论是音乐质量还是题材,直接让剩下两个关卡变得小打小闹。

剩下两个就比较无聊了,选举那个长得像川普的那个州长候选人干的希拉里的勾当,长得像希拉里的那个州长候选人是他的反面,不清楚是在黑希拉里还是在黑川普。总之Facebook通过大数据和社会工程影响人们的投票,在入侵Facebook的服务器之后dedsec利用他们的机制让人们反而投另外一个候选人,那个长得像川普的很生气,接下来主角乘坐好几个起重机到他们竞选总部的楼顶,发现那家伙、Facebook的CEO还有blume的CTO他们三个达成了一项新的屁眼交易,直接改投票机。现在黑投票机来不及了,只能把它们炸掉,使得投票延期然后促使人们警醒。实在难以想象这个剧本在美国大选的时候基本上都预见了,这个前瞻水平也是6d1b。

机器人战争的关卡里面的机器人公司tidis好像没有硅谷原型,但接了一大堆军方订单(我真不清楚接美国军方订单的有没有硅谷的公司,Google旗下的波士顿动力算不算),据说整个总部有军方也在用的各种安防设备防护,黑入难度极大,t-bone想让扳手之前搞到的机器人来做一个EMP,重置整个建筑的安全系统到默认值从而供主角物理入侵,扳手最后还是同意了这个想法,并想出了把机器人放某个仓库等它被挪进总部的想法。第一部分当然就是找EMP组件、放机器人然后装EMP上去,第二部分操纵机器人到服务器室引爆EMP,然后黑进去,黑完服务器然后去CEO室坐电梯到地下6层的实验室(其实玩起来要先想办法去CEO室躲着,然后派小车下去黑服务器,这样稳),在实验室里他们发现tidis搞的居然是用来镇压民众的蜘蛛机器人武器,接下来就是爽的1b的机器人大闹实验室剧情,然而机器人的装甲比主角好不到哪儿去,所以还是怂一点比较好。在摧毁原型装置和地下3层的服务器之后,tidis的十年计划估计又得花上不止多少个十年了(手动滑稽

分类
未分类

hail voyeurism

不知何时迷恋上了voyeurism,然后对传说中的几大voyeurism站神往不已,什么sharevoyeurism啊,univoyeur之类的,然而它们的会员价格还是比较吓人的,那可不像DirtyFlix那种1.99美元就能拖两周拖到爽的类型,那可是29.99美元一个月还有流量限制的类型。所以我宁肯去找siterip也不肯从原站下。至于这种玩意的siterip一般都以付费网盘的形式给出,国外付费网盘比国内恶心的地方就在于哪怕高级会员也限定流量,比如我下的uni的日流量限额是20GB,我拖个siterip怎么可能只拖20GB呢?

所幸万能的X宝上有卖一天VIP的,然而这种VIP的流量限制更坑爹,只有10GB,简直就像是卖20GB没用完又再次卖的。我买了这种帐号前后七八次才下完某voyeurism siterip集合站的(几乎)所有uni视频,为什么我没有下全?因为它里面有一部分不是我喜欢的类型,不下。我挑选的部分差不多有63.4GB。

严格点来说*veyour.com系站点有四个,shareveyour、univeyour、chinaveyour还有peepveyour,查whois和geoip发现它们居然托管在德国,站长留的英国的联系方式(居然是EU站而不是US,pornsite不都喜欢建在美国吗),而且邮箱是peep的那个,可以说peep应该是最先建立起来的,上面甚至可以找到日本的voyeurism系列。我对剩下三个都不感兴趣,因为它们还是太重口了,只对uni情有独钟。因为uni顾名思义是大学系列的,里面有大量眼镜妹,有些还是没开发过的,炒鸡合我胃口。这东西对我来说杀伤力还是太大了,仅次于某中出眼镜妹的视频(手动滑稽

我拿到的这部分siterip有部分视频是压缩过的,分辨率从1080p降到了720p,也从mpg到了avi,码率目测降了好几倍。然而熟知voyeurism界的狼友都知道,其实*veyour.com的视频也不是一手的,一手的视频反正都叫q*anp啊中学X神之类的,不叫什么什么voyeur。我反正知道一个叫做dindingo的网站(老换域名,现在不知道叫什么了),是伪装成一个在线商城网站的产品论坛的论坛,只有一两个板块是真的,剩下的板块都是一些辣鸡数据。那个站确实有一手的资源,因为一手资源都是由一个.mts的文件和一个.avi的文件构成,这是刚从摄像机上拷下来的未经编辑的视频文件,可以说是“原汁原味的母带级视频”(当然对于一个业余摄像机来说过誉了,这个词明明是用来形容能拍摄RAW的摄像机产生的RAW视频的)。我在观看uni的过程中发现有些妹纸我好像见过,然后果然发现曾经在dindingo上下过没打uni水印的原始视频。而且那个站价格也比较公道,100一年,至少在某个时期之前我感觉挺超值的。之前我刚进那个站的时候它全站采用colafile存放视频,后来那个辣鸡网盘被墙然后跑路,全站80%的资源挂掉而且至今还没补档,所以现在我持观望态度,亦不作推荐。等它什么时候把以前的800GB资源全部补上之后再作推荐。

为什么我知道它的储量有800GB?因为我分析了它所有的下载链接然后用网盘页面提供的大小数据然后加上bc算过,我在这个站上投入了大半年的时间,可以说我研究这个站的历史和我开始学shell脚本的历史是同步的,我开始写第一个for循环的时候目标就是把它所有的800GB视频下下来。当然这个项目算是彻底的失败,因为我(到现在还是)没找到一个上传度盘速度超过10MB/s的VPS,外加就算有这种VPS,在Linux系统下上传度盘的速度不会很高,因为度盘就没有Linux客户端。其实那时候我上传到某通上就能解决这个问题,反正我的东西都是拿encrypt.sh加过密的,因为某通有webDAV上传方式,一个curl就能解决,如果上传速度超过10MB/s的话我甚至可以把上传这个步骤写到我的拖站脚本里面,不在本地占用一个GB的空间。由于没找到好的上传方式,所以我加起来只拖了大约四分之一的东西,没赶在colafile跑路之前全拖下来(我可是办了colafile年度会员的,简直坑爹)。到现在,无论我拖什么东西,传度盘永远是一件最蛋疼的事情。

分类
未分类

隐私小知识:Zero-knowledge

O 前言

自从这个博客建立后,我已经好几周时间没写文章了(那个辣鸡域名还没被收回,简直是奇迹)。这段时间忙于玩各种3A大作,看门狗2通关后刚好怎么也进不去了,战地1还在下,帝国时代3已经前后通关了四五遍(因为我在调试我的mod),玩出了一个超大号霸个:第一幕第一关里如果派汤米卡车在刷奥斯曼士兵的地方卡位(所有刷兵点都放一辆),就有几率出不停刷兵的霸个,放几十分钟通关就能看到主城已经升到了50级(手动滑稽

但今天我们不讨论帝国时代3,今天我们讨论网盘。作为比搭建HTTP服务器经济的文件传送方式,有时候网盘的隐私性会极其重要,比如——在传送小电影的时候。

I 什么是Zero-Knowledge

这是一个密码学术语,但在文件存储领域差不多是服务提供商“have zero knowledge about your files”的意思,顾名思义,连文件存储服务的提供商都不知道你存了什么东西在上面,只有你才能知道。可以说这是最终极的保护客户隐私的方式。

在服务提供商的层次,通常通过让加解密过程在客户端完成来实现Zero-Knowledge,这样存储在服务器上的东西就是一堆加了密的文件。mega.co.nz应该是第一个采用此种技术的网盘,它在浏览器端加解密,每一个帐号创建时会在本地生成一个密钥,丢失登录密码时需要这个密钥才能恢复你的文件。所以可以确保当你传片子时那片子只能让知道密码的那两人看到,而mega的管理员是没法看到片子的。

II 现状

然而现在所有的主流网盘,无论是度盘还是Google Drive都没实现Zero-Knowledge,无论它们在保护客户隐私方面吹得多欢,无论你的文件在他们的服务器上以哪种加密形式存储,他们肯定有办法解密你的文件,然后拿来偷偷撸。出于各种原因他们不在自己的产品里实现Zero-Knowledge:有“有关部门监管”的因素,也有成本的考虑(如果每个文件都加密的话那么就别想在文件存储里合并相同文件了,你的文件也绝对不可能秒速上传了),当然绝大多数还是有点想偷窥用户文件的私心的。

III 狂艹现状:强行Zero-Knowledge化技术

既然网盘方面都是一群辣鸡,那么我们就只好让他们强行“have zero knowledge about our files”了,这就是所谓的强行Zero-Knowledge化技术,简单点说就是模拟mega网盘的做法,在本地加解密文件。高端点的可以考虑用FUSE/Dokan搭建加密文件系统,存储进这个文件系统的东西都被无缝地加密成随机乱码文件,放到真实的文件系统(NTFS/ext4)里,然后就可以用百度同步盘或者Dropbox之类的东西在几台电脑间同步了。我很少用到这种东西,因为我的几台电脑都在一个局域网里。但我接下来要介绍的强行Zero-Knowledge化技术,适用于共享或者分享文件的使用场景,而且比加密文件系统的那套简单得多。这是我常用的强行Zero-Knowledge化技术,因为我拖站的时候最后处理完然后上传到度盘时就用的下述的加密方式,如果以后我发布什么资源的时候,我就会把本文扔出来作解密指南用。

首先,我们假设当密码长度足够长时,WinRAR加密的文件是坚不可摧的(如果不认同这一点那么下文就不用看了,因为那样的话肯定没法强行Zero-Knowledge化)。

然后吃我一波shell代码:

encrypt.sh:

function GeneratePW { 
    len=64
    str=(a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 短 发 大 法 好 \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+ \\ \/ \' \; \: \[ \] \{ \} \, \. \?)
    for((i=1;i<=$len;i++))
    do
        arr[$i]=${str[$[$RANDOM%87]]}
    done
    echo "${arr[@]}"|tr -d " "
}

RARpath="/home/WinRAR/rar"

# $1 may contain space
function encrypt {
    folder=`echo $1 | sed 's/™/ /g'`
    if [ -d "$folder" ]
    then
        cd "$folder"
        # md5sum *.* > /tmp/md5
        echo "Calculatin' MD5sum, please wait... "
        find  -type f -print0 | xargs -0 md5sum > "/tmp/$folder.md5"
        # sha1sum *.* > /tmp/sha1
        echo "Calculatin' SHA1sum, please wait... "
        find  -type f -print0 | xargs -0 sha1sum > "/tmp/$folder.sha1"
        # sha256sum *.* > /tmp/sha256
        echo "Calculatin' SHA256sum, please wait... "
        find  -type f -print0 | xargs -0 sha256sum > "/tmp/$folder.sha256"
        mv "/tmp/$folder.md5" "$folder.md5"
        mv "/tmp/$folder.sha1" "$folder.sha1"
        mv "/tmp/$folder.sha256" "$folder.sha256"
        cd ..
        #password="233333"
        password=`GeneratePW`
        # /root/rar/rar a -htb -m0 -ma5 -rr5 -ts -hp"$password" "$folder.rar" $folder
        currentdate=`date +%y.%m.%d`
        "$RARpath" a -df -v1g -htb -m0 -ma5 -rr5 -ts -ol -os -hp"$password" "$folder.$currentdate.rar" "$folder"
        echo "$folder|$currentdate|$password" >> pair.txt
        echo "$folder|$currentdate|$password" > "pair.$folder.$currentdate.txt"
    fi
}

if [ -z "$1" ]
then
    for folder in `ls | sed 's/ /™/g'`
    do
        encrypt "$folder"
    done
else
    encrypt "$1"
fi

decrypt.sh:

RARpath="/home/WinRAR/rar"

for pair in `cat pair.txt | sed 's/ /™/g'`
do
    folder=`echo $pair | cut -d\| -f1  | sed 's/™/ /g'`
    currentdate=`echo $pair | cut -d\| -f2  | sed 's/™/ /g'`
    password=`echo $pair | cut -d\| -f3  | sed 's/™/ /g'`
    /root/rar/rar x -ts -p"$password" "$folder.$currentdaterar"
    if [ -f "$folder.$currentdate.rar" ]
    then
        "$RARpath" x -ts -p"$password" "$folder.$currentdate.rar"
    fi
    if [ -f "$folder.$currentdate.part1.rar" ]
    then
        "$RARpath" x -ts -p"$password" "$folder.$currentdate.part1.rar"
    fi
    if [ -f "$folder.$currentdate.part01.rar" ]
    then
        "$RARpath" x -ts -p"$password" "$folder.$currentdate.part01.rar"
    fi
    if [ -f "$folder.$currentdate.part001.rar" ]
    then
        "$RARpath" x -ts -p"$password" "$folder.$currentdate.part001.rar"
    fi
    cd "$folder"
    md5sum --quiet -c "$folder.md5"
    sha1sum --quiet -c "$folder.sha1"
    sha256sum --quiet -c "$folder.sha256"
    cd ..
done

本人在基于shell的强行Zero-Knowledge化方面耕耘多年,这两串辣鸡shell代码可以夸张点说是我所有心血的结晶,而且在数以百计的实际拖站项目中应用过,可靠性感觉还算可以,到现在还没有出过大型恶性霸个,比如加密压缩的文件解压不出来之类的。

其实早在14年我就开始用64位随机密码加密压缩一些东西然后上传度盘了,但那时是纯手工,直到15年我开始接触shell后才有写一套自动脚本的想法。后面随着我在某台WInServer上展开我有史以来第二大的拖站行动(500GB-600GB),我把那两套脚本改得可以在Cygwin上运行,现在Win系统也可以用我的加密脚本处理文件,或者解压出加了密的文件了。

如果稍微懂一点shell语言的话,你会发现我的加解密脚本是以文件夹为单位的,它会自动获取其当前目录下所有的子文件夹,然后分别将其中每一个文件都算一遍md5、sha1和sha256保存到对应的文件夹里面,再将它们分别用随机生成的64位密码以加密文件头的形式加密压缩(重加密,轻压缩,不对,我压根就没设压缩,要知道通常来玩拖站的VPS性能都辣鸡的1b,连跑各种sum的代码有时候都需要注释掉,更别说压缩了)成1GB大小的分卷压缩包,然后将密码以“文件夹名|日期|密码”的形式存进pair.txt和pair.文件夹名.日期.txt文件里(我之前是用哲学符号分隔的,发现Cygwin里用不了,所以只好改成了另外一个不会出现在文件名里的字符)。所以那些pair打头的文本文件至关重要,它们存储了压缩包的密码,丢了你的压缩包就成了一堆打不开的辣鸡。另外解密脚本直接依据pair.txt的内容来解包,不会去扫描文件夹或者干别的,非常直观。

如果你是从我的某个资源来到这篇文章的,我就说下解压ddOs资源站独家资源的方法:

  1. 先装个Cygwin,别忘了选上dos2unix和unix2dos
  2. 然后把WinRAR目录复制到C:\cygwin64\home(如果Cygwin安装在这里的话)
  3. 然后把从网盘下的加密压缩包放到C:\cygwin64\home(它们在Cygwin里就放在/home),或者不想挪文件的话那么用这个方法来定位它们:假设它们在Win里的路径是J:\2\3\3\3\,那么它们在Cygwin里的路径就是/cygdrive/j/2/3/3/3/
  4. 然后把我或者说ddOs资源站提供的pair.txt(这种东西我肯定不会传网盘上,不然它们Zero-Knowledge个铲铲,我肯定做成论坛附件或者别的东西)文件还有recover.sh文件和压缩包放同一个目录,把上述的decrypt.sh内容复制到一个记事本里,保存到压缩包的目录,名字就叫decrypt.sh好了
  5. 打开Cygwin,输入

    “`bash
    cd /home; ./recover.sh; dos2unix decrypt.sh; ./decrypt.sh
    “`

    然后按回车,如果用了3里面的自定义路径法就把/home改成相应的路径

  6. 等一段时间后压缩包就解完了,大功告成

可以说我的加密脚本运行一顿下来度盘的管理员再也看不见压缩包里面有啥了(因为我用的是-hp而不是-p,连文件头都加密了),但文件夹名(后面成了压缩包的名字)有时候也会成为敏感信息。所以最后再来一波randomize.filename.sh,连最后一点可以辨识的信息我们也搞成乱码:

function GenerateString { 
    len=32
    str=(a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 短 发 大 法 好)
    for((i=1;i<=$len;i++))
    do
        arr[$i]=${str[$[$RANDOM%87]]}
    done
    echo "${arr[@]}"|tr -d " "
}

for file in `echo *.rar`
do
    newname=`GenerateString`
    newname="$newname.rar"
    mv $file $newname
    echo "$file|$newname" >> recover.txt
    echo "mv \"$newname\" \"$file\"" >> recover.sh
done

这下再paranoid也不怕东西传度盘上被河蟹或者被某些人看到了,恢复原来的文件名只需要执行一遍生成的recover.sh就可以搞定,相当爽。

IV 狂艹现状进阶:永不沉没的度盘母舰(手动滑稽

说到度盘,我就想和举报党全家18岁以下的女性亲属发生关系。既然上面得到的压缩包是分卷压缩包,举报党随便举报其中的一个分卷就能让整个压缩包报废,失去分享的价值。所以进阶的玩法是搞两阶段压缩,把上述脚本拆成两个阶段:

在第一阶段正常压缩(不设密码),目标是把文件夹变成1GB分卷的压缩文件,如果电脑配置好的话视目标文件而定,可以开极限压缩;

在第二阶段将每一个分卷用不同的密码加密打包(不压缩)成独立的压缩包,比如叫xxx.part01.encrypted.rar。理论上这个过程可以重复两三遍生成多份冗余,然后全上传到度盘上去,如果某个分卷被爆,我们只需找到该分卷的其他冗余副本下下来解包然后重新加密打包,恢复该分卷的冗余度。或者我们也可以什么都不干,坐等它降至1然后再恢复。搭配上某种程度的自动化程序(这时shell就不够了)我们的资源就可以永不灭了。

解包也和上述的脚本不同,先用各自的密码解包第一阶段压缩包的各分卷,然后第一阶段压缩包直接解就可以了,换句话说需要解压N+1次。

这玩意会很复杂,可能一个pair.txt文件无法容纳下那么多的密码,而且如果出现网盘被爆的情况,还要自动恢复冗余度,更新密码,搞不好需要上数据库和PHP。以后我有时间可能会做这个project,但目前还没想法。

V 总结

我们搞的这个强行Zero-Knowledge化啊,Excited!