﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-井泉-随笔分类-杂</title><link>http://www.cppblog.com/zjj2816/category/2119.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 01 Nov 2008 07:31:20 GMT</lastBuildDate><pubDate>Sat, 01 Nov 2008 07:31:20 GMT</pubDate><ttl>60</ttl><item><title>直接运行内存中的程序 转</title><link>http://www.cppblog.com/zjj2816/archive/2008/10/31/65623.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Fri, 31 Oct 2008 07:18:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2008/10/31/65623.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/65623.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2008/10/31/65623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/65623.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/65623.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Windows的PE加载器在启动程序的时候，会将磁盘上的文件加载到内存，然后做很多操作，如函数导入表重定位，变量预处理之类的。这位仁兄等于是自己写了一个PE加载器。直接将内存中的程序启动。记得以前的&#8220;红色代码&#8221;病毒也有相同的特性。&nbsp;&nbsp;&nbsp; 直接启动内存中的程序相当于加了一个壳，可以把程序加密保存，运行时解密到内存，然后启动，不过对于增加破解难度还...&nbsp;&nbsp;<a href='http://www.cppblog.com/zjj2816/archive/2008/10/31/65623.html'>阅读全文</a><img src ="http://www.cppblog.com/zjj2816/aggbug/65623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2008-10-31 15:18 <a href="http://www.cppblog.com/zjj2816/archive/2008/10/31/65623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>.NET Compact Framework 2.0下调用EnumWindows(Callback方式) 转</title><link>http://www.cppblog.com/zjj2816/archive/2008/10/24/64945.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Fri, 24 Oct 2008 08:40:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2008/10/24/64945.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/64945.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2008/10/24/64945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/64945.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/64945.html</trackback:ping><description><![CDATA[ 发过一篇文章是.net cf 1.x实现EnumWindows，因为.net cf
1.x不支持Callback方式，所以实现起来比较繁琐，而且效率不高。.net cf
2.0中就不同了，已经加入了的对Callback的支持了，所以我们就可以调用EnumWindows这个API函数来遍历所有的窗口了，下面是我写的
一个Demo：<br>using System;<br>using System.Collections.Generic;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Text;<br>using System.Windows.Forms;<br>using System.Runtime.InteropServices;
<p>namespace EnumWindows<br>{<br>&nbsp;&nbsp;&nbsp; public partial class Form1 : Form<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public delegate int EnumWindowsProc(IntPtr hwnd, IntPtr lParam);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EnumWindowsProc callbackDelegate;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IntPtr callbackDelegatePointer;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [DllImport("coredll.dll", SetLastError = true)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static extern bool EnumWindows(IntPtr lpEnumFunc, uint lParam);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [DllImport("coredll.dll", SetLastError = true, CharSet = CharSet.Auto)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static extern int GetWindowTextLength(IntPtr hWnd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [DllImport("coredll.dll")]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static extern int GetWindowText(IntPtr hWnd, [Out] StringBuilder lpString, int nMaxCount);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Form1()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callbackDelegate = new EnumWindowsProc(EnumWindowsCallbackProc);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; callbackDelegatePointer = Marshal.GetFunctionPointerForDelegate(callbackDelegate);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EnumWindows(callbackDelegatePointer, 0);</p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int EnumWindowsCallbackProc(IntPtr hwnd, IntPtr lParam)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int length = GetWindowTextLength(hwnd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuilder sb = new StringBuilder(length + 1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetWindowText(hwnd, sb, sb.Capacity);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Diagnostics.Debug.WriteLine("Window: " + hwnd.ToString() + "," + sb.ToString());</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }</p>
<p>}<br>vs.net 2005 下调试通过！</p><img src ="http://www.cppblog.com/zjj2816/aggbug/64945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2008-10-24 16:40 <a href="http://www.cppblog.com/zjj2816/archive/2008/10/24/64945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>7个网络爱好者必装的Firefox插件 转</title><link>http://www.cppblog.com/zjj2816/archive/2008/10/23/64815.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Thu, 23 Oct 2008 07:27:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2008/10/23/64815.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/64815.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2008/10/23/64815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/64815.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/64815.html</trackback:ping><description><![CDATA[<div class="text">
<p> 以下插件均适用于Firefox 3.0 。
</p>
<p> 1. Add N Edit Cookies 查看和修改本地的Cookie，Cookie欺骗必备。    <br> 下载：<a  href="http://code.google.com/p/editcookie/downloads/list" title="http://code.google.com/p/editcookie/downloads/list">http://code.google.com/p/editcookie/downloads/list</a> </p>
<p> 2. User Agent Switcher 修改浏览器的User Agent，可以用来XSS。    <br> 下载：<a  href="https://addons.mozilla.org/zh-CN/firefox/addon/59" title="https://addons.mozilla.org/zh-CN/firefox/addon/59">https://addons.mozilla.org/zh-CN/firefox/addon/59</a> </p>
<p> 3. RefControl&nbsp; 修改Referer引用，也可以用来XSS或者突破一些防盗链。关于Referer XSS的可以参考<a  href="http://blog.119797.com/post/yahoo-xss-referer.aspx" rel="blog" target="_blank" title="利用雅虎站长工具跨站给管理员挂马">利用雅虎站长工具跨站给管理员挂马</a>。     <br> 下载：<a  href="https://addons.mozilla.org/zh-CN/firefox/addon/953" title="https://addons.mozilla.org/zh-CN/firefox/addon/953">https://addons.mozilla.org/zh-CN/firefox/addon/953</a> </p>
<p> 4.Live HTTP Headers&nbsp; 记录本地的Get和Post数据，并可修改数据后重新提交。    <br> 下载：<a  href="https://addons.mozilla.org/zh-CN/firefox/addon/3829" title="https://addons.mozilla.org/zh-CN/firefox/addon/3829">https://addons.mozilla.org/zh-CN/firefox/addon/3829</a> </p>
<p> 5.&nbsp; Poster&nbsp;&nbsp; 用来Post和Get数据。    <br> 下载：<a  href="https://addons.mozilla.org/fr/firefox/addon/2691" title="https://addons.mozilla.org/fr/firefox/addon/2691">https://addons.mozilla.org/fr/firefox/addon/2691</a> </p>
<p> 6. HackBar&nbsp; 小工具包，包含一些常用的工具。(SQL injection,XSS,加密等)    <br> 下载：<a  href="http://devels-playground.blogspot.com/2008/07/new-hackbar-132.html" title="http://devels-playground.blogspot.com/2008/07/new-hackbar-132.html">http://devels-playground.blogspot.com/2008/07/new-hackbar-132.html</a> </p>
<p> 7. XSS-Me &amp;SQL Inject-Me&amp;Access-Me 分别用来检测XSS，SQL Inject和Access缺陷。    <br> 下载：<a  href="http://securitycompass.com/exploitme.shtml" title="http://securitycompass.com/exploitme.shtml">http://securitycompass.com/exploitme.shtml</a> </p>
<p> 同时推荐下<a  href="http://blog.istef.info/2008/07/08/my-firefox3-addons/trackback/">花儿开了用的Firefox插件。</a>如果有更好的插件，请<a  href="http://blog.119797.com/post/7-firefox-add-on-for-hacker.aspx#comment" rel="benben" target="_blank" title="benben's 留言">留言</a>告诉我，谢谢。
</p>
</div><img src ="http://www.cppblog.com/zjj2816/aggbug/64815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2008-10-23 15:27 <a href="http://www.cppblog.com/zjj2816/archive/2008/10/23/64815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>三款工具助您将 Firefox 浏览器变为武器 转</title><link>http://www.cppblog.com/zjj2816/archive/2008/10/23/64814.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Thu, 23 Oct 2008 07:24:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2008/10/23/64814.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/64814.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2008/10/23/64814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/64814.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/64814.html</trackback:ping><description><![CDATA[<span id="zoom" class="a14c">
<p style="text-indent: 2em;">不知屏幕前的你用的是什么浏览
器？由于目前针对Internet
Explorer的恶意代码太多，笔者现在常用Firefox搜索东西。喜欢这种开源软件的理由很简单：安全并且拥有很多令人爱不释手的扩展插件，借助于
这些好东东我们可以放心地浏览网络、接收电子邮件。如今，为Firefox开发的扩展插件越来越多。下面就具体看看可以让我们将Firefox变为一个强
大武器的三大工具。不过，话又说回来，这些扩展程序并非专用于增强Firefox的安全性，但通过它使用起来却更加方便。
</p>
<p style="text-indent: 2em;"><strong>数据修改大师Tamper Data</strong>
</p>
<p style="text-indent: 2em;">如果你只能为自己的浏览安装一个安全卫士，则非&#8220;Tamper
Data&#8221;莫属。过去，笔者用Paros Proxy 和 Burp
Suite来阻止浏览器和Web服务器之间的请求信息和响应。现在这些任务可以借助于Firefox和Tamper
Data实现，而无需对代理进行配置。易用就好嘛。
</p>
<p style="text-indent: 2em;">现在用浏览器上网冲浪离不开cookie,它是由 Web
页服务器置于你硬盘上的一个非常小的文本文件。或许可以这样讲它是你的身份证。虽然它只能由提供它的服务器来读取，不过它会泄露你的信息。如果你想访问的
网站需要一个唯一的cookie，或者说用户代理，那么笔者建议你在将cookie发送到Web服务器之前，先用Tamper
Data截获其请求。然后，对其属性进行增加、修改等操作，然后再发送。我们甚至也可以在浏览器解释来自Web服务器的响应之前，对这种响应加以修改。我
们觉得安全的则留，不安全的则弃之。岂不妙哉！总之，这是一款对Web应用程序的安全感兴趣的众多网友的好工具。
</p>
<p style="text-indent: 2em;">下面给出Tamper Data的日志窗口：（图1）
</p>
<center><img  src="http://security.ccidnet.com/col/attachment/2007/11/1274003.jpg" style="border: 1px solid black;"></center>
<center>图　1</center>
<p style="text-indent: 2em;">Tamper Data的修改窗口：（图2）
</p>
<center><img  src="http://security.ccidnet.com/col/attachment/2007/11/1274005.jpg" style="border: 1px solid black;"></center>
<center>图　2</center>
<p style="text-indent: 2em;"><strong>安全高于一切：Paros和 Burp</strong>
</p>
<p style="text-indent: 2em;"><strong>1.Paros</strong>
</p>
<p style="text-indent: 2em;">正如其开发团队所言，Paros这个程序是为那些需要评估其Web应用程序的安全性而设计的。它用Java语言编写，并完全免费。通过Paros的代理特性，服务器和客户端的所有的HTTP和HTTPS数据，包括cookies和表单字段，都可以被截获和修改。
</p>
<p style="text-indent: 2em;">其功能当然是不错了。如捕捉功能，即可以手动捕捉和修改HTTP（和HTTPS）的
请求和响应；过滤器功能，即对HTTP消息模式进行检测并发出警告，帮助用户处理；扫描功能，即可以扫描一些常见的漏洞；日志功能，即允许用户查看并检查
所有的HTTP请求/响应内容。等等。如下图3
</p>
<center><img  src="http://security.ccidnet.com/col/attachment/2007/11/1274009.jpg" style="border: 1px solid black;"></center>
<center>图　3</center>
<p style="text-indent: 2em;"><strong>2.Burp套件</strong>
</p>
<p style="text-indent: 2em;">其实，Burp套件是一个用于攻击Web应用程序的集成性的平台。它包含很多工具，
如代理服务器、圈套程序、入侵程序、转发程序等，拥有许多接口，可以促进、加强攻击Web应用程序的进程。所有的插件共享Burp的健壮框架，可以处理
HTTP请求、认证、下游代理（downstream proxies）、日志、警告、可扩展性要求等。
</p>
<p style="text-indent: 2em;">Burp套件允许一个攻击者将手动的和自动的技术结合起来，列举、分析、攻击并查找web应用程序的漏洞。多种Burp工具有效地结合起来，可以共享信息，并且允许用一种工具找到的漏洞来形成用另外一种工具攻击的根据。
</p>
<p style="text-indent: 2em;">●<strong>其关键特性有：</strong>
</p>
<p style="text-indent: 2em;">(1)能够被动地以一种非入侵方式&#8220;圈住&#8221;一个应用程序，并可使所有的请求都起源于用户的浏览器。
</p>
<p style="text-indent: 2em;">(2)一次单击就可以在插件之间传送数据请求。
</p>
<p style="text-indent: 2em;">(3)通过IburpExtender接口进行扩展，这也就容许了第三方的代码扩展Burp套件的功能。由一个插件处理的数据可以用任意的方式来影响另外一个插件的行为和结果。
</p>
<p style="text-indent: 2em;">(4)可以为下游代理、Web、代理认证和日志集中配置。
</p>
<p style="text-indent: 2em;">●Burp套件的下载地址为：http://portswigger.net/suite/
</p>
<p style="text-indent: 2em;">如果你对这些工具感兴趣，不妨下载试试。一定会为你带来惊喜的。
</p>
</span><img src ="http://www.cppblog.com/zjj2816/aggbug/64814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2008-10-23 15:24 <a href="http://www.cppblog.com/zjj2816/archive/2008/10/23/64814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近关注</title><link>http://www.cppblog.com/zjj2816/archive/2008/01/03/40331.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Thu, 03 Jan 2008 07:54:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2008/01/03/40331.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/40331.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2008/01/03/40331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/40331.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/40331.html</trackback:ping><description><![CDATA[函数式编程 haskell&nbsp; F#<br>自动化测试管理 tcl/expect&nbsp; tcl/tk&nbsp;&nbsp; tcl 工具命令语言<br>嵌入式脚本
lua语言<br>Google Hacking 的实现以及应用<img src ="http://www.cppblog.com/zjj2816/aggbug/40331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2008-01-03 15:54 <a href="http://www.cppblog.com/zjj2816/archive/2008/01/03/40331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows 命令大全</title><link>http://www.cppblog.com/zjj2816/archive/2008/01/03/40323.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Thu, 03 Jan 2008 07:21:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2008/01/03/40323.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/40323.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2008/01/03/40323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/40323.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/40323.html</trackback:ping><description><![CDATA[&nbsp;winver---------检查windows版本 <br>wmimgmt.msc----打开windows管理体系结构(wmi) <br>wupdmgr--------windows更新程序 <br>wscript--------windows脚本宿主设置 <br>write----------写字板 <br>winmsd---------系统信息 <br>wiaacmgr-------扫描仪和照相机向导 <br>winchat--------xp自带局域网聊天 <br>mem.exe--------显示内存使用情况 <br>msconfig.exe---系统配置实用程序 <br>mplayer2-------简易widnows media player <br>mspaint--------画图板 <br>mstsc----------远程桌面连接 <br>mplayer2-------媒体播放机 <br>magnify--------放大镜实用程序 <br>mmc------------打开控制台 <br>mobsync--------同步命令
<p>--------------------------------------------------------------------------------</p>
<p>dxdiag---------检查directx信息 <br>drwtsn32------ 系统医生 <br>devmgmt.msc--- 设备管理器 <br>dfrg.msc-------磁盘碎片整理程序 <br>diskmgmt.msc---磁盘管理实用程序 <br>dcomcnfg-------打开系统组件服务 <br>ddeshare-------打开dde共享设置 <br>dvdplay--------dvd播放器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>net stop messenger-----停止信使服务 <br>net start messenger----开始信使服务 <br>notepad--------打开记事本 <br>nslookup-------网络管理的工具向导 <br>ntbackup-------系统备份和还原 <br>narrator-------屏幕&#8220;讲述人&#8221; <br>ntmsmgr.msc----移动存储管理器 <br>ntmsoprq.msc---移动存储管理员操作请求 <br>netstat -an----(tc)命令检查接口 </p>
<p>--------------------------------------------------------------------------------</p>
<p>syncapp--------创建一个公文包 <br>sysedit--------系统配置编辑器 <br>sigverif-------文件签名验证程序 <br>sndrec32-------录音机 <br>shrpubw--------创建共享文件夹 <br>secpol.msc-----本地安全策略 <br>syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码 <br>services.msc---本地服务设置 <br>sndvol32-------音量控制程序 <br>sfc.exe--------系统文件检查器 <br>sfc /scannow---windows文件保护 </p>
<p>--------------------------------------------------------------------------------</p>
<p>tsshutdn-------60秒倒计时关机命令 <br>tourstart------xp简介（安装完成后出现的漫游xp程序） <br>taskmgr--------任务管理器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>eventvwr-------事件查看器 <br>eudcedit-------造字程序 <br>explorer-------打开资源管理器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>packager-------对象包装程序 <br>perfmon.msc----计算机性能监测程序 <br>progman--------程序管理器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>regedit.exe----注册表 <br>rsop.msc-------组策略结果集 <br>regedt32-------注册表编辑器 <br>rononce -p ----15秒关机 <br>regsvr32 /u *.dll----停止dll文件运行 <br>regsvr32 /u zipfldr.dll------取消zip支持</p>
<p>--------------------------------------------------------------------------------</p>
<p>cmd.exe--------cmd命令提示符 <br>chkdsk.exe-----chkdsk磁盘检查 <br>certmgr.msc----证书管理实用程序 <br>calc-----------启动计算器 <br>charmap--------启动字符映射表 <br>cliconfg-------sql server 客户端网络实用程序 <br>clipbrd--------剪贴板查看器 <br>conf-----------启动netmeeting <br>compmgmt.msc---计算机管理 <br>cleanmgr-------垃圾整理 <br>ciadv.msc------索引服务程序 </p>
<p>--------------------------------------------------------------------------------</p>
<p>osk------------打开屏幕键盘 <br>odbcad32-------odbc数据源管理器 <br>oobe/msoobe /a----检查xp是否激活 <br>lusrmgr.msc----本机用户和组 <br>logoff---------注销命令 </p>
<p>--------------------------------------------------------------------------------</p>
<p>iexpress-------木马捆绑工具，系统自带 </p>
<p>--------------------------------------------------------------------------------</p>
<p>nslookup-------ip地址侦测器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>fsmgmt.msc-----共享文件夹管理器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>utilman--------辅助工具管理器 </p>
<p>--------------------------------------------------------------------------------</p>
<p>gpedit.msc-----组策略<br></p>
<img src ="http://www.cppblog.com/zjj2816/aggbug/40323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2008-01-03 15:21 <a href="http://www.cppblog.com/zjj2816/archive/2008/01/03/40323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>udp 小用</title><link>http://www.cppblog.com/zjj2816/archive/2007/11/28/37427.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Wed, 28 Nov 2007 05:46:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2007/11/28/37427.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/37427.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2007/11/28/37427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/37427.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/37427.html</trackback:ping><description><![CDATA[<span style="color: red;">client:<br><span style="color: #1e0000;">#include "Winsock2.h"</span><br style="color: #1e0000;"><span style="color: #1e0000;">#include "stdafx.h"</span><br style="color: #1e0000;"><span style="color: #1e0000;">#pragma comment(lib,"Ws2.lib")</span><br style="color: #1e0000;"><span style="color: #1e0000;">// TODO: 在 STDAFX.H 中</span><br style="color: #1e0000;"><span style="color: #1e0000;">// 引用任何所需的附加头文件，而不是在此文件中引用</span><br style="color: #1e0000;"><span style="color: #1e0000;">void SOCKETRACE(char *buf,int len)</span><br style="color: #1e0000;"><span style="color: #1e0000;">{</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; WSADATA wsadata;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; WSAStartup(MAKEWORD(2,0),&amp;wsadata);</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; struct sockaddr_in ipaddr;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; ipaddr.sin_family=AF_INET;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; ipaddr.sin_port=htons(11000);</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; ipaddr.sin_addr.s_addr=inet_addr("169.254.2.2");</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; int&nbsp; sk=socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; int c=connect(sk,(sockaddr*)&amp;ipaddr,sizeof(ipaddr));</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; send(sk,buf,len,0);</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; closesocket(sk);</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; WSACleanup();</span><br style="color: #1e0000;"><span style="color: #1e0000;">}</span><br style="color: #1e0000;"><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">void OEMTRACEW(BOOL cond, LPCWSTR fmt, ...)</span><br style="color: #1e0000;"><span style="color: #1e0000;">{</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; if(cond)</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; {</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int n, size = 100;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; wchar_t* p ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; va_list ap ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p = (wchar_t*)malloc(size * sizeof(wchar_t)) ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while( 1 )</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Try to print in the allocated space. */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; va_start( ap, fmt ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n = _vsnwprintf( p, size, fmt, ap ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; va_end( ap ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* If that worked, return the string. */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( n &gt; -1 &amp;&amp; n &lt; size )</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Else try again with more space. */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( n &gt; -1 )&nbsp;&nbsp; /* C99 conform vsnprintf() */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; size = n+1 ; /* precisely what is needed */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* glibc 2.0 */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; size *= 2 ;&nbsp; /* twice the old size */</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p = (wchar_t*)realloc( p, size * sizeof(wchar_t) ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; char nstring[200]={0};</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; wcstombs( nstring,p,200);</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; free( p ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SOCKETRACE(nstring,strlen(nstring));</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; }</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">}</span><br style="color: #1e0000;"><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">void OEMTRACE(BOOL cond, const char * fmt, ...)</span><br style="color: #1e0000;"><span style="color: #1e0000;">{</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; if(cond)</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; {</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int n, size = 100;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; char* p ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; va_list ap ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p = (char*)malloc(size) ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while( 1 )</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Try to print in the allocated space. */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; va_start( ap, fmt ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n = _vsnprintf( p, size, fmt, ap ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; va_end( ap ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* If that worked, return the string. */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( n &gt; -1 &amp;&amp; n &lt; size )</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Else try again with more space. */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( n &gt; -1 )&nbsp;&nbsp; /* C99 conform vsnprintf() */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; size = n+1 ; /* precisely what is needed */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* glibc 2.0 */</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; size *= 2 ;&nbsp; /* twice the old size */</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p = (char*)realloc( p, size ) ;</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SOCKETRACE(p,strlen(p));</span><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; free( p ) ;</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">&nbsp;&nbsp;&nbsp; }</span><br style="color: #1e0000;"><br style="color: #1e0000;"><span style="color: #1e0000;">}<br><span style="color: red;">client c#:</span><br>udpClient = new UdpClient();<br>Byte[] bytes = Encoding.Unicode.GetBytes("aa");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udpClient.Send(bytes, bytes.Length,new IPEndPoint(IPAddress.Parse("169.254.2.2"), 11000));<br><span style="color: #f40000;">udpserver c#:</span><br>using System;<br>using System.Collections.Generic;<br>using System.Text;<br>using System.Net.Sockets;<br>using System.Net;<br><br>namespace ScocketRec<br>{<br>&nbsp;&nbsp;&nbsp; class Program<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Main(string[] args)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UdpClient udpClient = new UdpClient(new IPEndPoint(IPAddress.Parse("169.254.2.2"), 11000));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //IPEndPoint object will allow us to read datagrams sent from any source.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse("169.254.2.1"), 11000);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(true)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Blocks until a message returns on this socket from a remote host.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string returnData = Encoding.ASCII.GetString(receiveBytes);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Uses the IPEndPoint object to determine which of these two hosts responded.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("This is the message you received " +<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; returnData.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("This message was sent from " +<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RemoteIpEndPoint.Address.ToString() +<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " on their port number " +<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RemoteIpEndPoint.Port.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udpClient.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(e.ToString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br style="color: #1e0000;"></span><br style="color: #1e0000;"></span><br style="color: #1e0000;"><br> <img src ="http://www.cppblog.com/zjj2816/aggbug/37427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2007-11-28 13:46 <a href="http://www.cppblog.com/zjj2816/archive/2007/11/28/37427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows CE跨进程内存注入</title><link>http://www.cppblog.com/zjj2816/archive/2007/11/20/36997.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Tue, 20 Nov 2007 03:25:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2007/11/20/36997.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/36997.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2007/11/20/36997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/36997.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/36997.html</trackback:ping><description><![CDATA[http://www.uml.org.cn/embeded/200610255.htm<br><br>setwindowlong<br><br>MapPtrToProcess<br><br>PerformCallBack4<br><br><br><br><img src ="http://www.cppblog.com/zjj2816/aggbug/36997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2007-11-20 11:25 <a href="http://www.cppblog.com/zjj2816/archive/2007/11/20/36997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个windows 快捷键 </title><link>http://www.cppblog.com/zjj2816/archive/2006/07/05/9421.html</link><dc:creator>井泉</dc:creator><author>井泉</author><pubDate>Wed, 05 Jul 2006 02:35:00 GMT</pubDate><guid>http://www.cppblog.com/zjj2816/archive/2006/07/05/9421.html</guid><wfw:comment>http://www.cppblog.com/zjj2816/comments/9421.html</wfw:comment><comments>http://www.cppblog.com/zjj2816/archive/2006/07/05/9421.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zjj2816/comments/commentRss/9421.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zjj2816/services/trackbacks/9421.html</trackback:ping><description><![CDATA[
		<p>Posted on 2006-06-24 16:55 Gin 阅读(125) 评论(0)  编辑 收藏 <br />摘自网上的，呵，这几个是自己比较少用到的</p>
		<p>F2　　　　　　　　　　　    当你选中一个文件的话，这意味着“重命名”<br />ALT+ ENTER或 ALT+双击      查看项目的属性<br />F10或ALT                                   激活当前程序的菜单栏<br />CTRL+ ESC                                显示“开始”菜单 <br />ALT+空格键                               显示当前窗口的系统菜单 <br />CTRL+F5　　　　　　　　      强行刷新 <br />ALT+RIGHT ARROW　　　　 显示前一页（前进键） <br />ALT+LEFT ARROW　　　　　显示后一页（后退键） <br />ALT+ESC　　　　　　　　 切换当前程序 <br />CTRL+N　　　　　　　　　新建一个新的文件 <br />CTRL+O　　　　　　　　　打开“打开文件”对话框 <br />CTRL+P　　　　　　　　　打开“打印”对话框</p>
		<p>SHIFT+F10                            显示某个链接的快捷菜单 <br />CTRL+W                               关闭当前窗口 <br />ALT+D                                  选择地址栏中的文字 <br />CTRL+ENTER                     在地址栏中将"www."添加到键入的文本的前面，将".com"添加到文本的后面 <br />CTRL+D                                将当前Web 页添加到收藏夹中 <br />CTRL+B                               打开"整理收藏夹"对话框 <br />CTRL+I                               在浏览栏中打开收藏夹 <br />ALT+ENTER <br />将 Windows 下运行的命令行窗口在窗口和全屏幕状态间切换；查看选定的文件的属性；选定任务栏时打开"任务栏和开始菜单"属性 <br />Alt+空格→X                       最大化当前窗口<br />Alt+空格→N                       最小化当前窗口</p>
<img src ="http://www.cppblog.com/zjj2816/aggbug/9421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zjj2816/" target="_blank">井泉</a> 2006-07-05 10:35 <a href="http://www.cppblog.com/zjj2816/archive/2006/07/05/9421.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>