<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.wifihack.net/styles/feedsky2.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.wifihack.net" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/wifihack" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 08 Jan 2012 15:33:15 GMT</lastBuildDate><title>Linux kernel, wifi hack &amp; security</title><description>simple is powerful</description><link>http://wifihack.net/blog</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Sun, 08 Jan 2012 15:33:15 GMT</pubDate><item><title>招商证券股票day数据格式分析</title><link>http://wifihack.net/blog/2012/01/newone-stock-data-day-format-analytics/</link><content:encoded>&lt;p&gt;今天没事想把招商证券保存的股票数据提取出来, 后来发现招商证券的软件是采用是通达信做的, 这样直接通过查找通达信的数据格式就搞定了.&lt;/p&gt;
&lt;p&gt;主要参考: &lt;a href=&quot;http://alantop.5166.info/gpdatasoft/gpformat/gpformat.htm#_Toc224993378&quot;&gt;http://alantop.5166.info/gpdatasoft/gpformat/gpformat.htm#_Toc224993378&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;通达信日线&lt;/h3&gt;
&lt;p&gt;每条数据文件占32个字节。每四个字节代表一个变量。如下所示：&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;struct stockDay&lt;br /&gt;
{&lt;br /&gt;
uint32_t date; //日期&lt;br /&gt;
uint32_t open; //开盘价，单位：分&lt;br /&gt;
uint32_t high; //最高价，单位：分&lt;br /&gt;
uint32_t low; //最低价，单位：分&lt;br /&gt;
uint32_t close; //收盘价，单位：分&lt;br /&gt;
float amount; //交易金额，单位：元&lt;br /&gt;
uint32_t vol; //成交量，单位：股&lt;br /&gt;
int32_t reserv; //保留，有时用来保存上一交易日收盘价&lt;br /&gt;
};&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;我分别使用C和Go写了个简单的提取程序.&lt;/p&gt;
&lt;p&gt;C代码:&lt;/p&gt;
&lt;div&gt;
&lt;blockquote&gt;&lt;p&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
struct stockDay&lt;br /&gt;
{&lt;br /&gt;
uint32_t date; //日期&lt;br /&gt;
uint32_t open; //开盘价，单位：分&lt;br /&gt;
uint32_t high; //最高价，单位：分&lt;br /&gt;
uint32_t low; //最低价，单位：分&lt;br /&gt;
uint32_t close; //收盘价，单位：分&lt;br /&gt;
float amount; //交易金额，单位：元&lt;br /&gt;
uint32_t vol; //成交量，单位：股&lt;br /&gt;
int32_t reserv; //保留，有时用来保存上一交易日收盘价&lt;br /&gt;
};&lt;/p&gt;
&lt;p&gt;void printDay(struct stockDay *day)&lt;br /&gt;
{&lt;br /&gt;
printf(&amp;#8220;日期: %d, &amp;#8220;, day-&amp;gt;date);&lt;br /&gt;
printf(&amp;#8220;开盘价: %.2f, 最高价: %.2f, 最低价: %.2f, 收盘价: %.2f, &amp;#8220;, day-&amp;gt;open/100.0, day-&amp;gt;high/100.0, day-&amp;gt;low/100.0, day-&amp;gt;close/100.0);&lt;br /&gt;
printf(&amp;#8220;交易金额: %f, 交易量: %d\n&amp;#8221;, day-&amp;gt;amount, day-&amp;gt;vol);&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;int main()&lt;br /&gt;
{&lt;br /&gt;
FILE *p;&lt;br /&gt;
int i = 0;&lt;br /&gt;
char *file = &amp;#8220;./sh600529.day&amp;#8221;;&lt;br /&gt;
struct stockDay *day = malloc(sizeof(struct stockDay));&lt;/p&gt;
&lt;p&gt;p = fopen(file, &amp;#8220;r&amp;#8221;);&lt;br /&gt;
if (p) {&lt;br /&gt;
fseek(p, 0, SEEK_END);&lt;br /&gt;
uint64_t iFileLen = ftell(p)/(sizeof(struct stockDay));&lt;br /&gt;
rewind(p);&lt;br /&gt;
for (i = 0; i &amp;lt; iFileLen; i++) {&lt;br /&gt;
memset(day, 0, sizeof(struct stockDay));&lt;br /&gt;
fread(day, sizeof(struct stockDay), 1, p);&lt;br /&gt;
printDay(day);&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;} else {&lt;br /&gt;
printf(&amp;#8220;Read File: %s Error!\n&amp;#8221;, file);&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;free(day);&lt;br /&gt;
fclose(p);&lt;br /&gt;
return 0;&lt;br /&gt;
}&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Go的代码:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div id=&quot;LC1&quot;&gt;
&lt;blockquote&gt;&lt;p&gt;package main&lt;/p&gt;
&lt;p&gt;import (&lt;br /&gt;
&amp;#8220;bytes&amp;#8221;&lt;br /&gt;
&amp;#8220;encoding/binary&amp;#8221;&lt;br /&gt;
&amp;#8220;fmt&amp;#8221;&lt;br /&gt;
&amp;#8220;io/ioutil&amp;#8221;&lt;br /&gt;
&amp;#8220;unsafe&amp;#8221;&lt;br /&gt;
)&lt;/p&gt;
&lt;p&gt;type StockDay struct {&lt;br /&gt;
date uint32 //日期&lt;br /&gt;
open uint32 //开盘价，单位：分&lt;br /&gt;
high uint32 //最高价，单位：分&lt;br /&gt;
low uint32 //最低价，单位：分&lt;br /&gt;
cls uint32 //收盘价，单位：分&lt;br /&gt;
amount float32 //交易金额，单位：元&lt;br /&gt;
vol uint32 //成交量，单位：股&lt;br /&gt;
reserv int32 //保留，有时用来保存上一交易日收盘价&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;func main() {&lt;br /&gt;
contents, _ := ioutil.ReadFile(&amp;#8220;./sh887001.day&amp;#8221;)&lt;br /&gt;
//println(string(contents));&lt;br /&gt;
var day StockDay&lt;br /&gt;
size := int(unsafe.Sizeof(day))&lt;br /&gt;
fmt.Printf(&amp;#8220;sizeof: %d, days: %d\n&amp;#8221;, size, len(contents)/size)&lt;br /&gt;
for i := 0; i &amp;lt; len(contents); i += 32 {&lt;br /&gt;
buf := bytes.NewBuffer(contents[i : i+4])&lt;br /&gt;
err := binary.Read(buf, binary.LittleEndian, &amp;amp;day.date)&lt;br /&gt;
if err != nil {&lt;br /&gt;
fmt.Println(&amp;#8220;binary.Read failed: &amp;#8220;, err)&lt;br /&gt;
}&lt;br /&gt;
buf = bytes.NewBuffer(contents[i+4 : i+8])&lt;br /&gt;
err = binary.Read(buf, binary.LittleEndian, &amp;amp;day.open)&lt;/p&gt;
&lt;p&gt;buf = bytes.NewBuffer(contents[i+8 : i+12])&lt;br /&gt;
err = binary.Read(buf, binary.LittleEndian, &amp;amp;day.high)&lt;/p&gt;
&lt;p&gt;buf = bytes.NewBuffer(contents[i+12 : i+16])&lt;br /&gt;
err = binary.Read(buf, binary.LittleEndian, &amp;amp;day.low)&lt;/p&gt;
&lt;p&gt;buf = bytes.NewBuffer(contents[i+16 : i+20])&lt;br /&gt;
err = binary.Read(buf, binary.LittleEndian, &amp;amp;day.cls)&lt;/p&gt;
&lt;p&gt;buf = bytes.NewBuffer(contents[i+20 : i+24])&lt;br /&gt;
err = binary.Read(buf, binary.LittleEndian, &amp;amp;day.amount)&lt;/p&gt;
&lt;p&gt;buf = bytes.NewBuffer(contents[i+24 : i+28])&lt;br /&gt;
err = binary.Read(buf, binary.LittleEndian, &amp;amp;day.vol)&lt;/p&gt;
&lt;p&gt;fmt.Printf(&amp;#8220;%v\n&amp;#8221;, day)&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;代码也贴在Github上: &lt;a href=&quot;https://gist.github.com/1578661&quot;&gt;https://gist.github.com/1578661&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ps: 目前5分钟线的月份和日期对不上, 不知道哪位高手搞过?&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594589805/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2012/01/newone-stock-data-day-format-analytics/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2012/01/newone-stock-data-day-format-analytics/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>今天没事想把招商证券保存的股票数据提取出来, 后来发现招商证券的软件是采用是通达信做的, 这样直接通过查找通达信的数据格式就搞定了. 主要参考: http://alantop.5166.info/gpdatasoft/gpformat/gpformat.htm#_Toc224993378 通达信日线 每条数据文件占32个字节。每四个字节代表一个变量。如下所示： &amp;#160; struct stockDay { uint32_t date; //日期 uint32_t open; //开盘价，单位：分 uint32_t high; //最高价，单位：分 uint32_t low; //最低价，单位：分 uint32_t close; //收盘价，单位：分 float amount; //交易金额，单位：元 uint32_t vol; //成交量，单位：股 int32_t reserv; //保留，有时用来保存上一交易日收盘价 }; 我分别使用C和Go写了个简单的提取程序. C代码: #include &amp;#60;stdio.h&amp;#62; #include &amp;#60;stdlib.h&amp;#62; #include &amp;#60;stdint.h&amp;#62; #include &amp;#60;string.h&amp;#62; struct stockDay { uint32_t date; //日期 uint32_t open; //开盘价，单位：分 uint32_t [...]&lt;img src=&quot;http://www1.feedsky.com/t1/594589805/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2012/01/newone-stock-data-day-format-analytics/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>股票</category><category>通达信</category><category>stock</category><category>go</category><category>golang</category><category>newone</category><category>招商证券</category><category>Tech.Notes</category><pubDate>Sun, 08 Jan 2012 23:33:15 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2012/01/newone-stock-data-day-format-analytics/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=689</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2012/01/newone-stock-data-day-format-analytics/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/594589805/5414143</fs:itemid></item><item><title>golang Byte数组转换为浮点数</title><link>http://wifihack.net/blog/2012/01/golang-byte-array-convert-to-float64/</link><content:encoded>&lt;p&gt;今天没事想用go从文件中提取些二进制数据，并把数据转换为相关的数据类型， 就找到一个把数组转换为float类型的数据。主要用到了encoding/binary包里面的read函数， 它可以根据你数据的大小端得到相关的数据类型。&lt;/p&gt;
&lt;p&gt;主要代码如下:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;package main&lt;/p&gt;
&lt;p&gt;import (&lt;br /&gt;
&amp;#8220;bytes&amp;#8221;&lt;br /&gt;
&amp;#8220;encoding/binary&amp;#8221;&lt;br /&gt;
&amp;#8220;fmt&amp;#8221;&lt;br /&gt;
)&lt;/p&gt;
&lt;p&gt;func main() {&lt;br /&gt;
var pi float64&lt;br /&gt;
b := []byte{0&amp;#215;18, 0x2d, 0&amp;#215;44, 0&amp;#215;54, 0xfb, 0&amp;#215;21, 0&amp;#215;09, 0&amp;#215;40}&lt;br /&gt;
buf := bytes.NewBuffer(b)&lt;br /&gt;
err := binary.Read(buf, binary.LittleEndian, &amp;amp;pi)&lt;br /&gt;
if err != nil {&lt;br /&gt;
fmt.Println(&amp;#8220;binary.Read failed:&amp;#8221;, err)&lt;br /&gt;
}&lt;br /&gt;
fmt.Println(pi)&lt;br /&gt;
}&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;下面是go里面uint32在大小端的分别实现:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;bvcom@bvcomtv:~$ godoc -src encoding/binary Uint32&lt;br /&gt;
// A ByteOrder specifies how to convert byte sequences into&lt;br /&gt;
// 16-, 32-, or 64-bit unsigned integers.&lt;br /&gt;
type ByteOrder interface {&lt;br /&gt;
Uint32([]byte) uint32&lt;br /&gt;
// contains filtered or unexported methods&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;func (littleEndian) Uint32(b []byte) uint32 {&lt;br /&gt;
return uint32(b[0]) | uint32(b[1])&amp;lt;&amp;lt;8 | uint32(b[2])&amp;lt;&amp;lt;16 | uint32(b[3])&amp;lt;&amp;lt;24&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;func (bigEndian) Uint32(b []byte) uint32 {&lt;br /&gt;
return uint32(b[3]) | uint32(b[2])&amp;lt;&amp;lt;8 | uint32(b[1])&amp;lt;&amp;lt;16 | uint32(b[0])&amp;lt;&amp;lt;24&lt;br /&gt;
}&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;参考:&lt;br /&gt;
Convert 8 byte array to int64? Options:  http://groups.google.com/group/golang-nuts/browse_thread/thread/7f541090fd7d1bd4&lt;/p&gt;
&lt;p&gt;Reading byte array as another datatype Options: http://groups.google.com/group/golang-nuts/browse_thread/thread/fc00115bf5b35757&lt;/p&gt;
&lt;p&gt;http://golang.org/src/pkg/encoding/binary/binary.go?s=3435:3501#L117&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594503375/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2012/01/golang-byte-array-convert-to-float64/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2012/01/golang-byte-array-convert-to-float64/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>今天没事想用go从文件中提取些二进制数据，并把数据转换为相关的数据类型， 就找到一个把数组转换为float类型的数据。主要用到了encoding/binary包里面的read函数， 它可以根据你数据的大小端得到相关的数据类型。 主要代码如下: package main import ( &amp;#8220;bytes&amp;#8221; &amp;#8220;encoding/binary&amp;#8221; &amp;#8220;fmt&amp;#8221; ) func main() { var pi float64 b := []byte{0&amp;#215;18, 0x2d, 0&amp;#215;44, 0&amp;#215;54, 0xfb, 0&amp;#215;21, 0&amp;#215;09, 0&amp;#215;40} buf := bytes.NewBuffer(b) err := binary.Read(buf, binary.LittleEndian, &amp;#38;pi) if err != nil { fmt.Println(&amp;#8220;binary.Read failed:&amp;#8221;, err) } fmt.Println(pi) } 下面是go里面uint32在大小端的分别实现: bvcom@bvcomtv:~$ godoc -src encoding/binary Uint32 // A [...]&lt;img src=&quot;http://www1.feedsky.com/t1/594503375/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2012/01/golang-byte-array-convert-to-float64/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>godoc</category><category>encoding</category><category>array</category><category>littleendian</category><category>go</category><category>bigendian</category><category>golang</category><category>binary</category><category>Tech.Notes</category><pubDate>Sun, 08 Jan 2012 10:53:00 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2012/01/golang-byte-array-convert-to-float64/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=685</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2012/01/golang-byte-array-convert-to-float64/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/594503375/5414143</fs:itemid></item><item><title>Go 1 will be</title><link>http://wifihack.net/blog/2012/01/go-1-will-be/</link><content:encoded>&lt;p&gt;在golang-nuts邮件列表里面, 有人问了有关Go 1的情况, golang的主要开发者Brad Fitzpatrick说: Go 1 相关的库和包, 都已经完成, 节后只修复相关的Bug, 修复完后就会发布Go 1.&lt;br /&gt;
如果你想使用可以使用最新Weekly版本2011-12-22, 这个基本上就是Go1 版本.&lt;/p&gt;
&lt;p&gt;原文如下:&lt;br /&gt;
All the major Go 1 language &amp;amp; library changes are now in. Bug fixing &amp;amp;&lt;br /&gt;
polish begins after the holidays, then some release candidates will start&lt;br /&gt;
going out. The latest weekly, 2011-12-22 is basically what Go 1 will be,&lt;br /&gt;
if you want to start playing.&lt;/p&gt;
&lt;p&gt;参考: &lt;a href=&quot;http://groups.google.com/group/golang-nuts/browse_thread/thread/b768e33abf4b868b&quot;&gt;http://groups.google.com/group/golang-n &amp;#8230; 3abf4b868b&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583197/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2012/01/go-1-will-be/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2012/01/go-1-will-be/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>在golang-nuts邮件列表里面, 有人问了有关Go 1的情况, golang的主要开发者Brad Fitzpatrick说: Go 1 相关的库和包, 都已经完成, 节后只修复相关的Bug, 修复完后就会发布Go 1. 如果你想使用可以使用最新Weekly版本2011-12-22, 这个基本上就是Go1 版本. 原文如下: All the major Go 1 language &amp;#38; library changes are now in. Bug fixing &amp;#38; polish begins after the holidays, then some release candidates will start going out. The latest weekly, 2011-12-22 is basically what Go 1 will be, [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583197/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2012/01/go-1-will-be/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>golangchina</category><category>golang-china</category><category>go</category><category>golang</category><category>go1</category><pubDate>Sun, 01 Jan 2012 10:37:17 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2012/01/go-1-will-be/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=675</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2012/01/go-1-will-be/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583197/5414143</fs:itemid></item><item><title>Reaver在10小时之内破解WPA密码</title><link>http://wifihack.net/blog/2011/12/cracking-wpa-in-10-hours-or-less/</link><content:encoded>&lt;p&gt;从Hacker News看到一个WPA破解的工具&lt;a href=&quot;http://www.tacnetsol.com/products/&quot;&gt;Reaver&lt;/a&gt;,  号称能在10小时之内破解WPA,  晚上回去试试看.&lt;/p&gt;
&lt;p&gt;The WiFi Protected Setup protocol is vulnerable to a brute force attack that allows an attacker to recover an access point’s WPS pin, and subsequently the WPA/WPA2 passphrase, in just a matter of hours.&lt;/p&gt;
&lt;p&gt;This is something that I’ve been testing and using for a while now, but Stefan over at&lt;a href=&quot;http://sviehb.wordpress.com/2011/12/27/wi-fi-protected-setup-pin-brute-force-vulnerability/&quot;&gt;.braindump&lt;/a&gt; beat me to publication. Such is life. &lt;img src=&quot;http://www.devttys0.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Stefan’s code isn’t quite ready for release yet, so I’ve open-sourced &lt;a href=&quot;http://www.tacnetsol.com/products/&quot;&gt;Reaver&lt;/a&gt;, my WPS attack tool. Reaver is stable and has been tested against a variety of access points and WPS implementations.&lt;/p&gt;
&lt;p&gt;Usage is simple; just specify the target BSSID and the monitor mode interface to use:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# reaver -i mon0 -b 00:01:02:03:04:05&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For those interested, there is also a commercial version available with more features and speed improvements.&lt;/p&gt;
&lt;p&gt;原文参考: &lt;a href=&quot;http://www.devttys0.com/2011/12/cracking-wpa-in-10-hours-or-less/&quot;&gt;http://www.devttys0.com/2011/12/cracking-wpa-in-10-hours-or-less/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583198/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/12/cracking-wpa-in-10-hours-or-less/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/12/cracking-wpa-in-10-hours-or-less/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>从Hacker News看到一个WPA破解的工具Reaver,  号称能在10小时之内破解WPA,  晚上回去试试看. The WiFi Protected Setup protocol is vulnerable to a brute force attack that allows an attacker to recover an access point’s WPS pin, and subsequently the WPA/WPA2 passphrase, in just a matter of hours. This is something that I’ve been testing and using for a while now, but Stefan over at.braindump beat [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583198/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/12/cracking-wpa-in-10-hours-or-less/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>reaver</category><category>hacker</category><category>wpa</category><category>Security</category><category>attacker</category><category>Geek</category><category>wifi</category><pubDate>Thu, 29 Dec 2011 13:07:04 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/12/cracking-wpa-in-10-hours-or-less/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=670</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/12/cracking-wpa-in-10-hours-or-less/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583198/5414143</fs:itemid></item><item><title>buildroot编译出错信息</title><link>http://wifihack.net/blog/2011/12/buildroot-compile-erro/</link><content:encoded>&lt;p&gt;1. PATH环境变量有当前目录&lt;br /&gt;
错误信息:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;border@b0rder:/work/tss/src/lichee/buildroot$ ./build.sh -p sun4i -m buildroot&lt;/p&gt;
&lt;p&gt;You seem to have the current working directory in your PATH environment variable. This doesn&amp;#8217;t work.&lt;/p&gt;
&lt;p&gt;make: *** [dependencies] 错误 1&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;解决方法,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;border@b0rder:/work/tss/src/lichee/buildroot$ echo $PATH .:/home/border/bin/jdk1.6.0_26/bin:.:.:/home/border/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2010.09/bin:/home/border/go/bin://home/border/bin:/usr/local/arm/arm-2009q3/bin:/home/border/bin:/work/vc1000/src/android-vc1000/out/host/linux-x86/bin:/home/border/bin:/home/border/work/depot_tools:/home/border/work/app/google_appengine:/work/vc1000/src/android-vc1000/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/home/border/work/android/eclipse-x64:/home/border/work/ai/python/:/home/border/work/ai/python/tools&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;上面的.表示当前目录信息， 去掉. 后才能正常编译。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;border@b0rder:/work/tss/src/lichee/buildroot$ export PATH=/home/border/bin/jdk1.6.0_26/bin:/home/border/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2010.09/bin:/home/border/go/bin://home/border/bin:/usr/local/arm/arm-2009q3/bin:/home/border/bin:/work/vc1000/src/android-vc1000/out/host/linux-x86/bin:/home/border/bin:/home/border/work/depot_tools:/home/border/work/app/google_appengine:/work/vc1000/src/android-vc1000/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/home/border/work/android/eclipse-x64:/home/border/work/ai/python/:/home/border/work/ai/python/tools border@b0rder:/work/tss/src/lichee/buildroot$ echo $PATH /home/border/bin/jdk1.6.0_26/bin:/home/border/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2010.09/bin:/home/border/go/bin://home/border/bin:/usr/local/arm/arm-2009q3/bin:/home/border/bin:/work/vc1000/src/android-vc1000/out/host/linux-x86/bin:/home/border/bin:/home/border/work/depot_tools:/home/border/work/app/google_appengine:/work/vc1000/src/android-vc1000/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/home/border/work/android/eclipse-x64:/home/border/work/ai/python/:/home/border/work/ai/python/tools&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2. makeinfo&lt;br /&gt;
错误信息:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;border@b0rder:/mnt/ubuntu32/work/tss/src/lichee$ ./build.sh -p sun4i -m buildroot&lt;/p&gt;
&lt;p&gt;You must install &amp;#8216;makeinfo&amp;#8217; on your build machine makeinfo is usually part of the texinfo package in your distribution&lt;/p&gt;
&lt;p&gt;make: *** [dependencies] 错误 1&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;解决方法:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;sudo apt-get install texinfo&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;#8211;EOF&amp;#8211;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583199/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/12/buildroot-compile-erro/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/12/buildroot-compile-erro/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>1. PATH环境变量有当前目录 错误信息: border@b0rder:/work/tss/src/lichee/buildroot$ ./build.sh -p sun4i -m buildroot You seem to have the current working directory in your PATH environment variable. This doesn&amp;#8217;t work. make: *** [dependencies] 错误 1 解决方法, border@b0rder:/work/tss/src/lichee/buildroot$ echo $PATH .:/home/border/bin/jdk1.6.0_26/bin:.:.:/home/border/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2010.09/bin:/home/border/go/bin://home/border/bin:/usr/local/arm/arm-2009q3/bin:/home/border/bin:/work/vc1000/src/android-vc1000/out/host/linux-x86/bin:/home/border/bin:/home/border/work/depot_tools:/home/border/work/app/google_appengine:/work/vc1000/src/android-vc1000/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/home/border/work/android/eclipse-x64:/home/border/work/ai/python/:/home/border/work/ai/python/tools 上面的.表示当前目录信息， 去掉. 后才能正常编译。 border@b0rder:/work/tss/src/lichee/buildroot$ export PATH=/home/border/bin/jdk1.6.0_26/bin:/home/border/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2010.09/bin:/home/border/go/bin://home/border/bin:/usr/local/arm/arm-2009q3/bin:/home/border/bin:/work/vc1000/src/android-vc1000/out/host/linux-x86/bin:/home/border/bin:/home/border/work/depot_tools:/home/border/work/app/google_appengine:/work/vc1000/src/android-vc1000/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/home/border/work/android/eclipse-x64:/home/border/work/ai/python/:/home/border/work/ai/python/tools border@b0rder:/work/tss/src/lichee/buildroot$ echo $PATH /home/border/bin/jdk1.6.0_26/bin:/home/border/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/arm-2010.09/bin:/home/border/go/bin://home/border/bin:/usr/local/arm/arm-2009q3/bin:/home/border/bin:/work/vc1000/src/android-vc1000/out/host/linux-x86/bin:/home/border/bin:/home/border/work/depot_tools:/home/border/work/app/google_appengine:/work/vc1000/src/android-vc1000/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/home/border/work/android/eclipse-x64:/home/border/work/ai/python/:/home/border/work/ai/python/tools 2. makeinfo 错误信息: border@b0rder:/mnt/ubuntu32/work/tss/src/lichee$ ./build.sh -p sun4i -m buildroot You [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583199/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/12/buildroot-compile-erro/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>android</category><category>error</category><category>OpenSource</category><category>Kernel</category><category>A10</category><category>Embedded</category><category>buildroot</category><category>compile</category><category>Tech.Notes</category><pubDate>Tue, 20 Dec 2011 19:03:46 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/12/buildroot-compile-erro/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=651</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/12/buildroot-compile-erro/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583199/5414143</fs:itemid></item><item><title>Android 4.0 (Ice Cream Sandwich) 源码发布了</title><link>http://wifihack.net/blog/2011/11/android-4-0-ice-cream-sandwich-release/</link><content:encoded>&lt;p&gt;From: &lt;a href=&quot;http://groups.google.com/group/android-building/browse_thread/thread/4f85d9242667a85f?pli=1&quot;&gt;http://groups.google.com/group/android-building/browse_thread/thread/4f85d9242667a85f?pli=1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hi! We just released a bit of code we thought this group might be interested in.&lt;br /&gt;
Over at our Android Open-Source Project git servers, the source code&lt;br /&gt;
for Android version 4.0 (Ice Cream Sandwich) is now available.&lt;br /&gt;
Here&amp;#8217;s how to get it:Follow the instructions at&lt;br /&gt;
&lt;a href=&quot;http://source.android.com/source/downloading.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://source.android.com/source/downloading.html &lt;/a&gt;Check out the&lt;br /&gt;
&amp;#8216;ics-release&amp;#8217; branch:repo init -u&lt;br /&gt;
&lt;a href=&quot;http://www.google.com/url?sa=D&amp;amp;q=https://android.googlesource.com/platform/manifest&amp;amp;usg=AFQjCNHxtjISMYOI0KdhckKjZYtDvxZLiw&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://android.googlesource.com/platform/manifest&lt;/a&gt; -b android-4.0.1_r1&lt;br /&gt;
That&amp;#8217;s it! However since this is a large push, please be aware that it&lt;br /&gt;
will take some time to complete. If you sync before it&amp;#8217;s done, you&amp;#8217;ll&lt;br /&gt;
get an incomplete copy that you won&amp;#8217;t be able to use, so please wait&lt;br /&gt;
for us to give the all-clear before you sync.&lt;br /&gt;
This is actually the source code for version 4.0.1 of Android, which&lt;br /&gt;
is the specific version that will ship on the Galaxy Nexus, the first&lt;br /&gt;
Android 4.0 device. In the source tree, you will find a device build&lt;br /&gt;
target named &amp;#8220;full_maguro&amp;#8221; that you can use to build a system image&lt;br /&gt;
for Galaxy Nexus. Build configurations for other devices will come&lt;br /&gt;
later.&lt;br /&gt;
Unfortunately we still don&amp;#8217;t have our Gerrit code review servers back&lt;br /&gt;
online. That remains our top priority though, and we hope to have them&lt;br /&gt;
back soon.&lt;br /&gt;
This release includes the full history of the Android source code&lt;br /&gt;
tree, which naturally includes all the source code for the Honeycomb&lt;br /&gt;
releases. However, since Honeycomb was a little incomplete, we want&lt;br /&gt;
everyone to focus on Ice Cream Sandwich. So, we haven&amp;#8217;t created any&lt;br /&gt;
tags that correspond to the Honeycomb releases (even though the&lt;br /&gt;
changes are present in the history.)&lt;/p&gt;
&lt;p&gt;JBQ, on behalf of the AOSP team.&lt;br /&gt;
&amp;#8211;&lt;br /&gt;
Jean-Baptiste M. &amp;#8220;JBQ&amp;#8221; Queru&lt;br /&gt;
Software Engineer, Android Open-Source Project, Google.&lt;/p&gt;
&lt;p&gt;Questions sent directly to me that have no reason for being private&lt;br /&gt;
will likely get ignored or forwarded to a public forum with no further&lt;br /&gt;
warning.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583200/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/11/android-4-0-ice-cream-sandwich-release/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/11/android-4-0-ice-cream-sandwich-release/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>From: http://groups.google.com/group/android-building/browse_thread/thread/4f85d9242667a85f?pli=1 Hi! We just released a bit of code we thought this group might be interested in. Over at our Android Open-Source Project git servers, the source code for Android version 4.0 (Ice Cream Sandwich) is now available. Here&amp;#8217;s how to get it:Follow the instructions at http://source.android.com/source/downloading.html Check out the &amp;#8216;ics-release&amp;#8217; branch:repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583200/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/11/android-4-0-ice-cream-sandwich-release/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>android</category><category>OpenSource</category><category>4.0</category><category>opensource</category><category>Android</category><category>Google</category><category>ICS</category><category>icecreamsandwich</category><pubDate>Tue, 15 Nov 2011 09:47:15 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/11/android-4-0-ice-cream-sandwich-release/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=646</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/11/android-4-0-ice-cream-sandwich-release/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583200/5414143</fs:itemid></item><item><title>Kernel debug with kgtp on android</title><link>http://wifihack.net/blog/2011/11/kernel-debug-with-kgtp-on-android/</link><content:encoded>&lt;p&gt;KGTP is a realtime and lightweight Linux Kernel GDB debugger and tracer. It makes Linux Kernel supply a GDB remote debug interface. Then GDB in current machine or remote machine can debug and trace Linux through GDB tracepoint without stopping the Linux Kernel. And even if the board doesn’t have GDB on it and doesn’t have interface for remote debug. It can debug the Linux Kernel using offline debug. Now, it supports X86-32, X86-64, MIPS and ARM.&lt;/p&gt;
&lt;p&gt;This article describes how to use kgtp debug linux kernel on android.&lt;/p&gt;
&lt;h1&gt;Kernel Building&lt;/h1&gt;
&lt;pre&gt; General setup  ---&amp;gt;
     [ * ] Prompt for development and/or incomplete code/drivers
     [ * ] Kprobe
Kernel hacking  ---&amp;gt;
     [ * ] Compile the kernel with debug info
     [ * ] Compile the kernel with frame pointers&lt;/pre&gt;
&lt;h1&gt;Building KGTP&lt;/h1&gt;
&lt;h2&gt;Config KGTP Makefile&lt;/h2&gt;
&lt;pre&gt;KERNELDIR := /work/vc1000/src/kernel-vc1000-2.3
ARCH=arm
CROSS_COMPILE=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-&lt;/pre&gt;
&lt;h2&gt;error: ‘GTP_VAR_RDTSC_ID’ undeclared(latest version fixed By: &lt;a href=&quot;http://twitter.com/teawater&quot;&gt;teawater&lt;/a&gt; )&lt;/h2&gt;
&lt;pre&gt;  CC [M]  /home/border/work/kernel/kgtp/trunk/gtp.o
/home/border/work/kernel/kgtp/trunk/gtp.c: In function 'gtp_gdbrsp_qtv':
/home/border/work/kernel/kgtp/trunk/gtp.c:6318: error: 'GTP_VAR_RDTSC_ID' undeclared (first use in this function)
/home/border/work/kernel/kgtp/trunk/gtp.c:6318: error: (Each undeclared identifier is reported only once
/home/border/work/kernel/kgtp/trunk/gtp.c:6318: error: for each function it appears in.)
/home/border/work/kernel/kgtp/trunk/gtp.c:6320: error: implicit declaration of function 'rdtscll'&lt;/pre&gt;
&lt;p&gt;* solution:&lt;/p&gt;
&lt;pre&gt;diff --git a/trunk/gtp.c b/trunk/gtp.c
index 4d0c9a2..75c145e 100644
--- a/trunk/gtp.c
+++ b/trunk/gtp.c
@@ -6315,11 +6315,13 @@ gtp_gdbrsp_qtv(char *pkg)
                if (num == GTP_VAR_CLOCK_ID) {
                        val = (uint64_t)GTP_LOCAL_CLOCK;
                        goto output_value;
+#ifdef CONFIG_X86
                } else if (num == GTP_VAR_RDTSC_ID) {
                        unsigned long long a;
                        rdtscll(a);
                        val = (uint64_t)a;
                        goto output_value;
+#endif
                } else if (num == GTP_VAR_XTIME_SEC_ID
                           || num == GTP_VAR_XTIME_NSEC_ID) {
                        struct timespec time&lt;/pre&gt;
&lt;h1&gt;Complie and Install KGTP&lt;/h1&gt;
&lt;pre&gt;make
sudo su
adb push gtp.ko /system/vendor/lib
exit&lt;/pre&gt;
&lt;h1&gt;KGTP Running On Android&lt;/h1&gt;
&lt;pre&gt;#Open the KGTP interface in current machine.
su
cd /system/vendor/lib
insmod gtp.ko
lsmod
nc -l -p 1234 &amp;lt; /sys/kernel/debug/gtp &amp;gt; /sys/kernel/debug/gtp&lt;/pre&gt;
&lt;h1&gt;Host PC&lt;/h1&gt;
&lt;pre&gt;cd /work/vc1000/src/kernel-vc1000-2.3
make -j8&lt;/pre&gt;
&lt;h2&gt;Network connect to gtp&lt;/h2&gt;
&lt;pre&gt;# symbian use &quot;set gnutarget elf32-littlearm-symbian&quot;
# vxworks use &quot;set gnutarget elf32-littlearm-vxworks&quot;
gdb-release -ex &quot;set gnutarget elf32-littlearm&quot; -ex &quot;file ./vmlinux&quot;

# if you want see the debug info
(gdb) set debug remote 1

# connection your remote device
(gdb) target remote 192.168.2.213:1234&lt;/pre&gt;
&lt;h2&gt;USB connect to gtp&lt;/h2&gt;
&lt;pre&gt;sudo su
# forward socket(adb forward &amp;lt;local&amp;gt; &amp;lt;remote&amp;gt;)
adb forward tcp:1234 tcp:1234
exit
gdb-release -ex &quot;set gnutarget elf32-littlearm&quot; -ex &quot;file ./vmlinux&quot;
# connection your remote device
(gdb) target remote 127.0.0.1:1234&lt;/pre&gt;
&lt;h2&gt;Debugging with gtp&lt;/h2&gt;
&lt;pre&gt;(gdb) trace vfs_readdir
Tracepoint 1 at 0xc02289f0: file /build/buildd/linux-2.6.35/fs/readdir.c, line 23.
(gdb) actions
Enter actions for tracepoint 1, one per line.
End with a line saying just &quot;end&quot;.
&amp;gt;collect $reg
&amp;gt;end
(gdb) tstart&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Change To Android Device Shell And Run ls Command&lt;/strong&gt; * Android Device&lt;/p&gt;
&lt;pre&gt;$ ls&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Back To Host PC GDB Shell&lt;/strong&gt; * Host PC&lt;/p&gt;
&lt;pre&gt;(gdb) shell ls
vmlinux-2.6.35-30-generic
(gdb) tstop
(gdb) tfind
Found trace frame 0, tracepoint 1
#0  vfs_readdir (file=0x0, filler=0x163d8ae3, buf=0x18c0) at /build/buildd/linux-2.6.35/fs/readdir.c:23
23      {&lt;/pre&gt;
&lt;h1&gt;Good luck, Happy Hacking…&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Very grateful for &lt;a href=&quot;http://twitter.com/teawater&quot;&gt;teawater&lt;/a&gt;&lt;/h1&gt;
&lt;h1&gt;&lt;/h1&gt;
&lt;h1&gt;References&lt;/h1&gt;
&lt;p&gt;* &lt;a href=&quot;http://code.google.com/p/kgtp/&quot;&gt;kgtp Linux Kernel GDB Tracepoint module&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;* &lt;a href=&quot;http://code.google.com/p/kgtp/wiki/Quickstart&quot;&gt;kgtp Quick start&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;* &lt;a href=&quot;http://code.google.com/p/kgtp/wiki/HOWTO&quot;&gt;kgtp How to&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;* &lt;a href=&quot;http://code.google.com/p/kgtp/wiki/HowToUseKGTPinAndroid&quot;&gt;How To Use KGTP In Android&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;* &lt;a href=&quot;http://sourceware.org/gdb/onlinedocs/gdb/Tracepoints.html#Tracepoints&quot;&gt;GDB Tracepoints&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583201/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/11/kernel-debug-with-kgtp-on-android/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/11/kernel-debug-with-kgtp-on-android/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>KGTP is a realtime and lightweight Linux Kernel GDB debugger and tracer. It makes Linux Kernel supply a GDB remote debug interface. Then GDB in current machine or remote machine can debug and trace Linux through GDB tracepoint without stopping the Linux Kernel. And even if the board doesn’t have GDB on it and doesn’t [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583201/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/11/kernel-debug-with-kgtp-on-android/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>kgtp</category><category>android</category><category>Kernel</category><category>Android</category><category>gdb</category><category>tracepoints</category><category>Tech.Notes</category><pubDate>Tue, 01 Nov 2011 23:31:04 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/11/kernel-debug-with-kgtp-on-android/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=640</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/11/kernel-debug-with-kgtp-on-android/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583201/5414143</fs:itemid></item><item><title>AOSP source code back online</title><link>http://wifihack.net/blog/2011/10/aosp-source-code-back-online/</link><content:encoded>&lt;div&gt;Hi!&lt;/div&gt;
&lt;div&gt;As you know, like many other projects the Android Open-Source Project was affected by the recent &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt; downtime. So, we’re pleased to let you know that the Gingerbread source code is now available again, and AOSP git servers are back online.&lt;/div&gt;
&lt;div&gt;Even before the &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt; downtime, it was clear that AOSP was sometimes taxing &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt;’s git infrastructure. When we did the Gingerbread source release, for example, load due to AOSP made part of &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt; unusable for several days. This isn’t fair to &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt;’s staff or the community, so for some time we’ve been preparing our own git hosting on Google servers.&lt;/div&gt;
&lt;div&gt;We were finishing up just as &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt; experienced their downtime, so the Gingerbread source is now available on Google’s servers. Accordingly, the git URLs have changed.&lt;/div&gt;
&lt;div&gt;Here are the instructions to access the new git servers:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;You need to get the latest version of the repo tool:&lt;br /&gt;
curl &lt;a href=&quot;https://dl-ssl.google.com/dl/googlesource/git-repo/repo&quot; target=&quot;_blank&quot;&gt;https://dl-ssl.google.com/dl/&lt;wbr&gt;googlesource/git-repo/repo&lt;/wbr&gt;&lt;/a&gt; &amp;gt; ~/bin/repo&lt;/li&gt;
&lt;li&gt;You need to initialize a new repository:&lt;br /&gt;
repo init -u &lt;a href=&quot;https://android.googlesource.com/platform/manifest&quot; target=&quot;_blank&quot;&gt;https://android.googlesource.&lt;wbr&gt;com/platform/manifest&lt;/wbr&gt;&lt;/a&gt; -b android-2.3.7_r1&lt;/li&gt;
&lt;li&gt;The full instructions are at &lt;a href=&quot;http://source.android.com/source/downloading.html&quot; target=&quot;_blank&quot;&gt;http://source.android.com/&lt;wbr&gt;source/downloading.html&lt;/wbr&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;There are a few limitations to be aware of:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Our priority has been getting the main source code mirrors back online, so for the moment gitweb source browsing and Gerrit Code Review are still unavailable.&lt;/li&gt;
&lt;li&gt;We are now working on bringing AOSP’s Gerrit Code Review site back up, and hope to be able to say something here soon.&lt;/li&gt;
&lt;li&gt;It might be a little while longer before gitweb comes back, unfortunately, since Gerrit Code Review is the next priority.&lt;/li&gt;
&lt;li&gt;To reiterate, these servers contain only the ‘gingerbread’ and ‘master’ branches from the old AOSP servers. We plan to release the source for the recently-announced Ice Cream Sandwich soon, once it’s available on devices.&lt;/li&gt;
&lt;li&gt;As these new servers are, well, new, there may be hiccups if we encounter unexpected issues. However we’re keeping a close eye on them and will respond to any issues as quickly as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;Finally, we’d like to send a huge “thank-you” to the &lt;a href=&quot;http://kernel.org/&quot; target=&quot;_blank&quot;&gt;kernel.org&lt;/a&gt; community and Oregon State University Open-Source Lab staff. They’ve done an incredible job hosting the AOSP source code mirror and Gerrit Code Review for nearly 3 years. Without them, it’s safe to say that AOSP would not be where we are today.&lt;/div&gt;
&lt;div&gt;Thanks, and happy coding!&lt;/div&gt;
&lt;div&gt;- Dan&lt;/div&gt;
&lt;div&gt;From: &lt;a href=&quot;https://groups.google.com/forum/#!msg/android-building/IwlEJtE1LsI/WtHcsPkUPMcJ&quot;&gt;https://groups.google.com/forum/#!msg/android-building/IwlEJtE1LsI/WtHcsPkUPMcJ&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;#8211; EOF &amp;#8211;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583202/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/10/aosp-source-code-back-online/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/10/aosp-source-code-back-online/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>Hi! As you know, like many other projects the Android Open-Source Project was affected by the recent kernel.org downtime. So, we’re pleased to let you know that the Gingerbread source code is now available again, and AOSP git servers are back online. Even before the kernel.org downtime, it was clear that AOSP was sometimes taxing kernel.org’s git infrastructure. When we [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583202/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/10/aosp-source-code-back-online/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>android</category><category>OpenSource</category><category>opensource</category><category>Kernel</category><category>Android</category><category>Google</category><category>Git</category><pubDate>Fri, 21 Oct 2011 09:26:36 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/10/aosp-source-code-back-online/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=636</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/10/aosp-source-code-back-online/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583202/5414143</fs:itemid></item><item><title>Two Go Talks: “Lexical Scanning in Go” and “Cuddle: an App Engine Demo”</title><link>http://wifihack.net/blog/2011/09/two-go-talks-lexical-scanning-in-go-and-cuddle-an-app-engine-demo/</link><content:encoded>&lt;p&gt;Rob&amp;#8217;s talk, &amp;#8220;&lt;a href=&quot;http://www.youtube.com/watch?v=HxaD_trXwRE&quot;&gt;Lexical Scanning in Go&lt;/a&gt;&amp;#8220;, discusses the design of a particularly interesting and idiomatic piece of Go code, the lexer component of the new &lt;a href=&quot;http://golang.org/pkg/exp/template/&quot;&gt;template package.&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://v.youku.com/v_show/id_XMzAwODIzOTk2.html&quot;&gt;Lexical Scanning in Go &amp;#8211; Rob Pike&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;myvideotag&quot; style=&quot;width: 640px;&quot;&gt;&lt;embed src=&quot;http://player.youku.com/player.php/sid/XMzAwODIzOTk2/v.swf&quot; quality=&quot;high&quot; width=&quot;640&quot; height=&quot;390&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; wmode=&quot;transparent&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;The slides are &lt;a href=&quot;http://cuddle.googlecode.com/hg/talk/lex.html&quot;&gt;available here&lt;/a&gt;. The new template package is available as &lt;a href=&quot;http://golang.org/pkg/exp/template/&quot;&gt;exp/template&lt;/a&gt; in Go release r59. In a future release it will replace the old template package.&lt;/p&gt;
&lt;p&gt;Andrew&amp;#8217;s talk, &amp;#8220;&lt;a href=&quot;http://www.youtube.com/watch?v=HQtLRqqB-Kk&quot;&gt;Cuddle: an App Engine Demo&lt;/a&gt;&amp;#8220;, describes the construction of a simple real-time chat application that uses App Engine&amp;#8217;s &lt;a href=&quot;http://code.google.com/appengine/docs/go/datastore/overview.html&quot;&gt;Datastore&lt;/a&gt;, &lt;a href=&quot;http://code.google.com/appengine/docs/go/channel/overview.html&quot;&gt;Channel&lt;/a&gt;, and &lt;a href=&quot;http://code.google.com/appengine/docs/go/datastore/memcache.html&quot;&gt;Memcache&lt;/a&gt; APIs. It also includes a question and answer session that covers &lt;a href=&quot;http://code.google.com/appengine/docs/go/gettingstarted/&quot;&gt;Go for App Engine&lt;/a&gt; and Go more generally.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://v.youku.com/v_show/id_XMzAwNzYyMTgw.html&quot;&gt; Cuddle, A go AppEngine Demo &amp;#8211; Andrew Gerrand&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;myvideotag&quot; style=&quot;width: 640px;&quot;&gt;&lt;embed src=&quot;http://player.youku.com/player.php/sid/XMzAwNzYyMTgw/v.swf&quot; quality=&quot;high&quot; width=&quot;640&quot; height=&quot;390&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; wmode=&quot;transparent&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;The slides are &lt;a href=&quot;http://cuddle.googlecode.com/hg/talk/index.html&quot;&gt;available here&lt;/a&gt;. The code is available at the &lt;a href=&quot;http://code.google.com/p/cuddle/&quot;&gt;cuddle Google Code project&lt;/a&gt;.&lt;br /&gt;
From: &lt;a href=&quot;http://blog.golang.org/2011/09/two-go-talks-lexical-scanning-in-go-and.html&quot;&gt;http://blog.golang.org/2011/09/two-go-talks-lexical-scanning-in-go-and.html&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583203/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/09/two-go-talks-lexical-scanning-in-go-and-cuddle-an-app-engine-demo/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/09/two-go-talks-lexical-scanning-in-go-and-cuddle-an-app-engine-demo/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>Rob&amp;#8217;s talk, &amp;#8220;Lexical Scanning in Go&amp;#8220;, discusses the design of a particularly interesting and idiomatic piece of Go code, the lexer component of the new template package. Lexical Scanning in Go &amp;#8211; Rob Pike The slides are available here. The new template package is available as exp/template in Go release r59. In a future release it will replace the [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583203/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/09/two-go-talks-lexical-scanning-in-go-and-cuddle-an-app-engine-demo/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>andrew</category><category>rob</category><category>Google</category><category>gae</category><category>topic</category><category>appengine</category><category>talk</category><category>package</category><category>go</category><category>golang</category><category>template</category><category>cuddle</category><pubDate>Sat, 03 Sep 2011 10:55:52 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/09/two-go-talks-lexical-scanning-in-go-and-cuddle-an-app-engine-demo/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=628</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/09/two-go-talks-lexical-scanning-in-go-and-cuddle-an-app-engine-demo/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583203/5414143</fs:itemid></item><item><title>Android 2.3系统彩蛋(Zombie art by Jack Larson)相关代码</title><link>http://wifihack.net/blog/2011/08/android-2-3-zombie-art-by-jack-larson/</link><content:encoded>&lt;p&gt;&lt;a href=&quot;http://wifihack.net/blog/wp-content/uploads/2011/08/platlogo.jpg&quot;&gt;&lt;img class=&quot;alignleft size-medium wp-image-622&quot; title=&quot;platlogo&quot; src=&quot;http://wifihack.net/blog/wp-content/uploads/2011/08/platlogo-300x200.jpg&quot; alt=&quot;Zombie art by Jack Larson&quot; width=&quot;200&quot; height=&quot;100&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Android 2.3系统彩蛋(Zombie art by Jack Larson)相关代码:&lt;/p&gt;
&lt;p&gt;在&lt;a title=&quot;Android 2.3系统隐藏的彩蛋 你信不信？&quot; href=&quot;http://www.app43.com/thread-26852-1-1.html&quot; target=&quot;_blank&quot;&gt;网上&lt;/a&gt;看到Android2.3有个“Zombie art by Jack Larson”（Jack Larson 的僵尸艺术）的彩蛋, 没事的时候找了一下相关代码的实现.&lt;/p&gt;
&lt;p&gt;packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java onPreferenceTreeClick&lt;br /&gt;
点击Android version相关代码实现:&lt;/p&gt;
&lt;pre class=&quot;brush: java&quot;&gt;@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference.getKey().equals(&quot;firmware_version&quot;)) {
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
mHits[mHits.length-1] = SystemClock.uptimeMillis();
if (mHits[0] &amp;gt;= (SystemClock.uptimeMillis()-500)) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName(&quot;android&quot;,
com.android.internal.app.PlatLogoActivity.class.getName());
try {
startActivity(intent);
} catch (Exception e) {
}
}
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}&lt;/pre&gt;
&lt;p&gt;实现代码:&lt;/p&gt;
&lt;p&gt;frameworks/base/core/java/com/android/internal/app/PlatLogoActivity.java&lt;/p&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public class PlatLogoActivity extends Activity {
Toast mToast;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mToast = Toast.makeText(this, &quot;Zombie art by Jack Larson&quot;, Toast.LENGTH_SHORT);

ImageView content = new ImageView(this);
content.setImageResource(com.android.internal.R.drawable.platlogo);
content.setScaleType(ImageView.ScaleType.FIT_CENTER);

setContentView(content);
}

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_UP) {
mToast.show();
}
return super.dispatchTouchEvent(ev);
}
}&lt;/pre&gt;
&lt;p&gt;僵尸图片保存在这里:&lt;/p&gt;
&lt;p&gt;frameworks/base/core/res/res/drawable-nodpi/platlogo.jpg&lt;br /&gt;
&lt;a href=&quot;http://wifihack.net/blog/wp-content/uploads/2011/08/platlogo.jpg&quot;&gt;&lt;img class=&quot;alignleft size-medium wp-image-622&quot; title=&quot;platlogo&quot; src=&quot;http://wifihack.net/blog/wp-content/uploads/2011/08/platlogo-300x200.jpg&quot; alt=&quot;Zombie art by Jack Larson&quot;/&gt;&lt;/a&gt;&lt;br /&gt;
参考: &lt;a href=&quot;http://www.app43.com/thread-26852-1-1.html&quot; target=&quot;_blank&quot;&gt;Android 2.3系统隐藏的彩蛋 你信不信？&lt;/a&gt;  &lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/592583204/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/08/android-2-3-zombie-art-by-jack-larson/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://wifihack.net/blog/2011/08/android-2-3-zombie-art-by-jack-larson/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>Android 2.3系统彩蛋(Zombie art by Jack Larson)相关代码: 在网上看到Android2.3有个“Zombie art by Jack Larson”（Jack Larson 的僵尸艺术）的彩蛋, 没事的时候找了一下相关代码的实现. packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java onPreferenceTreeClick 点击Android version相关代码实现: @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (preference.getKey().equals(&quot;firmware_version&quot;)) { System.arraycopy(mHits, 1, mHits, 0, mHits.length-1); mHits[mHits.length-1] = SystemClock.uptimeMillis(); if (mHits[0] &amp;#62;= (SystemClock.uptimeMillis()-500)) { Intent intent = new Intent(Intent.ACTION_MAIN); intent.setClassName(&quot;android&quot;, com.android.internal.app.PlatLogoActivity.class.getName()); try { startActivity(intent); } catch (Exception [...]&lt;img src=&quot;http://www1.feedsky.com/t1/592583204/wifihack/feedsky/s.gif?r=http://wifihack.net/blog/2011/08/android-2-3-zombie-art-by-jack-larson/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>android</category><category>Android</category><category>彩蛋</category><category>zombiz</category><pubDate>Wed, 24 Aug 2011 15:08:57 +0800</pubDate><author>BianJiang</author><comments>http://wifihack.net/blog/2011/08/android-2-3-zombie-art-by-jack-larson/#comments</comments><guid isPermaLink="false">http://wifihack.net/blog/?p=621</guid><dc:creator>BianJiang</dc:creator><fs:srclink>http://wifihack.net/blog/2011/08/android-2-3-zombie-art-by-jack-larson/</fs:srclink><fs:srcfeed>http://wifihack.net/blog/feed/</fs:srcfeed><fs:itemid>feedsky/wifihack/~7304664/592583204/5414143</fs:itemid></item></channel></rss>
