0%

使用 QQ 这么多年,管理的群越来越多。现在每天被入群申请搞得烦不胜烦,于是萌生了写一个 QQ 机器人的想法。

要想实现一个 QQ 机器人,首先是要在程序里模拟登录。经过整理,可用的思路有两个:

  • 使用 WebQQ 的方式登录,模拟浏览器的行为;
  • 使用 Android QQ 的方式登录,模拟 Android 客户端的行为。

二者各有利弊。使用 WebQQ 方式登录协议相对简单,网络上也有相关分析;但是 WebQQ 不能与电脑上的 QQ 共存:登录 WebQQ 就会将电脑上的登录踢下线。使用 Android QQ 的方式登录,由于没有现成的资料可供查询,实现起来十分复杂;但是 Android QQ 是手机端 QQ,可以与电脑端 QQ 共存。

「要做就做好」。思前想后,我还是决定使用 Android QQ 的方式登录。于是问题来了,怎样去抓取 Android QQ 的行为呢?

  1. 在 Android QQ 外围进行抓包分析,然后让程序伪装成 Android QQ 向腾讯的服务器发包;
  2. 直接读 Android QQ 的源代码,然后仿照着相关内容重新实现。

方案 1 是常规方法,若能顺利实施,无非是不断重复抓包 - 分析 - 伪造的步骤。不过 QQ 的通信信息是加密处理过的,抓包分析比较费劲。因此,我决定尝试反编译 Android 程序,直接阅读源代码。

这里我介绍反编译安卓程序,得到 Java 代码的详细方法。

请尊重他人劳动成果,勿将此方法用于恶意活动。

阅读全文 »

XeLaTeX 是 eTeX 的扩展。它直接支持 Unicode 字符,并且能够调用安装在操作系统的字体。这些特性解决了以往 TeX 切换字体不便的问题,对于中文 TeX 用户来说,更是福音。

前段时间,TeX Live 更新到了 TeX Live 2015 版本,Mac OS X 上相应的也更新到了 MacTeX 2015 版本。不过此次更新之后,XeLaTeX 却无法通过字体文件名调用系统字体。亦即,下列代码无法通过编译(提示 font-not-found):

1
2
3
4
5
6
\documentclass{article}
\usepackage{fontspec}
\setmainfont{GillSans.ttc}
\begin{document}
GillSans Test.
\end{document}
阅读全文 »

很多书籍在设计版式的时候,会要求 \chapter 从奇数页码开始:上一章节在奇数页结束则留白一页,而后再从奇数页码继续排版。为了避免给读者造成「这里的内容缺失了」的印象,通常会写上「This page is intetionally left blank」的字样。

本文来实现这种效果。

阅读全文 »

Ubuntu 系统在用户登录时会显示欢迎信息。有时用户会看到「有 xx 个软件包可以更新,其中有 xx 个安全更新」。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Sat Jun 27 01:12:04 UTC 2015

System load: 0.0 Processes: 98
Usage of /: 10.6% of 9.71GB Users logged in: 0
Memory usage: 10% IP address for eth0: 192.168.12.233
Swap usage: 0%

Graph this data and manage this system at:
https://landscape.canonical.com/

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

91 packages can be updated.
39 updates are security updates.

对于一般的更新,如果不影响使用,一般也就罢了。但是通常,如果系统提示有安全更新,大多数用户(特别是服务器管理员)还是会去更新的。不过,面对 Ubuntu 的这些提示,很多用户经常遇到「不管怎么 apt-get updage && apt-get upgrade 也不见好」的问题。

阅读全文 »

TeX Live 是由国际 TeX 用户组(TUG)维护的 TeX 发行版,一般被认为是 TeX 发行版的「正统」,具有稳定、更新快、维护足的特点。

不过,使用 TeX Live 也有麻烦的地方——TeX Live 每年都更新,而更新版本之后旧版本就无法再从 CTAN 上自动更新宏包。这样一来,TeX Live 用户就不得不每年都重新安装一次,相当麻烦。而且,在新版测试期间更新的宏包,旧版本的用户就无法通过 tlmgr 来更新了。对于中国的用户而言,TeX Live 2014 向 TeX Live 2015 的过渡期尤为难熬,因为 CTeX 宏集的新版本 发布了。

这篇文章中,我将介绍如何在旧版本的 TeX Live 中跨版本更新宏包。

阅读全文 »