分类 编程 下的文章


使用dd和nc将手机内部存储直接备份到电脑


因为打算自己编译一个CyanogenMod14.1给我的Zenfone 5,要备份一下文件。但是忘了之前在哪里看到用nc和dd通过usb传输备份文件到电脑。又忘了nc怎么用,我实在太懒,就在Google上搜索现成的教程。刚好看见一个知乎提问,方法类似,多个gzip而已(安卓使用dd命令备份镜像如何加入gzip压缩参数? - 知乎)。于是我就先在这里备份一下,避免下次用到又忘了怎么用。

首先你得有adb。

然后将手机连上电脑,用adb devices确认已经连接上了,并且显示的是device而不是unauthorized什么的。

adb forward tcp:2333 tcp:2333转发端口。2333是端口号,tcp是协议。第一个是电脑上的监听端口,第二个是手机上的端口。

接着adb shell su进入shell模式并且获取得到root。

nc -p 2333 -L dd if=/dev/block/mmcblk0

(如果nc版本不同,命令的使用也不尽相同。在某些版本中,上面命令的写法是nc -p 2333 -l -e dd if=/dev/block/mmcblk0)

我这里备份的是整个mmcblk0,如果你只要其中一个分区那就先fdisk -l /dev/block/mmcblk0不过我的手机没有成功列出分区表,也许是GPT分区表的锅。你也可以通过ls /dev/block/by-name通过名字找到你的数据分区(比如说data,那命令就是nc -p 2333 -L dd if=/dev/block/by-name/data),当然也可以直接用mount命令找到你想要分区的挂载点。

至此,手机上的准备结束。

QQ20161106-1.png

电脑上也很简单。

shell里一句话nc 127.0.0.1 2333 | pv -i 1 > asus_t00f-20161106-backup.img就可以了,后面的asus_t00f-20161106-backup.img是电脑上接受备份的文件名。

然后去吃零食等传输好就可以了。

QQ20161106-2.png


Typecho在HTTPS反代HTTP时遇到的bug处理


把博客改成HTTPS反代HTTP以后,觉得自己很久没收到评论提示了,于是决定上博客后台看看。突然发现博客后台进不去了,不仅是所有资源都被写成了http://,还有就算是手动load了这些http的不安全脚本,还是不能登录。后来经过阅读相关Typecho的源代码,才知道问题出在/var/Typecho.Request.php中的getUrlPrefix()函数中。这里调用了同文件中的isSecure()函数。而isSecure()函数中判断是https的方式有3种:

  1. PHP的$_SERVER['HTTPS']中值不为off
  2. PHP的$_SERVER['SERVER_PORT']中值为443
  3. 常量__TYPECHO_SECURE__为true

一看第三种方式处理起来最方便,于是打开/config.inc.php,在该插入的位置插入define('__TYPECHO_SECURE__', true);,就可以解决。博客的评论问题也同时可以完美解决。


自动登录浙江省高校招生考试信息管理系统


刚刚经历了浙江省的2016年10月学考选考,但不知道什么时候出成绩,于是我决定写一个自动查询的脚本。

0x00 准备

首先我打开了http://pgzy.zjzs.net:8011/login.htm,仔细观察了它的验证码。

pgzy.zjzs.net:8011

看了一下这个验证码的干扰因子很少,应该很方便识别。为了研究,我用wget下载了20个验证码。

wget http://pgzy.zjzs.net:8011/INC/VerifyCode.aspx -O $(date +%s).jpg

这里为了试验,我把20个验证码全部重命名过了。

验证码们

这里打算使用的语言是交易 3Python 3,并装好opencv和diff-match-patch。

本来想使用TensorFlow,但是我怕我在研究怎么使用它上会花费大量时间,于是使用了最机械的方法。

// 点开我,里面还有许多内容!


Cordova中deviceready事件不能触发


这两天在做一个HTML5App项目,我用Cordova进行开发。但是调试的时候却发现deviceready事件没有被触发。

deviceready没有被触发,里面的东西也没运行。后来在google上爬了一会儿,才知道页面上要引入cordova.js。

于是加了

<script src="cordova.js"></script>

程序正常运行。

cordova.js直接引入即可,是自动生成的。


简单试一下Bash on Ubuntu on Windows


windows的机子一直都是被我拿来挂qq的,日常使用的还是linux比较多,听说微软搞了一个什么Bash on Ubuntu on Windows,便想玩一玩。

到目前为止只是简单装了一下

// 点开我,里面还有许多内容!