少数派报告——树莓派搭建Tor匿名站点

Tor介绍

Tor is free software and an open network that helps you defend against traffic analysis, a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security.
如果需要了解更多请看 Tor官方网站

树莓派介绍

The Raspberry Pi is a tiny and affordable computer that you can use to learn programming through fun, practical projects.
如果需要了解更多请看 Raspberry Pi官方网站

序言

众所周知,现在国内上网需要掌握许多种科学上网的方法。最近还要封杀VPN了,简直过分。这两天看了不少网上搭建Tor匿名站点的方法,但大都鱼龙混杂,而且并没有考虑到我国的”特殊国情”。在经过两天的奋斗之后,我终于搞定了整套流程,现在把它记录在这里,希望可以帮到大家。

Continue reading

Linux渗透提权脚本

在以一个低权限进入系统之后,我们通常需要利用系统的不当配置将权限进行提升。
下面是一个我觉得还不错的脚本,用Python写的。
现在一般服务器上也都带着Python,所以使用起来很方便。

https://github.com/Elfsong/WintersWrath/blob/master/python/linuxprivchecker.py

 

基于Ricequant的一个量化分析公式实现

在三亚待了半个月,天天都在家窝着,还没有去海边转转。
现在基本过的是黑白颠倒的生活,打算过几天把自己的生物钟调回来,然后去海边走走。
老爸这几天也没闲着,让我帮忙实现一个选股公式的需求。利用日线和分钟线的共振来选择适合的股票,下面是具体的实现代码:

import time
def average(order, prieod, M):
    now_date = time.strftime('%Y-%m-%d',time.localtime(time.time()))
    if prieod == '1d':
        begin_date = time.strftime('%Y-%m-%d',time.localtime(time.time()-5*7*24*3600))
        try:
            time_list = get_price(order, start_date = begin_date, end_date = now_date, frequency = prieod, adjust_type = 'pre', skip_suspended = False, country = 'cn')
            #print(time_list)
            return average_merge(time_list, M)
        except:
            #print("无法获取到数据")
            pass
    elif prieod == '60m' or  prieod == '30m':
        begin_date = time.strftime('%Y-%m-%d',time.localtime(time.time()-7*24*3600))
        try:
            time_list = get_price(order, start_date = begin_date, end_date = now_date, frequency = prieod, adjust_type = 'pre', skip_suspended = False, country = 'cn')
            #print(time_list)
            return average_merge(time_list, M)
        except:
            #print("无法获取到数据")
            pass
def average_merge(time_list, M):
    sum = 0
    item = len(time_list.index)
    for delay in range(1, M+1):
        sum += time_list['close'][item-delay]
    average = sum / M
    return average
def Fliter(fac):
    share_list = concept( fac )
    target_list = []
    for share in share_list:
        try:
            if average(share, '1d', 5) >= average(share, '1d', 10) and average(share, '1d', 10) >= average(share, '1d', 20):
                print("已通过一轮筛选:", share)
                if average(share, '60m', 5) >= average(share, '60m', 10) and average(share, '60m', 10) >= average(share, '60m', 20):
                    print("已通过二轮筛选:", share)
                    if average(share, '30m', 5) >= average(share, '30m', 10) and average(share, '30m', 10) >= average(share, '30m', 20):
                        print("已通过三轮筛选:", share)
                        target_list.append(share)
        except:
            #print("无法比较")
            pass
    print("\n",fac,"命中个股:")
    for item in target_list:
        print(item)

Debian下Zsh的安装

这两天要被解压各式各样的压缩包搞得痛不欲生。我感觉我就是那种死活也记不住tar命令的人,于是又心心念想起了Zsh。
在默认Shell的选择上,Debian还是选择了Bash。我觉得主要的原因还是Zsh要是没有Oh-my-Zsh的辅助配置起来还是比较麻烦的。
安装好了Zsh之后,Autojump出了一点小插曲。按照以前的方法安装不上了,最后上官网一查,原来是路径设置错了。

[[ -s /usr/share/autojump/autojump.zsh ]] & . /usr/share/autojump/autojump.zsh

愿我成为萝卜,为你填掉一个坑。
下面是懒人专用alias:

alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'

Seanna语音合成支持

以前在凤巢玩的时候被安利了一发TTS,这两天又看到了,就琢磨着放在Seanna上了。
一直黑百度,但是有的东西百度做得还真不错。

def get_video(self, text, uid):
    url = "http://tsn.baidu.com/text2audio"
    text = urllib.quote(text.encode('utf8'))
    data = {
        'tex':text,
        'lan':'zh',
        'cuid':'C2335EE48C96',
        'ctp':'1',
        'tok':'24.40180bde9494ba22a6ecfefe251f8030.2592000.1487353701.282335-9214410'
    }
    response = urllib.urlopen( url, urllib.urlencode(data) ).read()
    with open( 'video/' + uid + '.mp3', 'wb') as f:
        f.write(response)

全频带阻塞

这几天在海南休息,随身只带了一个Surface和Raspberry Pi。
本来是要搞Fluxion的,但是原有的Debian系统内核不支持Rfkill,于是果断下载了Rasp_Linux的源码开始慢悠悠的交叉编译,但是不知道出了什么神奇的故障,新的内核镜像一直运行不了,ssh党表示很无奈啊。没办法只好重新刷了Kali 2.0的ARM版本,果然有Rfkill。松了一口气以后开始安装Fluxion的依赖,速度非常快。但是后面又出来一堆幺蛾子,此处按下不表。
为了转移注意力,我突然看到了一个FM的开源项目,看了一下也不是很复杂,所以就愉快的搞了一发。
1. 首先需要安装必要组件libsndfile

tar -xvzf libsndfile-1.0.25.tar.gz
cd libsndfile-1.0.25
./configure
make
make install

2. 克隆PiFmRds到本地。

git clone https://github.com/ChristopheJacquet/PiFmRds.git
cd PiFmRds/src
make clean
make

3. 编译成功之后会生成pi_fm_rds文件,之后可以执行下面的命令。频率可以通过-freq选择,播放的音频可以通过-audio选择。

 sudo ./pi_fm_rds -freq 107.9 -audio sound.wav

4. 最后,私人架设FM电台是违法的,勿做实际应用。至于题目是什么意思嘛,我什么都不知道~

隐藏

raspistill -n -q 10 -rot 180 -o monitor.jpg
curl --request POST --data-binary @"~/monitor.jpg" --header "U-ApiKey: xxxxxxxxx" http://api.yeelink.net/v1.0/device/xxxxx/sensor/xxxxx/photos

这是一段两年前写的代码。当时是为了做一个项目,做完之后这台机器也就被束之高阁了。今天临时需要一台物理机,登陆上去发现她还在运行,并且一直在给上行服务器发送数据,莫名有点感动。