<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[Slow.More¡ÌBLOG]]></title>
	  <link>http://520yl.blog.163.com</link>
	  <description><![CDATA[Fast? ]]></description>
	  <language>zh-CN</language>
	  <pubDate>Thu, 3 Jul 2008 18:48:15 +0800</pubDate>
	  <lastBuildDate>Thu, 3 Jul 2008 18:48:15 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[520yl]]></managingEditor>
	  <webMaster><![CDATA[gk]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[Slow.More¡ÌBLOG]]></title>
	  	<url>http://520yl.blog.163.com/style/common/user_default.gif</url>
	  	<link>http://520yl.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[ASCIIÂë¶ÔÕÕ±í]]></title>	
    <link>http://520yl.blog.163.com/blog/static/46914420085249033908</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">¡¡ 
<TABLE borderColor=#000000 cellSpacing=0 cellPadding=5 width=468 border=1>
<TBODY>
<TR>
<TD colSpan=8>ASCII, American Standard Code for Information Interchange ÄîÆðÀ´ÏñÊÇ "°¢Ë¹key"£¬¶¨Òå´Ó 0 µ½ 127 µÄÒ»°Ù¶þÊ®°Ë¸öÊý×ÖËù´ú±íµÄÓ¢ÎÄ×ÖÄ¸»òÒ»ÑùµÄ½á¹ûÓëÒâÒå¡£ÓÉÓÚÖ»Ê¹ÓÃ7¸öÎ»Ôª(bit)¾Í¿ÉÒÔ±íÊ¾´Ó0µ½127µÄÊý×Ö£¬´ó²¿·ÖµÄµçÄÔ¶¼Ê¹ÓÃ8¸öÎ»ÔªÀ´´æÈ¡×ÖÔª¼¯(character set)£¬ËùÒÔ´Ó128µ½255Ö®¼äµÄÊý×Ö¿ÉÒÔÓÃÀ´´ú±íÁíÒ»×éÒ»°Ù¶þÊ®°Ë¸ö·ûºÅ£¬³ÆÎª extended ASCII¡£</TD></TR>
<TR align=middle>
<TD>ASCIIÂë</TD>
<TD>¼üÅÌ</TD>
<TD>ASCII Âë </TD>
<TD>¼üÅÌ</TD>
<TD>ASCIIÂë</TD>
<TD>¼üÅÌ</TD>
<TD>ASCII Âë </TD>
<TD>¼üÅÌ</TD></TR>
<TR align=middle>
<TD>27</TD>
<TD>ESC</TD>
<TD>32</TD>
<TD>SPACE</TD>
<TD>33</TD>
<TD>!</TD>
<TD>34</TD>
<TD>"</TD></TR>
<TR align=middle>
<TD>35</TD>
<TD>#</TD>
<TD>36</TD>
<TD>$</TD>
<TD>37</TD>
<TD>%</TD>
<TD>38</TD>
<TD>&amp;</TD></TR>
<TR align=middle>
<TD>39</TD>
<TD>'</TD>
<TD>40</TD>
<TD>(</TD>
<TD>41</TD>
<TD>)</TD>
<TD>42</TD>
<TD>*</TD></TR>
<TR align=middle>
<TD>43</TD>
<TD>+</TD>
<TD>44</TD>
<TD>'</TD>
<TD>45</TD>
<TD>-</TD>
<TD>46</TD>
<TD>.</TD></TR>
<TR align=middle>
<TD>47</TD>
<TD>/</TD>
<TD>48</TD>
<TD>0</TD>
<TD>49</TD>
<TD>1</TD>
<TD>50</TD>
<TD>2</TD></TR>
<TR align=middle>
<TD>51</TD>
<TD>3</TD>
<TD>52</TD>
<TD>4</TD>
<TD>53</TD>
<TD>5</TD>
<TD>54</TD>
<TD>6</TD></TR>
<TR align=middle>
<TD>55</TD>
<TD>7</TD>
<TD>56</TD>
<TD>8</TD>
<TD>57</TD>
<TD>9</TD>
<TD>58</TD>
<TD>:</TD></TR>
<TR align=middle>
<TD>59</TD>
<TD>;</TD>
<TD>60</TD>
<TD>&lt;</TD>
<TD>61</TD>
<TD>=</TD>
<TD>62</TD>
<TD>&gt;</TD></TR>
<TR align=middle>
<TD>63</TD>
<TD>?</TD>
<TD>64</TD>
<TD>@</TD>
<TD>65</TD>
<TD>A</TD>
<TD>66</TD>
<TD>B</TD></TR>
<TR align=middle>
<TD>67</TD>
<TD>C</TD>
<TD>68</TD>
<TD>D</TD>
<TD>69</TD>
<TD>E</TD>
<TD>70</TD>
<TD>F</TD></TR>
<TR align=middle>
<TD>71</TD>
<TD>G</TD>
<TD>72</TD>
<TD>H</TD>
<TD>73</TD>
<TD>I</TD>
<TD>74</TD>
<TD>J</TD></TR>
<TR align=middle>
<TD>75</TD>
<TD>K</TD>
<TD>76</TD>
<TD>L</TD>
<TD>77</TD>
<TD>M</TD>
<TD>78</TD>
<TD>N</TD></TR>
<TR align=middle>
<TD>79</TD>
<TD>O</TD>
<TD>80</TD>
<TD>P</TD>
<TD>81</TD>
<TD>Q</TD>
<TD>82</TD>
<TD>R</TD></TR>
<TR align=middle>
<TD>83</TD>
<TD>S</TD>
<TD>84</TD>
<TD>T</TD>
<TD>85</TD>
<TD>U</TD>
<TD>86</TD>
<TD>V</TD></TR>
<TR align=middle>
<TD>87</TD>
<TD>W</TD>
<TD>88</TD>
<TD>X</TD>
<TD>89</TD>
<TD>Y</TD>
<TD>90</TD>
<TD>Z</TD></TR>
<TR align=middle>
<TD>91</TD>
<TD>[</TD>
<TD>92</TD>
<TD>\</TD>
<TD>93</TD>
<TD>]</TD>
<TD>94</TD>
<TD>^</TD></TR>
<TR align=middle>
<TD>95</TD>
<TD>_</TD>
<TD>96</TD>
<TD>`</TD>
<TD>97</TD>
<TD>a</TD>
<TD>98</TD>
<TD>b</TD></TR>
<TR align=middle>
<TD>99</TD>
<TD>c</TD>
<TD>100</TD>
<TD>d</TD>
<TD>101</TD>
<TD>e</TD>
<TD>102</TD>
<TD>f</TD></TR>
<TR align=middle>
<TD>103</TD>
<TD>g</TD>
<TD>104</TD>
<TD>h</TD>
<TD>105</TD>
<TD>i</TD>
<TD>106</TD>
<TD>j</TD></TR>
<TR align=middle>
<TD>107</TD>
<TD>k</TD>
<TD>108</TD>
<TD>l</TD>
<TD>109</TD>
<TD>m</TD>
<TD>110</TD>
<TD>n</TD></TR>
<TR align=middle>
<TD>111</TD>
<TD>o</TD>
<TD>112</TD>
<TD>p</TD>
<TD>113</TD>
<TD>q</TD>
<TD>114</TD>
<TD>r</TD></TR>
<TR align=middle>
<TD>115</TD>
<TD>s</TD>
<TD>116</TD>
<TD>t</TD>
<TD>117</TD>
<TD>u</TD>
<TD>118</TD>
<TD>v</TD></TR>
<TR align=middle>
<TD>119</TD>
<TD>w</TD>
<TD>120</TD>
<TD>x</TD>
<TD>121</TD>
<TD>y</TD>
<TD>122</TD>
<TD>z</TD></TR>
<TR align=middle>
<TD>123</TD>
<TD>{</TD>
<TD>124</TD>
<TD>|</TD>
<TD>125</TD>
<TD>}</TD>
<TD>126</TD>
<TD>~</TD></TR></TBODY></TABLE>&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">¡¡¡¡Ä¿Ç°¼ÆËã»úÖÐÓÃµÃ×î¹ã·ºµÄ×Ö·û¼¯¼°Æä±àÂë£¬ÊÇÓÉÃÀ¹ú¹ú¼Ò±ê×¼¾Ö(ANSI)ÖÆ¶¨µÄASCIIÂë£¨American&nbsp;Standard&nbsp;Code&nbsp;for&nbsp;Information&nbsp;Interchange£¬ÃÀ¹ú±ê×¼ÐÅÏ¢½»»»Âë£©£¬ËüÒÑ±»¹ú¼Ê±ê×¼»¯×éÖ¯£¨ISO£©¶¨Îª¹ú¼Ê±ê×¼£¬³ÆÎªISO&nbsp;646±ê×¼¡£ÊÊÓÃÓÚËùÓÐÀ­¶¡ÎÄ×Ö×ÖÄ¸£¬ASCIIÂëÓÐ7Î»ÂëºÍ8Î»ÂëÁ½ÖÖÐÎÊ½¡£&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">¡¡¡¡ÒòÎª1Î»¶þ½øÖÆÊý¿ÉÒÔ±íÊ¾£¨21=£©2ÖÖ×´Ì¬£º0¡¢1£»¶ø2Î»¶þ½øÖÆÊý¿ÉÒÔ±íÊ¾£¨22£©=4ÖÖ×´Ì¬£º00¡¢01¡¢10¡¢11£»ÒÀ´ÎÀàÍÆ£¬7Î»¶þ½øÖÆÊý¿ÉÒÔ±íÊ¾£¨27=£©128ÖÖ×´Ì¬£¬Ã¿ÖÖ×´Ì¬¶¼Î¨Ò»µØ±àÎªÒ»¸ö7Î»µÄ¶þ½øÖÆÂë£¬¶ÔÓ¦Ò»¸ö×Ö·û£¨»ò¿ØÖÆÂë£©£¬ÕâÐ©Âë¿ÉÒÔÅÅÁÐ³ÉÒ»¸öÊ®½øÖÆÐòºÅ0¡«127¡£ËùÒÔ£¬7Î»ASCIIÂëÊÇÓÃÆßÎ»¶þ½øÖÆÊý½øÐÐ±àÂëµÄ£¬¿ÉÒÔ±íÊ¾128¸ö×Ö·û¡£&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">¡¡¡¡µÚ0¡«32ºÅ¼°µÚ127ºÅ(¹²34¸ö)ÊÇ¿ØÖÆ×Ö·û»òÍ¨Ñ¶×¨ÓÃ×Ö·û£¬Èç¿ØÖÆ·û£ºLF£¨»»ÐÐ£©¡¢CR£¨»Ø³µ£©¡¢FF£¨»»Ò³£©¡¢DEL£¨É¾³ý£©¡¢BEL£¨ÕñÁå£©µÈ£»Í¨Ñ¶×¨ÓÃ×Ö·û£ºSOH£¨ÎÄÍ·£©¡¢EOT£¨ÎÄÎ²£©¡¢ACK£¨È·ÈÏ£©µÈ£»&nbsp;</P>
<P style="TEXT-INDENT: 2em">¡¡¡¡µÚ33¡«126ºÅ(¹²94¸ö)ÊÇ×Ö·û£¬ÆäÖÐµÚ48¡«57ºÅÎª0¡«9Ê®¸ö°¢À­²®Êý×Ö£»65¡«90ºÅÎª26¸ö´óÐ´Ó¢ÎÄ×ÖÄ¸£¬97¡«122ºÅÎª26¸öÐ¡Ð´Ó¢ÎÄ×ÖÄ¸£¬ÆäÓàÎªÒ»Ð©±êµã·ûºÅ¡¢ÔËËã·ûºÅµÈ¡£&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">¡¡¡¡×¢Òâ£ºÔÚ¼ÆËã»úµÄ´æ´¢µ¥ÔªÖÐ£¬Ò»¸öASCIIÂëÖµÕ¼Ò»¸ö×Ö½Ú(8¸ö¶þ½øÖÆÎ»)£¬Æä×î¸ßÎ»(b7)ÓÃ×÷ÆæÅ¼Ð£ÑéÎ»¡£ËùÎ½ÆæÅ¼Ð£Ñé£¬ÊÇÖ¸ÔÚ´úÂë´«ËÍ¹ý³ÌÖÐÓÃÀ´¼ìÑéÊÇ·ñ³öÏÖ´íÎóµÄÒ»ÖÖ·½·¨£¬Ò»°ã·ÖÆæÐ£ÑéºÍÅ¼Ð£ÑéÁ½ÖÖ¡£ÆæÐ£Ñé¹æ¶¨£ºÕýÈ·µÄ´úÂëÒ»¸ö×Ö½ÚÖÐ1µÄ¸öÊý±ØÐëÊÇÆæÊý£¬Èô·ÇÆæÊý£¬ÔòÔÚ×î¸ßÎ»b7Ìí1£»Å¼Ð£Ñé¹æ¶¨£ºÕýÈ·µÄ´úÂëÒ»¸ö×Ö½ÚÖÐ1µÄ¸öÊý±ØÐëÊÇÅ¼Êý£¬Èô·ÇÅ¼Êý£¬ÔòÔÚ×î¸ßÎ»b7Ìí1¡£</P>
<P style="TEXT-INDENT: 2em">¸½£º</P>
<P style="TEXT-INDENT: 2em">ASCII±í</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=0 width=600 border=1>
<TBODY>
<TR>
<TD vAlign=top>ASCIIÖµ </TD>
<TD vAlign=top>¿ØÖÆ×Ö·û </TD>
<TD vAlign=top>ASCIIÖµ </TD>
<TD vAlign=top>¿ØÖÆ×Ö·û </TD>
<TD vAlign=top>ASCIIÖµ </TD>
<TD vAlign=top>¿ØÖÆ×Ö·û </TD>
<TD vAlign=top>ASCIIÖµ </TD>
<TD vAlign=top>¿ØÖÆ×Ö·û </TD></TR>
<TR align=middle>
<TD vAlign=top>0</TD>
<TD vAlign=top>NUT</TD>
<TD vAlign=top>32</TD>
<TD vAlign=top>(space)</TD>
<TD vAlign=top>64</TD>
<TD vAlign=top>@</TD>
<TD vAlign=top>96</TD>
<TD vAlign=top>¡¢</TD></TR>
<TR align=middle>
<TD vAlign=top>1</TD>
<TD vAlign=top>SOH</TD>
<TD vAlign=top>33</TD>
<TD vAlign=top>£¡</TD>
<TD vAlign=top>65</TD>
<TD vAlign=top>A</TD>
<TD vAlign=top>97</TD>
<TD vAlign=top>a</TD></TR>
<TR align=middle>
<TD vAlign=top>2</TD>
<TD vAlign=top>STX</TD>
<TD vAlign=top>34</TD>
<TD vAlign=top>¡±</TD>
<TD vAlign=top>66</TD>
<TD vAlign=top>B</TD>
<TD vAlign=top>98</TD>
<TD vAlign=top>b</TD></TR>
<TR align=middle>
<TD vAlign=top>3</TD>
<TD vAlign=top>ETX</TD>
<TD vAlign=top>35</TD>
<TD vAlign=top>#</TD>
<TD vAlign=top>67</TD>
<TD vAlign=top>C</TD>
<TD vAlign=top>99</TD>
<TD vAlign=top>c</TD></TR>
<TR align=middle>
<TD vAlign=top>4</TD>
<TD vAlign=top>EOT</TD>
<TD vAlign=top>36</TD>
<TD vAlign=top>$</TD>
<TD vAlign=top>68</TD>
<TD vAlign=top>D</TD>
<TD vAlign=top>100</TD>
<TD vAlign=top>d</TD></TR>
<TR align=middle>
<TD vAlign=top>5</TD>
<TD vAlign=top>ENQ</TD>
<TD vAlign=top>37</TD>
<TD vAlign=top>%</TD>
<TD vAlign=top>69</TD>
<TD vAlign=top>E</TD>
<TD vAlign=top>101</TD>
<TD vAlign=top>e</TD></TR>
<TR align=middle>
<TD vAlign=top>6</TD>
<TD vAlign=top>ACK</TD>
<TD vAlign=top>38</TD>
<TD vAlign=top>&amp;</TD>
<TD vAlign=top>70</TD>
<TD vAlign=top>F</TD>
<TD vAlign=top>102</TD>
<TD vAlign=top>f</TD></TR>
<TR align=middle>
<TD vAlign=top>7</TD>
<TD vAlign=top>BEL</TD>
<TD vAlign=top>39</TD>
<TD vAlign=top>,</TD>
<TD vAlign=top>71</TD>
<TD vAlign=top>G</TD>
<TD vAlign=top>103</TD>
<TD vAlign=top>g</TD></TR>
<TR align=middle>
<TD vAlign=top>8</TD>
<TD vAlign=top>BS</TD>
<TD vAlign=top>40</TD>
<TD vAlign=top>(</TD>
<TD vAlign=top>72</TD>
<TD vAlign=top>H</TD>
<TD vAlign=top>104</TD>
<TD vAlign=top>h</TD></TR>
<TR align=middle>
<TD vAlign=top>9</TD>
<TD vAlign=top>HT</TD>
<TD vAlign=top>41</TD>
<TD vAlign=top>)</TD>
<TD vAlign=top>73</TD>
<TD vAlign=top>I</TD>
<TD vAlign=top>105</TD>
<TD vAlign=top>i</TD></TR>
<TR align=middle>
<TD vAlign=top>10</TD>
<TD vAlign=top>LF</TD>
<TD vAlign=top>42</TD>
<TD vAlign=top>*</TD>
<TD vAlign=top>74</TD>
<TD vAlign=top>J</TD>
<TD vAlign=top>106</TD>
<TD vAlign=top>j</TD></TR>
<TR align=middle>
<TD vAlign=top>11</TD>
<TD vAlign=top>VT</TD>
<TD vAlign=top>43</TD>
<TD vAlign=top>+</TD>
<TD vAlign=top>75</TD>
<TD vAlign=top>K</TD>
<TD vAlign=top>107</TD>
<TD vAlign=top>k</TD></TR>
<TR align=middle>
<TD vAlign=top>12</TD>
<TD vAlign=top>FF</TD>
<TD vAlign=top>44</TD>
<TD vAlign=top>,</TD>
<TD vAlign=top>76</TD>
<TD vAlign=top>L</TD>
<TD vAlign=top>108</TD>
<TD vAlign=top>l</TD></TR>
<TR align=middle>
<TD vAlign=top>13</TD>
<TD vAlign=top>CR</TD>
<TD vAlign=top>45</TD>
<TD vAlign=top>-</TD>
<TD vAlign=top>77</TD>
<TD vAlign=top>M</TD>
<TD vAlign=top>109</TD>
<TD vAlign=top>m</TD></TR>
<TR align=middle>
<TD vAlign=top>14</TD>
<TD vAlign=top>SO</TD>
<TD vAlign=top>46</TD>
<TD vAlign=top>.</TD>
<TD vAlign=top>78</TD>
<TD vAlign=top>N</TD>
<TD vAlign=top>110</TD>
<TD vAlign=top>n</TD></TR>
<TR align=middle>
<TD vAlign=top>15</TD>
<TD vAlign=top>SI</TD>
<TD vAlign=top>47</TD>
<TD vAlign=top>/</TD>
<TD vAlign=top>79</TD>
<TD vAlign=top>O</TD>
<TD vAlign=top>111</TD>
<TD vAlign=top>o</TD></TR>
<TR align=middle>
<TD vAlign=top>16</TD>
<TD vAlign=top>DLE</TD>
<TD vAlign=top>48</TD>
<TD vAlign=top>0</TD>
<TD vAlign=top>80</TD>
<TD vAlign=top>P</TD>
<TD vAlign=top>112</TD>
<TD vAlign=top>p</TD></TR>
<TR align=middle>
<TD vAlign=top>17</TD>
<TD vAlign=top>DCI</TD>
<TD vAlign=top>49</TD>
<TD vAlign=top>1</TD>
<TD vAlign=top>81</TD>
<TD vAlign=top>Q</TD>
<TD vAlign=top>113</TD>
<TD vAlign=top>q</TD></TR>
<TR align=middle>
<TD vAlign=top>18</TD>
<TD vAlign=top>DC2</TD>
<TD vAlign=top>50</TD>
<TD vAlign=top>2</TD>
<TD vAlign=top>82</TD>
<TD vAlign=top>R</TD>
<TD vAlign=top>114</TD>
<TD vAlign=top>r</TD></TR>
<TR align=middle>
<TD vAlign=top>19</TD>
<TD vAlign=top>DC3</TD>
<TD vAlign=top>51</TD>
<TD vAlign=top>3</TD>
<TD vAlign=top>83</TD>
<TD vAlign=top>X</TD>
<TD vAlign=top>115</TD>
<TD vAlign=top>s</TD></TR>
<TR align=middle>
<TD vAlign=top>20</TD>
<TD vAlign=top>DC4</TD>
<TD vAlign=top>52</TD>
<TD vAlign=top>4</TD>
<TD vAlign=top>84</TD>
<TD vAlign=top>T</TD>
<TD vAlign=top>116</TD>
<TD vAlign=top>t</TD></TR>
<TR align=middle>
<TD vAlign=top>21</TD>
<TD vAlign=top>NAK</TD>
<TD vAlign=top>53</TD>
<TD vAlign=top>5</TD>
<TD vAlign=top>85</TD>
<TD vAlign=top>U</TD>
<TD vAlign=top>117</TD>
<TD vAlign=top>u</TD></TR>
<TR align=middle>
<TD vAlign=top>22</TD>
<TD vAlign=top>SYN</TD>
<TD vAlign=top>54</TD>
<TD vAlign=top>6</TD>
<TD vAlign=top>86</TD>
<TD vAlign=top>V</TD>
<TD vAlign=top>118</TD>
<TD vAlign=top>v</TD></TR>
<TR align=middle>
<TD vAlign=top>23</TD>
<TD vAlign=top>TB</TD>
<TD vAlign=top>55</TD>
<TD vAlign=top>7</TD>
<TD vAlign=top>87</TD>
<TD vAlign=top>W</TD>
<TD vAlign=top>119</TD>
<TD vAlign=top>w</TD></TR>
<TR align=middle>
<TD vAlign=top>24</TD>
<TD vAlign=top>CAN</TD>
<TD vAlign=top>56</TD>
<TD vAlign=top>8</TD>
<TD vAlign=top>88</TD>
<TD vAlign=top>X</TD>
<TD vAlign=top>120</TD>
<TD vAlign=top>x</TD></TR>
<TR align=middle>
<TD vAlign=top>25</TD>
<TD vAlign=top>EM</TD>
<TD vAlign=top>57</TD>
<TD vAlign=top>9</TD>
<TD vAlign=top>89</TD>
<TD vAlign=top>Y</TD>
<TD vAlign=top>121</TD>
<TD vAlign=top>y</TD></TR>
<TR align=middle>
<TD vAlign=top>26</TD>
<TD vAlign=top>SUB</TD>
<TD vAlign=top>58</TD>
<TD vAlign=top>:</TD>
<TD vAlign=top>90</TD>
<TD vAlign=top>Z</TD>
<TD vAlign=top>122</TD>
<TD vAlign=top>z</TD></TR>
<TR align=middle>
<TD vAlign=top>27</TD>
<TD vAlign=top>ESC</TD>
<TD vAlign=top>59</TD>
<TD vAlign=top>;</TD>
<TD vAlign=top>91</TD>
<TD vAlign=top>[</TD>
<TD vAlign=top>123</TD>
<TD vAlign=top>{</TD></TR>
<TR align=middle>
<TD vAlign=top>28</TD>
<TD vAlign=top>FS</TD>
<TD vAlign=top>60</TD>
<TD vAlign=top>&lt;</TD>
<TD vAlign=top>92</TD>
<TD vAlign=top>\</TD>
<TD vAlign=top>124</TD>
<TD vAlign=top>|</TD></TR>
<TR align=middle>
<TD vAlign=top>29</TD>
<TD vAlign=top>GS</TD>
<TD vAlign=top>61</TD>
<TD vAlign=top>=</TD>
<TD vAlign=top>93</TD>
<TD vAlign=top>]</TD>
<TD vAlign=top>125</TD>
<TD vAlign=top>}</TD></TR>
<TR align=middle>
<TD vAlign=top>30</TD>
<TD vAlign=top>RS</TD>
<TD vAlign=top>62</TD>
<TD vAlign=top>&gt;</TD>
<TD vAlign=top>94</TD>
<TD vAlign=top>^</TD>
<TD vAlign=top>126</TD>
<TD vAlign=top>~</TD></TR>
<TR align=middle>
<TD vAlign=top>31</TD>
<TD vAlign=top>US</TD>
<TD vAlign=top>63</TD>
<TD vAlign=top>?</TD>
<TD vAlign=top>95</TD>
<TD vAlign=top>¡ª</TD>
<TD vAlign=top>127</TD>
<TD vAlign=top>DEL</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=0 width=600 border=1>
<TBODY>
<TR>
<TD vAlign=top>NUL</TD>
<TD vAlign=top>VT ´¹Ö±ÖÆ±í</TD>
<TD vAlign=top>SYN ¿Õ×ªÍ¬²½</TD></TR>
<TR>
<TD vAlign=top>SOH&nbsp; ±êÌâ¿ªÊ¼</TD>
<TD vAlign=top>FF&nbsp;&nbsp; ×ßÖ½¿ØÖÆ</TD>
<TD vAlign=top>ETB&nbsp; ÐÅÏ¢×é´«ËÍ½áÊø</TD></TR>
<TR>
<TD vAlign=top>STX&nbsp; ÕýÎÄ¿ªÊ¼</TD>
<TD vAlign=top>CR&nbsp;&nbsp; »Ø³µ</TD>
<TD vAlign=top>CAN&nbsp; ×÷·Ï</TD></TR>
<TR>
<TD vAlign=top>ETX&nbsp; ÕýÎÄ½áÊø</TD>
<TD vAlign=top>SO&nbsp;&nbsp; ÒÆÎ»Êä³ö</TD>
<TD vAlign=top>EM&nbsp;&nbsp; Ö½¾¡</TD></TR>
<TR>
<TD vAlign=top>EOY&nbsp; ´«Êä½áÊø</TD>
<TD vAlign=top>SI&nbsp;&nbsp;&nbsp; ÒÆÎ»ÊäÈë</TD>
<TD vAlign=top>SUB&nbsp; »»ÖÃ</TD></TR>
<TR>
<TD vAlign=top>ENQ&nbsp; Ñ¯ÎÊ×Ö·û</TD>
<TD vAlign=top>DLE&nbsp; ¿Õ¸ñ</TD>
<TD vAlign=top>ESC&nbsp; »»Âë</TD></TR>
<TR>
<TD vAlign=top>ACK&nbsp; ³ÐÈÏ</TD>
<TD vAlign=top>DC1&nbsp; Éè±¸¿ØÖÆ1</TD>
<TD vAlign=top>FS&nbsp;&nbsp; ÎÄ×Ö·Ö¸ô·û</TD></TR>
<TR>
<TD vAlign=top>BEL&nbsp; ±¨¾¯</TD>
<TD vAlign=top>DC2&nbsp; Éè±¸¿ØÖÆ2</TD>
<TD vAlign=top>GS&nbsp;&nbsp; ×é·Ö¸ô·û</TD></TR>
<TR>
<TD vAlign=top>BS&nbsp;&nbsp; ÍËÒ»¸ñ</TD>
<TD vAlign=top>DC3&nbsp; Éè±¸¿ØÖÆ3</TD>
<TD vAlign=top>RS&nbsp;&nbsp; ¼ÇÂ¼·Ö¸ô·û</TD></TR>
<TR>
<TD vAlign=top>HT&nbsp;&nbsp; ºáÏòÁÐ±í</TD>
<TD vAlign=top>DC4&nbsp; Éè±¸¿ØÖÆ4</TD>
<TD vAlign=top>US&nbsp;&nbsp; µ¥Ôª·Ö¸ô·û</TD></TR>
<TR>
<TD vAlign=top>LF&nbsp;&nbsp; »»ÐÐ</TD>
<TD vAlign=top>NAK&nbsp; ·ñ¶¨</TD>
<TD vAlign=top>DEL&nbsp; É¾³ý</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=0 cellPadding=0 width=600 border=0>
<TBODY>
<TR>
<TD align=middle>¼üÅÌ³£ÓÃASCIIÂë </TD></TR>
<TR>
<TD>ESC¼ü VK_ESCAPE (27)
<P></P>
<P style="TEXT-INDENT: 2em">»Ø³µ¼ü£º VK_RETURN (13)</P>
<P style="TEXT-INDENT: 2em">TAB¼ü£º VK_TAB (9)</P>
<P style="TEXT-INDENT: 2em">Caps Lock¼ü£º VK_CAPITAL (20)</P>
<P style="TEXT-INDENT: 2em">Shift¼ü£º VK_SHIFT ($10)</P>
<P style="TEXT-INDENT: 2em">Ctrl¼ü£º VK_CONTROL (17)</P>
<P style="TEXT-INDENT: 2em">Alt¼ü£º VK_MENU (18)</P>
<P style="TEXT-INDENT: 2em">¿Õ¸ñ¼ü£º VK_SPACE ($20/32)</P>
<P style="TEXT-INDENT: 2em">ÍË¸ñ¼ü£º VK_BACK (8)</P>
<P style="TEXT-INDENT: 2em">×ó»Õ±ê¼ü£º VK_LWIN (91)</P>
<P style="TEXT-INDENT: 2em">ÓÒ»Õ±ê¼ü£º VK_LWIN (92)</P>
<P style="TEXT-INDENT: 2em">Êó±êÓÒ¼ü¿ì½Ý¼ü£ºVK_APPS (93) </P>
<P style="TEXT-INDENT: 2em">Insert¼ü£º VK_INSERT (45)</P>
<P style="TEXT-INDENT: 2em">Home¼ü£º VK_HOME (36)</P>
<P style="TEXT-INDENT: 2em">Page Up£º VK_PRIOR (33)</P>
<P style="TEXT-INDENT: 2em">PageDown£º VK_NEXT (34)</P>
<P style="TEXT-INDENT: 2em">End¼ü£º VK_END (35)</P>
<P style="TEXT-INDENT: 2em">Delete¼ü£º VK_DELETE (46)</P>
<P style="TEXT-INDENT: 2em">·½Ïò¼ü(¡û)£º VK_LEFT (37)</P>
<P style="TEXT-INDENT: 2em">·½Ïò¼ü(¡ü)£º VK_UP (38)</P>
<P style="TEXT-INDENT: 2em">·½Ïò¼ü(¡ú)£º VK_RIGHT (39)</P>
<P style="TEXT-INDENT: 2em">·½Ïò¼ü(¡ý)£º VK_DOWN (40)</P>
<P style="TEXT-INDENT: 2em">F1¼ü£º VK_F1 (112)</P>
<P style="TEXT-INDENT: 2em">F2¼ü£º VK_F2 (113)</P>
<P style="TEXT-INDENT: 2em">F3¼ü£º VK_F3 (114)</P>
<P style="TEXT-INDENT: 2em">F4¼ü£º VK_F4 (115)</P>
<P style="TEXT-INDENT: 2em">F5¼ü£º VK_F5 (116)</P>
<P style="TEXT-INDENT: 2em">F6¼ü£º VK_F6 (117)</P>
<P style="TEXT-INDENT: 2em">F7¼ü£º VK_F7 (118)</P>
<P style="TEXT-INDENT: 2em">F8¼ü£º VK_F8 (119)</P>
<P style="TEXT-INDENT: 2em">F9¼ü£º VK_F9 (120)</P>
<P style="TEXT-INDENT: 2em">F10¼ü£º VK_F10 (121)</P>
<P style="TEXT-INDENT: 2em">F11¼ü£º VK_F11 (122)</P>
<P style="TEXT-INDENT: 2em">F12¼ü£º VK_F12 (123)</P>
<P style="TEXT-INDENT: 2em">Num Lock¼ü£º VK_NUMLOCK (144)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ0£º VK_NUMPAD0 (96)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ1£º VK_NUMPAD0 (97)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ2£º VK_NUMPAD0 (98)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ3£º VK_NUMPAD0 (99)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ4£º VK_NUMPAD0 (100)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ5£º VK_NUMPAD0 (101)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ6£º VK_NUMPAD0 (102)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ7£º VK_NUMPAD0 (103)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ8£º VK_NUMPAD0 (104)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ9£º VK_NUMPAD0 (105)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ.£º VK_DECIMAL (110)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ*£º VK_MULTIPLY (106)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ+£º VK_MULTIPLY (107)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ-£º VK_SUBTRACT (109)</P>
<P style="TEXT-INDENT: 2em">Ð¡¼üÅÌ/£º VK_DIVIDE (111)</P>
<P style="TEXT-INDENT: 2em">Pause Break¼ü£º VK_PAUSE (19)</P>
<P style="TEXT-INDENT: 2em">Scroll Lock¼ü£º VK_SCROLL (145)</P></TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/46914420085249033908</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/46914420085249033908</guid>
    <pubDate>Tue, 24 Jun 2008 21:00:33 +0800</pubDate>
    <dcterms:modified>2008-06-24T21:00:33+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[windowsÊý¾ÝÀàÐÍ]]></title>	
    <link>http://520yl.blog.163.com/blog/static/46914420085241617789</link>
    <description><![CDATA[<div><DIV>
<H1>À´Ô´msdn<A></A></H1>
<H1>Windows Data Types</H1>
<P>The data types supported by Microsoft&reg; Windows&reg; are used to define function return values, function and message parameters, and structure members. They define the size and meaning of these elements. For more information about the underlying C/C++ data types, see <A href="http://msdn.microsoft.com/library/en-us/vclang/html/_langref_Data_Type_Ranges.asp" target=_blank>Data Type Ranges</A>.</P>
<P></P>
<P>The following table contains the following types: character, integer, Boolean, pointer, and handle. The character, integer, and Boolean types are common to most C compilers. Most of the pointer-type names begin with a prefix of P or LP. Handles refer to a resource that has been loaded into memory.</P>
<P>For more information about handling 64-bit integers, see <A href="ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WIN32COM.v10.en/WINPROG/winprog/large_integers.htm">Large Integers</A>.</P>
<P></P>
<TABLE>
<TBODY>
<TR>
<TH>Type</TH>
<TH>Description</TH></TR>
<TR>
<TD width="40%"><B>ATOM</B></TD>
<TD width="60%">Atom. For more information, see <U><FONT color=#0000ff>Atoms</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WORD ATOM;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>BOOL</B></TD>
<TD width="60%">Boolean variable (should be TRUE or FALSE). 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef int BOOL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>BOOLEAN</B></TD>
<TD width="60%">Boolean variable (should be TRUE or FALSE). 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef BYTE BOOLEAN;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>BYTE</B></TD>
<TD width="60%">Byte (8 bits). 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned char BYTE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>CALLBACK</B></TD>
<TD width="60%">Calling convention for callback functions. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define CALLBACK __stdcall</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>CHAR</B></TD>
<TD width="60%">8-bit Windows (ANSI) character. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef char CHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>COLORREF</B></TD>
<TD width="60%">Red, green, blue (RGB) color value (32 bits). See <U><FONT color=#0000ff>COLORREF</FONT></U> for information on this type. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD COLORREF;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>CONST</B></TD>
<TD width="60%">Variable whose value is to remain constant during execution. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define CONST const</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>DWORD</B></TD>
<TD width="60%">32-bit unsigned integer. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned long DWORD;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>DWORDLONG</B></TD>
<TD width="60%">64-bit unsigned integer. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONGLONG DWORDLONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>DWORD_PTR</B></TD>
<TD width="60%">Unsigned long type for pointer precision. Use when casting a pointer to a long type to perform pointer arithmetic. (Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows. ) 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONG_PTR DWORD_PTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>DWORD32</B></TD>
<TD width="60%">32-bit unsigned integer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned int DWORD32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>DWORD64</B></TD>
<TD width="60%">64-bit unsigned integer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned __int64 DWORD64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>FLOAT</B></TD>
<TD width="60%">Floating-point variable. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef float FLOAT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HACCEL</B></TD>
<TD width="60%">Handle to an <U><FONT color=#0000ff>accelerator table</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HACCEL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HALF_PTR</B></TD>
<TD width="60%">Half the size of a pointer. Use within a structure that contains a pointer and two small fields. 
<P>This type is declared in Basetsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HANDLE</B></TD>
<TD width="60%">Handle to an object. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef PVOID HANDLE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HBITMAP</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>bitmap</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HBITMAP;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HBRUSH</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>brush</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HBRUSH;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HCOLORSPACE</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>color space</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if(WINVER &gt;= 0x0400)
 typedef HANDLE HCOLORSPACE;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HCONV</B></TD>
<TD width="60%">Handle to a dynamic data exchange (DDE) conversation. 
<P>This type is declared in Ddeml.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HCONV;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HCONVLIST</B></TD>
<TD width="60%">Handle to a DDE conversation list. 
<P>This type is declared in Ddeml.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HCONVLIST;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HCURSOR</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>cursor</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HICON HCURSOR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HDC</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>device context</FONT></U> (DC). 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HDC;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HDDEDATA</B></TD>
<TD width="60%">Handle to DDE data. 
<P>This type is declared in Ddeml.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HDDEDATA;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HDESK</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>desktop</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HDESK;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HDROP</B></TD>
<TD width="60%">Handle to an internal drop structure. 
<P>This type is declared in ShellApi.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HDROP;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HDWP</B></TD>
<TD width="60%">Handle to a deferred window position structure. 
<P>This type is declared in WinUser.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HDWP;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HENHMETAFILE</B></TD>
<TD width="60%">Handle to an <U><FONT color=#0000ff>enhanced metafile</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HENHMETAFILE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HFILE</B></TD>
<TD width="60%">Handle to a file opened by <B><U><FONT color=#0000ff>OpenFile</FONT></U></B>, not <B><U><FONT color=#0000ff>CreateFile</FONT></U></B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef int HFILE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HFONT</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>font</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HFONT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HGDIOBJ</B></TD>
<TD width="60%">Handle to a GDI object. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HGDIOBJ;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HGLOBAL</B></TD>
<TD width="60%">Handle to a global memory block. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HGLOBAL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HHOOK</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>hook</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HHOOK;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HICON</B></TD>
<TD width="60%">Handle to an <U><FONT color=#0000ff>icon</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HICON;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HINSTANCE</B></TD>
<TD width="60%">Handle to an instance. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HINSTANCE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HKEY</B></TD>
<TD width="60%">Handle to a registry key. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HKEY;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HKL</B></TD>
<TD width="60%">Input locale identifier. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HKL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HLOCAL</B></TD>
<TD width="60%">Handle to a local memory block. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HLOCAL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HMENU</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>menu</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HMENU;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HMETAFILE</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>metafile</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HMETAFILE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HMODULE</B></TD>
<TD width="60%">Handle to a module. The value is the base address of the module. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HINSTANCE HMODULE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HMONITOR</B></TD>
<TD width="60%">Handle to a display monitor. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">if(WINVER &gt;= 0x0500) typedef HANDLE HMONITOR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HPALETTE</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>palette</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HPALETTE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HPEN</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>pen</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HPEN;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HRESULT</B></TD>
<TD width="60%">Return code used by interfaces. It is zero upon success and nonzero to represent an error code or status information. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG HRESULT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HRGN</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>region</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HRGN;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HRSRC</B></TD>
<TD width="60%">Handle to a resource. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HRSRC;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HSZ</B></TD>
<TD width="60%">Handle to a DDE string. 
<P>This type is declared in Ddeml.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HSZ;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HWINSTA</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>window station</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE WINSTA;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>HWND</B></TD>
<TD width="60%">Handle to a <U><FONT color=#0000ff>window</FONT></U>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE HWND;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>INT</B></TD>
<TD width="60%">32-bit signed integer. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef int INT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>INT_PTR</B></TD>
<TD width="60%">Signed integer type for pointer precision. Use when casting a pointer to an integer to perform pointer arithmetic. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if defined(_WIN64) 
 typedef __int64 INT_PTR; 
#else 
 typedef int INT_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>INT32</B></TD>
<TD width="60%">32-bit signed integer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef signed int INT32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>INT64</B></TD>
<TD width="60%">64-bit signed integer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef signed __int64 INT64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LANGID</B></TD>
<TD width="60%">Language identifier. For more information, see <U><FONT color=#0000ff>Locales</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WORD LANGID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LCID</B></TD>
<TD width="60%">Locale identifier. For more information, see <U><FONT color=#0000ff>Locales</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD LCID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LCTYPE</B></TD>
<TD width="60%">Locale information type. For a list, see <U><FONT color=#0000ff>Locale and Language Information</FONT></U>. 
<P>This type is declared in WinNls.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD LCTYPE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LGRPID</B></TD>
<TD width="60%">Language group identifier. For a list, see <B><U><FONT color=#0000ff>EnumLanguageGroupLocales</FONT></U></B>. 
<P>This type is declared in WinNls.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD LGRPID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LONG</B></TD>
<TD width="60%">32-bit signed integer. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef long LONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LONGLONG</B></TD>
<TD width="60%">64-bit signed integer. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if !defined(_M_IX86)
 typedef __int64 LONGLONG; 
#else
 typedef double LONGLONG;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LONG_PTR</B></TD>
<TD width="60%">Signed long type for pointer precision. Use when casting a pointer to a long to perform pointer arithmetic. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if defined(_WIN64)
 typedef __int64 LONG_PTR; 
#else
 typedef long LONG_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LONG32</B></TD>
<TD width="60%">32-bit signed integer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef signed int LONG32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LONG64</B></TD>
<TD width="60%">64-bit signed integer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef __int64 LONG64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPARAM</B></TD>
<TD width="60%">Message parameter. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG_PTR LPARAM;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPBOOL</B></TD>
<TD width="60%">Pointer to a <B>BOOL</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef BOOL far *LPBOOL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPBYTE</B></TD>
<TD width="60%">Pointer to a <B>BYTE</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef BYTE far *LPBYTE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPCOLORREF</B></TD>
<TD width="60%">Pointer to a <B>COLORREF</B> value. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD *LPCOLORREF;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPCSTR</B></TD>
<TD width="60%">Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef __nullterminated CONST CHAR *LPCSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPCTSTR</B></TD>
<TD width="60%">An <B>LPCWSTR</B> if <U><FONT color=#0000ff>UNICODE</FONT></U> is defined, an <B>LPCSTR</B> otherwise. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef UNICODE
 typedef LPCWSTR LPCTSTR; 
#else
 typedef LPCSTR LPCTSTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPCVOID</B></TD>
<TD width="60%">Pointer to a constant of any type. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CONST void *LPCVOID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPCWSTR</B></TD>
<TD width="60%">Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CONST WCHAR *LPCWSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPDWORD</B></TD>
<TD width="60%">Pointer to a <B>DWORD</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD *LPDWORD;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPHANDLE</B></TD>
<TD width="60%">Pointer to a <B>HANDLE</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE *LPHANDLE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPINT</B></TD>
<TD width="60%">Pointer to an <B>INT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef int *LPINT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPLONG</B></TD>
<TD width="60%">Pointer to a <B>LONG</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef long *LPLONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPSTR</B></TD>
<TD width="60%">Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CHAR *LPSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPTSTR</B></TD>
<TD width="60%">An <B>LPWSTR</B> if <U><FONT color=#0000ff>UNICODE</FONT></U> is defined, an <B>LPSTR</B> otherwise. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPVOID</B></TD>
<TD width="60%">Pointer to any type. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef void *LPVOID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPWORD</B></TD>
<TD width="60%">Pointer to a <B>WORD</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WORD *LPWORD;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LPWSTR</B></TD>
<TD width="60%">Pointer to a null-terminated string of 16-bit Unicode characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WCHAR *LPWSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>LRESULT</B></TD>
<TD width="60%">Signed result of message processing. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG_PTR LRESULT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PBOOL</B></TD>
<TD width="60%">Pointer to a <B>BOOL</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef BOOL *PBOOL;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PBOOLEAN</B></TD>
<TD width="60%">Pointer to a <B>BOOL</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef BOOLEAN *PBOOLEAN;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PBYTE</B></TD>
<TD width="60%">Pointer to a <B>BYTE</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef BYTE *PBYTE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PCHAR</B></TD>
<TD width="60%">Pointer to a <B>CHAR</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CHAR *PCHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PCSTR</B></TD>
<TD width="60%">Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CONST CHAR *PCSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PCTSTR</B></TD>
<TD width="60%">A <B>PCWSTR</B> if <U><FONT color=#0000ff>UNICODE</FONT></U> is defined, a <B>PCSTR</B> otherwise. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef UNICODE
 typedef LPCWSTR PCTSTR;
#else
 typedef LPCSTR PCTSTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PCWSTR</B></TD>
<TD width="60%">Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CONST WCHAR *PCWSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PDWORD</B></TD>
<TD width="60%">Pointer to a <B>DWORD</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD *PDWORD;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PDWORDLONG</B></TD>
<TD width="60%">Pointer to a <B>DWORDLONG</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORDLONG *PDWORDLONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PDWORD_PTR</B></TD>
<TD width="60%">Pointer to a <B>DWORD_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD_PTR *PDWORD_PTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PDWORD32</B></TD>
<TD width="60%">Pointer to a <B>DWORD32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD32 *PDWORD32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PDWORD64</B></TD>
<TD width="60%">Pointer to a <B>DWORD64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef DWORD64 *PDWORD64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PFLOAT</B></TD>
<TD width="60%">Pointer to a <B>FLOAT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef FLOAT *PFLOAT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PHALF_PTR</B></TD>
<TD width="60%">Pointer to a <B>HALF_PTR</B>. 
<P>This type is declared in Basetsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef _WIN64
 typedef HALF_PTR *PHALF_PTR;
#else
 typedef HALF_PTR *PHALF_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PHANDLE</B></TD>
<TD width="60%">Pointer to a <B>HANDLE</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE *PHANDLE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PHKEY</B></TD>
<TD width="60%">Pointer to an <B>HKEY</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HKEY *PHKEY;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PINT</B></TD>
<TD width="60%">Pointer to an <B>INT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef int *PINT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PINT_PTR</B></TD>
<TD width="60%">Pointer to an <B>INT_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef INT_PTR *PINT_PTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PINT32</B></TD>
<TD width="60%">Pointer to an <B>INT32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef INT32 *PINT32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PINT64</B></TD>
<TD width="60%">Pointer to an <B>INT64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef INT64 *PINT64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PLCID</B></TD>
<TD width="60%">Pointer to an <B>LCID</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef PDWORD PLCID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PLONG</B></TD>
<TD width="60%">Pointer to a <B>LONG</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG *PLONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PLONGLONG</B></TD>
<TD width="60%">Pointer to a <B>LONGLONG</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONGLONG *PLONGLONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PLONG_PTR</B></TD>
<TD width="60%">Pointer to a <B>LONG_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG_PTR *PLONG_PTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PLONG32</B></TD>
<TD width="60%">Pointer to a <B>LONG32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG32 *PLONG32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PLONG64</B></TD>
<TD width="60%">Pointer to a <B>LONG64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG64 *PLONG64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>POINTER_32</B></TD>
<TD width="60%">32-bit pointer. On a 32-bit system, this is a native pointer. On a 64-bit system, this is a truncated 64-bit pointer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER32
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>POINTER_64</B></TD>
<TD width="60%">64-bit pointer. On a 64-bit system, this is a native pointer. On a 32-bit system, this is a sign-extended 32-bit pointer. 
<P>Note that it is not safe to assume the state of the high pointer bit.</P>
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define POINTER_64 __ptr64</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>POINTER_SIGNED</B></TD>
<TD width="60%">A signed pointer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define POINTER_SIGNED __sptr</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>POINTER_UNSIGNED</B></TD>
<TD width="60%">An unsigned pointer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define POINTER_UNSIGNED __uptr</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PSHORT</B></TD>
<TD width="60%">Pointer to a <B>SHORT</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef SHORT *PSHORT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PSIZE_T</B></TD>
<TD width="60%">Pointer to a <B>SIZE_T</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef SIZE_T *PSIZE_T;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PSSIZE_T</B></TD>
<TD width="60%">Pointer to a <B>SSIZE_T</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef SSIZE_T *PSSIZE_T;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PSTR</B></TD>
<TD width="60%">Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef CHAR *PSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PTBYTE</B></TD>
<TD width="60%">Pointer to a <B>TBYTE</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef TBYTE *PTBYTE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PTCHAR</B></TD>
<TD width="60%">Pointer to a <B>TCHAR</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef TCHAR *PTCHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PTSTR</B></TD>
<TD width="60%">A <B>PWSTR</B> if <U><FONT color=#0000ff>UNICODE</FONT></U> is defined, a <B>PSTR</B> otherwise. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef UNICODE
 typedef LPWSTR PTSTR;
#else typedef LPSTR PTSTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUCHAR</B></TD>
<TD width="60%">Pointer to a <B>UCHAR</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef UCHAR *PUCHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUHALF_PTR</B></TD>
<TD width="60%">Pointer to a <B>UHALF_PTR</B>. 
<P>This type is declared in Basetsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef _WIN64
 typedef UHALF_PTR *PUHALF_PTR;
#else
 typedef UHALF_PTR *PUHALF_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUINT</B></TD>
<TD width="60%">Pointer to a <B>UINT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef UINT *PUINT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUINT_PTR</B></TD>
<TD width="60%">Pointer to a <B>UINT_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef UINT_PTR *PUINT_PTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUINT32</B></TD>
<TD width="60%">Pointer to a <B>UINT32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef UINT32 *PUINT32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUINT64</B></TD>
<TD width="60%">Pointer to a <B>UINT64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef UINT64 *PUINT64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PULONG</B></TD>
<TD width="60%">Pointer to a <B>ULONG</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONG *PULONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PULONGLONG</B></TD>
<TD width="60%">Pointer to a <B>ULONGLONG</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONGLONG *PULONGLONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PULONG_PTR</B></TD>
<TD width="60%">Pointer to a <B>ULONG_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONG_PTR *PULONG_PTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PULONG32</B></TD>
<TD width="60%">Pointer to a <B>ULONG32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONG32 *PULONG32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PULONG64</B></TD>
<TD width="60%">Pointer to a <B>ULONG64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONG64 *PULONG64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PUSHORT</B></TD>
<TD width="60%">Pointer to a <B>USHORT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef USHORT *PUSHORT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PVOID</B></TD>
<TD width="60%">Pointer to any type. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef void *PVOID;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PWCHAR</B></TD>
<TD width="60%">Pointer to a <B>WCHAR</B>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WCHAR *PWCHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PWORD</B></TD>
<TD width="60%">Pointer to a <B>WORD</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WORD *PWORD;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>PWSTR</B></TD>
<TD width="60%">Pointer to a null- terminated string of 16-bit Unicode characters. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef WCHAR *PWSTR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>SC_HANDLE</B></TD>
<TD width="60%">Handle to a service control manager database. For more information, see <U><FONT color=#0000ff>SCM Handles</FONT></U>. 
<P>This type is declared in WinSvc.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE SC_HANDLE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>SC_LOCK</B></TD>
<TD width="60%">Lock to a service control manager database. For more information, see <U><FONT color=#0000ff>SCM Handles</FONT></U>. 
<P>This type is declared in WinSvc.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LPVOID SC_LOCK;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>SERVICE_STATUS_HANDLE</B></TD>
<TD width="60%">Handle to a service status value. For more information, see <U><FONT color=#0000ff>SCM Handles</FONT></U>. 
<P>This type is declared in WinSvc.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef HANDLE SERVICE_STATUS_HANDLE;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>SHORT</B></TD>
<TD width="60%">Short integer (16 bits). 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef short SHORT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>SIZE_T</B></TD>
<TD width="60%">The maximum number of bytes to which a pointer can point. Use for a count that must span the full range of a pointer. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef ULONG_PTR SIZE_T;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>SSIZE_T</B></TD>
<TD width="60%">Signed <B>SIZE_T</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONG_PTR SSIZE_T;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>TBYTE</B></TD>
<TD width="60%">A <B>WCHAR</B> if <U><FONT color=#0000ff>UNICODE</FONT></U> is defined, a <B>CHAR</B> otherwise. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef UNICODE
 typedef WCHAR TBYTE;
#else
 typedef unsigned char TBYTE;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>TCHAR</B></TD>
<TD width="60%">A <B>WCHAR</B> if <U><FONT color=#0000ff>UNICODE</FONT></U> is defined, a <B>CHAR</B> otherwise. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef UNICODE
 typedef WCHAR TCHAR;
#else
 typedef char TCHAR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>UCHAR</B></TD>
<TD width="60%">Unsigned <B>CHAR</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned char UCHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>UHALF_PTR</B></TD>
<TD width="60%">Unsigned <B>HALF_PTR</B>. Use within a structure that contains a pointer and two small fields. 
<P>This type is declared in Basetsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#ifdef _WIN64
 typedef unsigned int UHALF_PTR;
#else
 typedef unsigned short UHALF_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>UINT</B></TD>
<TD width="60%">Unsigned <B>INT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned int UINT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>UINT_PTR</B></TD>
<TD width="60%">Unsigned <B>INT_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if defined(_WIN64)
 typedef unsigned __int64 UINT_PTR;
#else
 typedef unsigned int UINT_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>UINT32</B></TD>
<TD width="60%">Unsigned <B>INT32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned int UINT32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>UINT64</B></TD>
<TD width="60%">Unsigned <B>INT64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef usigned __int 64 UINT64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>ULONG</B></TD>
<TD width="60%">Unsigned <B>LONG</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned long ULONG;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>ULONGLONG</B></TD>
<TD width="60%">64-bit unsigned integer. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if !defined(_M_IX86)
 typedef unsigned __int64 ULONGLONG;
#else
 typedef double ULONGLONG
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>ULONG_PTR</B></TD>
<TD width="60%">Unsigned <B>LONG_PTR</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#if defined(_WIN64)
 typedef unsigned __int64 ULONG_PTR;
#else
 typedef unsigned long ULONG_PTR;
#endif</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>ULONG32</B></TD>
<TD width="60%">Unsigned <B>LONG32</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned int ULONG32;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>ULONG64</B></TD>
<TD width="60%">Unsigned <B>LONG64</B>. 
<P>This type is declared in BaseTsd.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned __int64 ULONG64;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>USHORT</B></TD>
<TD width="60%">Unsigned <B>SHORT</B>. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned short USHORT;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>USN</B></TD>
<TD width="60%">Update sequence number (USN). 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef LONGLONG USN;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>VOID</B></TD>
<TD width="60%">Any type. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define VOID void</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>WCHAR</B></TD>
<TD width="60%">16-bit Unicode character. For more information, see <U><FONT color=#0000ff>Character Sets Used By Fonts</FONT></U>. 
<P>This type is declared in WinNT.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef wchar_t WCHAR;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>WINAPI</B></TD>
<TD width="60%">Calling convention for system functions. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">#define WINAPI __stdcall</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>WORD</B></TD>
<TD width="60%">16-bit unsigned integer. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef unsigned short WORD;</PRE></DIV></DIV></TD></TR>
<TR>
<TD width="40%"><B>WPARAM</B></TD>
<TD width="60%">Message parameter. 
<P>This type is declared in WinDef.h as follows:</P>
<DIV development_language="C++">
<P></P>
<DIV><PRE xml:space="preserve">typedef UINT_PTR WPARAM;</PRE></DIV></DIV></TD></TR></TBODY></TABLE>
<P></P></DIV>
<P><A title="Send comments about this topic to Microsoft" href="mailto:sdkfdbk@microsoft.com?subject=Documentation%20feedback:%20Windows Data Types%20[winprog]"></A>&nbsp;</P></div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/46914420085241617789</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/46914420085241617789</guid>
    <pubDate>Tue, 24 Jun 2008 13:06:17 +0800</pubDate>
    <dcterms:modified>2008-06-24T13:06:53+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[windowsÏûÏ¢]]></title>	
    <link>http://520yl.blog.163.com/blog/static/46914420085241213872</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><A></A>À´Ô´msdn<STRONG><FONT color=#ff0000></FONT></STRONG></P>
<P style="TEXT-INDENT: 2em"><STRONG><FONT color=#ff0000>System-Defined Messages</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em">The system sends or posts a <I>system-defined message</I> when it communicates with an application. It uses these messages to control the operations of applications and to provide input and other information for applications to process. An application can also send or post system-defined messages. Applications generally use these messages to control the operation of control windows created by using preregistered window classes. </P>
<P style="TEXT-INDENT: 2em">Each system-defined message has a unique message identifier and a corresponding symbolic constant (defined in the software development kit (SDK) header files) that states the purpose of the message. For example, the WM_PAINT constant requests that a window paint its contents. </P>
<P style="TEXT-INDENT: 2em">Symbolic constants specify the category to which system-defined messages belong. The prefix of the constant identifies the type of window that can interpret and process the message. Following are the prefixes and their related message categories. 
<TABLE>
<TBODY>
<TR>
<TH>Prefix</TH>
<TH>Message category</TH></TR>
<TR>
<TD>ABM</TD>
<TD>Application desktop toolbar </TD></TR>
<TR>
<TD>BM</TD>
<TD>Button control </TD></TR>
<TR>
<TD>CB</TD>
<TD>Combo box control </TD></TR>
<TR>
<TD>CBEM</TD>
<TD>Extended combo box control</TD></TR>
<TR>
<TD>CDM</TD>
<TD>Common dialog box </TD></TR>
<TR>
<TD>DBT</TD>
<TD>Device </TD></TR>
<TR>
<TD>DL</TD>
<TD>Drag list box </TD></TR>
<TR>
<TD>DM</TD>
<TD>Default push button control </TD></TR>
<TR>
<TD>DTM</TD>
<TD>Date and time picker control</TD></TR>
<TR>
<TD>EM</TD>
<TD>Edit control </TD></TR>
<TR>
<TD>HDM</TD>
<TD>Header control </TD></TR>
<TR>
<TD>HKM</TD>
<TD>Hot key control</TD></TR>
<TR>
<TD>IPM</TD>
<TD>IP address control</TD></TR>
<TR>
<TD>LB</TD>
<TD>List box control </TD></TR>
<TR>
<TD>LVM</TD>
<TD>List view control </TD></TR>
<TR>
<TD>MCM</TD>
<TD>Month calendar control</TD></TR>
<TR>
<TD>PBM</TD>
<TD>Progress bar </TD></TR>
<TR>
<TD>PGM</TD>
<TD>Pager control</TD></TR>
<TR>
<TD>PSM</TD>
<TD>Property sheet </TD></TR>
<TR>
<TD>RB</TD>
<TD>Rebar control</TD></TR>
<TR>
<TD>SB</TD>
<TD>Status bar window </TD></TR>
<TR>
<TD>SBM</TD>
<TD>Scroll bar control </TD></TR>
<TR>
<TD>STM</TD>
<TD>Static control </TD></TR>
<TR>
<TD>TB</TD>
<TD>Toolbar </TD></TR>
<TR>
<TD>TBM</TD>
<TD>Trackbar </TD></TR>
<TR>
<TD>TCM</TD>
<TD>Tab control </TD></TR>
<TR>
<TD>TTM</TD>
<TD>Tooltip control </TD></TR>
<TR>
<TD>TVM</TD>
<TD>Tree-view control </TD></TR>
<TR>
<TD>UDM</TD>
<TD>Up-down control</TD></TR>
<TR>
<TD>WM</TD>
<TD>General window </TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">General window messages cover a wide range of information and requests, including messages for mouse and keyboard input, menu and dialog box input, window creation and management, and Dynamic Data Exchange (DDE). </P>
<P style="TEXT-INDENT: 2em"><A></A><STRONG><FONT color=#ff0000>Application-Defined Messages</FONT></STRONG></P>
<P style="TEXT-INDENT: 2em">An application can create messages to be used by its own windows or to communicate with windows in other processes. If an application creates its own messages, the window procedure that receives them must interpret the messages and provide appropriate processing. </P>
<P style="TEXT-INDENT: 2em">Message-identifier values are used as follows: </P>
<UL>
<LI>The system reserves message-identifier values in the range 0x0000 through 0x03FF (the value of WM_USER&nbsp;¨C 1) for system-defined messages. Applications cannot use these values for private messages. </LI>
<LI>Values in the range 0x0400 (the value of WM_USER) through 0x7FFF are available for message identifiers for private window classes. </LI>
<LI>If your application is marked version 4.0, you can use message-identifier values in the range 0x8000 (WM_APP) through 0xBFFF for private messages. </LI>
<LI>The system returns a message identifier in the range 0xC000 through 0xFFFF when an application calls the RegisterWindowMessage function to register a message. The message identifier returned by this function is guaranteed to be unique throughout the system. Use of this function prevents conflicts that can arise if other applications use the same message identifier for different purposes. </LI></UL></div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/46914420085241213872</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/46914420085241213872</guid>
    <pubDate>Tue, 24 Jun 2008 13:02:13 +0800</pubDate>
    <dcterms:modified>2008-06-24T13:07:23+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[ÀûÓÃFS¼Ä´æÆ÷»ñÈ¡KERNEL32.DLL»ùÖ·Ëã·¨µÄÖ¤Ã÷]]></title>	
    <link>http://520yl.blog.163.com/blog/static/46914420085209258829</link>
    <description><![CDATA[<div><P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">FS</FONT>¼Ä´æÆ÷Ö¸Ïòµ±Ç°»î¶¯Ïß³ÌµÄ<FONT face="Times New Roman">TEB</FONT>½á¹¹£¨Ïß³Ì½á¹¹£©</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Æ«ÒÆ<FONT face="Times New Roman">&nbsp; </FONT>ËµÃ÷</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">000&nbsp; </FONT>Ö¸Ïò<FONT face="Times New Roman">SEH</FONT>Á´Ö¸Õë</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">004&nbsp; </FONT>Ïß³Ì¶ÑÕ»¶¥²¿</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">008&nbsp; </FONT>Ïß³Ì¶ÑÕ»µ×²¿</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">00C&nbsp; SubSystemTib</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>010&nbsp; FiberData</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>014&nbsp; ArbitraryUserPointer</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">018&nbsp; FS</FONT>¶Î¼Ä´æÆ÷ÔÚÄÚ´æÖÐµÄ¾µÏñµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">020&nbsp; </FONT>½ø³Ì<FONT face="Times New Roman">PID</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">024&nbsp; </FONT>Ïß³Ì<FONT face="Times New Roman">ID</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">02C&nbsp; </FONT>Ö¸ÏòÏß³Ì¾Ö²¿´æ´¢Ö¸Õë</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">030&nbsp; PEB</FONT>½á¹¹µØÖ·£¨½ø³Ì½á¹¹£©</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">034&nbsp; </FONT>ÉÏ¸ö´íÎóºÅ</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>ÔÚ<FONT face="Times New Roman">shellcode</FONT>ÖÐÓÃËüÀ´ÕÒ<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·ÊÇ³£¼ûµÄËã·¨ÁË£¬¾­µäµÄÈýÖÖËã·¨¶¼ÓÃµ½ÁË<FONT face="Times New Roman">FS</FONT>¼Ä´æÆ÷£¡ËýÃÇÊÇ£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>1.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>Í¨¹ý<FONT face="Times New Roman">PEB(FS:[30])</FONT>»ñÈ¡<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>2.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>Í¨¹ý<FONT face="Times New Roman">TEB(FS:[18])</FONT>»ñÈ¡<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l2 level1 lfo2; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>3.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>Í¨¹ý<FONT face="Times New Roman">SEH(FS:[00])</FONT>»ñÈ¡<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>ÏÂÃæ·Ö±ðÖ¤Ã÷Ö®¡£</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>ÃüÌâÒ»£ºÍ¨¹ý<FONT face="Times New Roman">PEB(FS:[30])</FONT>»ñÈ¡<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Ëã·¨ÃèÊö£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">mov eax,fs:[30h]&nbsp;&nbsp;&nbsp;&nbsp; ;</FONT>µÃµ½<FONT face="Times New Roman">PEB</FONT>½á¹¹µØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">mov eax,[eax + 0ch]&nbsp; ;</FONT>µÃµ½<FONT face="Times New Roman">PEB_LDR_DATA</FONT>½á¹¹µØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 131.25pt; TEXT-INDENT: -131.25pt; mso-char-indent-count: -12.5"><FONT size=3><FONT face="Times New Roman">mov esi,[eax + 1ch]&nbsp;&nbsp; </FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 131.25pt; TEXT-INDENT: -131.25pt; mso-char-indent-count: -12.5"><FONT size=3><FONT face="Times New Roman">lodsd &nbsp;; </FONT>µÃµ½<FONT face="Times New Roman">KERNEL32.DLL</FONT>ËùÔÚ<FONT face="Times New Roman">LDR_MODULE</FONT>½á¹¹µÄ</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0"><FONT size=3><FONT face="Times New Roman">; InInitializationOrderModuleList</FONT>µØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">mov edx,[eax + 8h]&nbsp;&nbsp; ;</FONT>µÃµ½<FONT face="Times New Roman">BaseAddress</FONT>£¬¼È<FONT face="Times New Roman">Kernel32.dll</FONT>»ùÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Ö¤Ã÷£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>1.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>Ëæ±ã<FONT face="Times New Roman">open</FONT>Ò»¸ö<FONT face="Times New Roman">exe</FONT>£¬ÄÚ´æÖÐµÄ<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·ÊÇ²»±äµÄ£»</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><FONT size=3></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>2.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>»ñÈ¡<FONT face="Times New Roman">PEB</FONT>»ùµØÖ·£¬</FONT> </P>
<P></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd fs:30 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">003b:00000030&nbsp; <STRONG style="mso-bidi-font-weight: normal">7ffd6000</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3>¿´µ½ÁË£¬<FONT face="Times New Roman">7ffd6000</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>3.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>»ñÈ¡<FONT face="Times New Roman">PEB_LDR_DATA</FONT>½á¹¹µØÖ·<FONT face="Times New Roman">7ffd6000+0c</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">peb</FONT>µÄ½á¹¹¶¨Òå£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>ntdll!_PEB</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x000 InheritedAddressSpace : UChar</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x001 ReadImageFileExecOptions : UChar</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x002 BeingDebugged&nbsp;&nbsp;&nbsp; : UChar</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x003 SpareBool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : UChar</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x004 Mutant&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Ptr32 Void</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x008 ImageBaseAddress : Ptr32 Void</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; <STRONG style="mso-bidi-font-weight: normal">+0x00c Ldr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Ptr32 _PEB_LDR_DATA</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x014 SubSystemData&nbsp;&nbsp;&nbsp; : Ptr32 Void</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x018 ProcessHeap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Ptr32 Void</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x01c FastPebLock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Ptr32 _RTL_CRITICAL_SECTION</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 35.9pt; mso-para-margin-left: 3.42gd"><FONT face="Times New Roman" size=3>......</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt;&nbsp; dd 7ffd6000+0c L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">7ffd600c&nbsp; <STRONG style="mso-bidi-font-weight: normal">00181ea0</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>PEB_LDR_DATA-&gt; 00181ea0 </FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>4.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>»ñÈ¡<FONT face="Times New Roman">InInitializationOrderModuleList</FONT>µÄµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3>ËµÒ»ÏÂÕâ¸ö<FONT face="Times New Roman">PEB_LDR_DATA</FONT>£¬ËýÊÇ<FONT face="Times New Roman">ntdll.dll</FONT>ÖÐµÄ<FONT face="Times New Roman">u</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman"></FONT></FONT>&nbsp;</P><FONT size=3><FONT face="Times New Roman">
<DIV ></DIV>
<DIV >

</DIV>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd">ndocumented</P></FONT>µÄÒ»¸ö½á¹¹£¬<FONT face="Times New Roman">PEB_LDR_DATA</FONT>µÄ½á¹¹¶¨Òå£º</FONT> 
<P></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT face="Times New Roman" size=3>0:000&gt; dt _PEB_LDR_DATA</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x000 Length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Uint4B</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x004 Initialized&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : UChar</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x008 SsHandle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Ptr32 Void</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x00c InLoadOrderModuleList : _LIST_ENTRY</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x014 InMemoryOrderModuleList : _LIST_ENTRY</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; <STRONG style="mso-bidi-font-weight: normal">+0x01c InInitializationOrderModuleList : _LIST_ENTRY</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">&nbsp;&nbsp; +0x024 EntryInProgress&nbsp; : Ptr32 Void</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 00181ea0+1c L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT size=3><FONT face="Times New Roman">00181ebc&nbsp; <STRONG style="mso-bidi-font-weight: normal">00181f</STRONG><STRONG style="mso-bidi-font-weight: normal">58</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.85pt; mso-para-margin-left: 1.7gd"><FONT face="Times New Roman" size=3>InInitializationOrderModuleList-&gt;00181f58</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>5.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>»ñÈ¡<FONT face="Times New Roman">kernel32</FONT>µÄ»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 00181f58+8 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">00181f60&nbsp; <STRONG style="mso-bidi-font-weight: normal">7c</STRONG><STRONG style="mso-bidi-font-weight: normal">920000</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">7c920000</FONT>¾ÍÊÇÁË£¿</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">check</FONT>Ò»ÏÂ£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd kernel32 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman"><STRONG style="mso-bidi-font-weight: normal">7c</STRONG><STRONG style="mso-bidi-font-weight: normal">800000</STRONG>&nbsp; 00905a4d</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3>°¡£¡¾¹È»²»ÊÇ°¡£¬<FONT face="Times New Roman">7c920000</FONT>ÊÇ<FONT face="Times New Roman">ntdll.dll</FONT>µÄ£¬¹þ¹þ¡£</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd">&nbsp;</P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd">²»¹ý£¬Ëã·¨ÃüÌâÈÔÈ»ÊÇÕýÈ·µÄ¡£ÒòÎªÔÚ<FONT face="Times New Roman">shellcode</FONT>ÖÐÄ£¿éÁÐ±íµÄµÚÒ»¸ö¾ÍÊÇ<FONT face="Times New Roman">kernel32</FONT>ÁË£¬µ±È»¿ÉÒÔÍ¨¹ý¾µÏñÃû³ÆÀ´<FONT face="Times New Roman">check</FONT>µÄ£¬²»¹ý<FONT face="Times New Roman">shellcode</FONT>µÄ¿Õ¼ä²»ÔÊÐíµÄ£¬Õâ¾ÍÊÇ<FONT face="Times New Roman">shellcode</FONT>µÄÒÕÊõÁË¡£ÎÒÓÃÀ´²âÊÔµÄ<FONT face="Times New Roman">exe</FONT>Ç¡ºÃÏÈ¼ÓÔØÁË<FONT face="Times New Roman">ntdll.dll</FONT>¡£ </P>
<P></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>ÃüÌâ¶þ£ºÍ¨¹ý<FONT face="Times New Roman">TEB(FS:[18])</FONT>»ñÈ¡<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Ëã·¨ÃèÊö£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>±¾µØÏß³ÌµÄÕ»ÀïÆ«ÒÆ<FONT face="Times New Roman">18H</FONT>µÄÖ¸ÕëÖ¸Ïò<FONT face="Times New Roman">kernel32.dll</FONT>ÄÚ²¿£¬¶ø<FONT face="Times New Roman">fs :[ 0x18 ] </FONT>Ö¸Ïòµ±Ç°Ïß³Ì¶øÇÒÍùÀïËÄ¸ö×Ö½ÚÖ¸ÏòÏß³ÌÕ»£¬½áºÏÕ»¶¥Ö¸Õë½øÐÐ¶ÔÆë±éÀú£¬ÕÒµ½<FONT face="Times New Roman">PE</FONT>ÎÄ¼þÍ·£¨<FONT face="Times New Roman">DLL</FONT>µÄÎÄ¼þ¸ñÊ½£©µÄ¡°<FONT face="Times New Roman">MZ</FONT>¡±<FONT face="Times New Roman">MSDOS</FONT>±êÖ¾£¬¾ÍÄÃµ½ÁË<FONT face="Times New Roman">kernel32.dll</FONT>»ùÖ·¡£</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>xor esi , esi</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>mov esi , fs :[ esi + 0x18 ] // TEB</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">mov eax , [ esi + 4 ] // </FONT>Õâ¸öÊÇÐèÒªµÄÕ»¶¥</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">mov eax , [ eax - 0x1c ] // </FONT>Ö¸Ïò<FONT face="Times New Roman">Kernel32.dll</FONT>ÄÚ²¿</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>find_kernel32_base :</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">dec eax // </FONT>¿ªÊ¼µØÌºÊ½ËÑË÷<FONT face="Times New Roman">Kernel32</FONT>¿Õ¼ä</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>xor ax , ax</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>cmp word ptr [ eax ], 0x5a4d // "MZ"</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">jne find_kernel32_base // </FONT>Ñ­<FONT face="Times New Roman"> </FONT>»·±é<FONT face="Times New Roman"> </FONT>Àú<FONT face="Times New Roman"> </FONT>£¬ÕÒµ½<FONT face="Times New Roman"> </FONT>Ôò<FONT face="Times New Roman"> </FONT>·µ»Ø<FONT face="Times New Roman"> eax</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Ö¤Ã÷£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo3; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>1.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>ÕÒµ½<FONT face="Times New Roman">TEB</FONT>£¬Õâ¸öºÃ°ì£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt;&nbsp; dd fs:18 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">003b:00000018&nbsp; <STRONG style="mso-bidi-font-weight: normal">7ffdd000</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>TEB-&gt;7ffdd000</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo3; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>2.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>ÕÒµ½Õ»¶¥Ö¸Õë£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 7ffdd000+4 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">7ffdd004&nbsp; <STRONG style="mso-bidi-font-weight: normal">00070000</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo3; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>3.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>½øÈë<FONT face="Times New Roman">Kernel32</FONT>¿Õ¼ä£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 00070000-1c L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">0006ffe4&nbsp; <STRONG style="mso-bidi-font-weight: normal">7c</STRONG><STRONG style="mso-bidi-font-weight: normal">839aa8</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><STRONG></STRONG>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo3; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>4.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=3>Kernel32</FONT></FONT><FONT size=3>¿Õ¼äµÄ´óËÑË÷£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>0:000&gt; db 7c839aa7 L4</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">7c839aa7&nbsp; 30 55 8b ec&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; 0U..</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">......</FONT>Ò»Ö±¸ãÏÂÈ¥</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>0:000&gt; db 7c800000 L4</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3><FONT face="Times New Roman">7c800000&nbsp; 4d 5a 90 00&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; MZ..</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>ÕÒµ½ÁË°É£¬¹þ¹þ¡£ÓÐµãÐ§ÂÊÎÊÌâ£¬<FONT face="Times New Roman">shellcode</FONT>ÓÐÊ±ºòÊÇÒªÎþÉüÐ§ÂÊµÄ£¬Ã»°ì·¨£¬»¹ÊÇÒÕÊõÎÊÌâ¡£</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>ÃüÌâÈý£ºÍ¨¹ý<FONT face="Times New Roman">SEH(FS:[00])</FONT>»ñÈ¡<FONT face="Times New Roman">KERNEL32.DLL</FONT>»ùµØÖ·</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Ëã·¨ÃèÊö£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>×¢Òâ£º<FONT face="Times New Roman">FS:[ 0 ] </FONT>Ö¸ÏòµÄÊÇ<FONT face="Times New Roman">SHE</FONT>£¬ËüÖ¸Ïò<FONT face="Times New Roman">kernel32.dll</FONT>ÄÚ²¿Á´£¬ÕâÑù¾Í¿ÉÒÔË³ÌÙÃþ¹ÏÁË¡£<FONT face="Times New Roman">FS:[ 0 ] </FONT>Ö¸ÏòµÄÊÇ<FONT face="Times New Roman">SHE</FONT>µÄÄÚ²ãÁ´£¬ÎªÁËÕÒµ½¶¥²ãÒì³£´¦Àí£¬ÎÒÃÇÏòÍâ±éÀúÕÒµ½<FONT face="Times New Roman">prev</FONT>³ÉÔ±µÈÓÚ<FONT face="Times New Roman"> 0xffffffff </FONT>µÄ<FONT face="Times New Roman">EXCEPTION_REGISTER</FONT>½á¹¹£¬¸Ã½á¹¹µÄ<FONT face="Times New Roman">handler</FONT>Öµ¾ÍÊÇÏµÍ³<FONT face="Times New Roman"> </FONT>Ä¬<FONT face="Times New Roman"> </FONT>ÈÏµÄ´¦ÀíÀý³Ì£»ÕâÀïÓÐ¸öÏ¸½Ú£¬<FONT face="Times New Roman">DLL</FONT>µÄ×°ÔØÊÇ<FONT face="Times New Roman">64K</FONT>±ß½ç¶ÔÆëµÄ£¬ËùÒÔÐèÒªÀûÓÃ±éÀúµ½µÄÖ¸Ïò×îºóµÄÒì³£´¦ÀíµÄÖ¸Õë½øÐÐÒ³²éÕÒ£¬ÔÙ½áºÏ<FONT face="Times New Roman">PE</FONT>ÎÄ¼þ<FONT face="Times New Roman">MSDOS</FONT>±êÖ¾²¿·Ö£¬Ö»ÒªÔÚÃ¿¸ö<FONT face="Times New Roman"> 64K </FONT>±ß½ç²éÕÒ<FONT face="Times New Roman"> </FONT>¡°<FONT face="Times New Roman">MZ </FONT>¡±×Ö·û¾ÍÄÜÕÒµ½<FONT face="Times New Roman">kernel32.dll</FONT>»ùÖ·¡£</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>xor ecx , ecx</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>mov esi , fs :[ ecx ]</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>find_seh :</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>mov eax ,[ esi ] </FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>mov esi , eax</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>cmp [ eax ], ecx</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>jns find_seh // 0xffffffff</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>mov eax , [ eax + 0x04 ] // handler</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>find_kernel32_base :</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>dec eax</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>xor ax , ax</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>cmp word ptr [ eax ], 0x5a4d</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>jne find_kernel32_base</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt"><FONT size=3>Ö¤Ã÷£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>1.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&amp;n</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt"><FONT face="Times New Roman"></FONT>&nbsp;</P><FONT face="Times New Roman">
<DIV ></DIV>
<DIV >

</DIV>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt">bsp;&nbsp; </P></FONT><FONT size=3>ÕÒµ½µ±Ç°<FONT face="Times New Roman">SEH</FONT>£º</FONT> 
<P></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd fs:0 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">003b:00000000&nbsp; <STRONG style="mso-bidi-font-weight: normal">0006fedc</STRONG></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>2.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>ÕÒµ½×îÍâ²ã<FONT face="Times New Roman">SEH</FONT>£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt"><FONT face="Times New Roman" size=3>round 1:</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 0006fedc L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0006fedc&nbsp; <STRONG style="mso-bidi-font-weight: normal">0006ffb0</STRONG> ; esi</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 0006ffb0 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0006ffb0&nbsp; <STRONG style="mso-bidi-font-weight: normal">0006ffe0 </STRONG>; [eax]</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>round 2:</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 0006ffb0 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0006ffb0&nbsp; <STRONG style="mso-bidi-font-weight: normal">0006ffe0</STRONG> ; esi</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 0006ffe0 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0006ffe0&nbsp; <STRONG style="mso-bidi-font-weight: normal">ffffffff</STRONG> ; [eax]</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3>²»´í£¬µÚ¶þÌË¾ÍÕÒµ½ÁË£¡´ËÊ±£¬<FONT face="Times New Roman">eax=0006ffe0</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo4; tab-stops: list 18.0pt"><FONT face="Times New Roman"><FONT size=3>3.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT size=3>ÕÒµ½<FONT face="Times New Roman">MZ</FONT>£º</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; dd 0006ffe0+4 L1</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0006ffe4&nbsp; 7c839aa8</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; db 7c839aa7 L4</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">7c839aa7&nbsp; 30 55 8b ec&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; 0U..</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">......</FONT>ÓÖÊÇÒ»Ö±¸ãÏÂÈ¥</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>0:000&gt; db 7c800000 L4</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">7c</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman"></FONT></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3><FONT face="Times New Roman">800000&nbsp; 4d 5a 90 00&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; MZ..</FONT></FONT> </P>
<P></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3>ÕÒµ½£¡</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT face="Times New Roman" size=3>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 17.95pt; mso-para-margin-left: 1.71gd"><FONT size=3>ÖªÆäÈ»£¬¸üÒªÖªÆäËùÒÔÈ»£¡</FONT></P></div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/46914420085209258829</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/46914420085209258829</guid>
    <pubDate>Fri, 20 Jun 2008 21:25:08 +0800</pubDate>
    <dcterms:modified>2008-06-20T21:25:08+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[ÈçºÎÐ´windowsÏµÍ³ÒÑ±£»¤µÄÄÚ´æÇøÓò]]></title>	
    <link>http://520yl.blog.163.com/blog/static/469144200852092247294</link>
    <description><![CDATA[<div><P>windowsÏµÍ³ÔÚÄ³Ð©°æ±¾ÏÂ¶ÔÄ³Ð©ÄÚ´æÇøÓòÆôÓÃÁËÐ´±£»¤µÄ¹¦ÄÜ£¬ÒòÎªÕâÐ©ÇøÓòÒ»°ãºÏ·¨³ÌÐòÊÇ²»ÄÜÐÞ¸ÄÆäÄÚÈÝµÄ£¬ÄÇÃ´ÎÒÃÇÈçºÎÀ´Ð´ÕâÐ©ÄÚ´æÄØ£¿</P>
<P>PS:1) ÕâÐ©ÏµÍ³°üÀ¨:windows xpÓëwindows 2003<BR>2) CPUÌá¹©Ð´±£»¤µÄ¹¦ÄÜÊÇ´Ó486¿ªÊ¼µÄ<BR>3) Ò»°ãºÏ·¨³ÌÐò²»°üÀ¨É±¶¾Èí¼þ£¬ÒòÎªËûÃÇÔÚHook SSDTÖÐÊÇÖ±½Ó¸ÄServiceTableBase£¬¶øÃ»ÓÐÓÃinlineµÄ·½·¨<BR><BR>ÎÒÃÇ¾ÍÓÃSSDT×öÀý×Ó°É£¬ÔÚHook SSDTÊ±²»ÓÃinnline hook·½·¨£¬ÎÒÃÇ¾ÍÒªÐÞ¸ÄSSDTÕâ¸öÏµÍ³·þÎñÃèÊö±í£»¶øÕâ¸ö±íÊÇ±»Ð´±£»¤ÁË£¬ÔÚring0ÏÂÒ²ÊÇÃ»ÓÐÐ´µÄÈ¨ÏÞ¡£</P>
<P>·½·¨Ò»£º<BR>Ê×ÏÈÎÒÃÇÀ´¿´Ò»ÏÂCR0¼Ä´æÆ÷µÄ¸ñÊ½<BR>|31|30|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |18|17|16|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5|4|3|2|0|1|<BR>|P |C |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |A | |W |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N|E|T|E|M|P|<BR>|G |D |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |M | |P |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E|T|S|M|P|E|</P>
<P>ÎÒÃÇÖ÷Òª×¢ÒâÕâ¸öWPÕâÎ»,ÆäËûµÄÇë²Î¿¼IA-32 Volume 3A£»<BR>WP¡ª¡ªWrite Protect£¬µ±ÉèÖÃÎª1Ê±Ö»Ìá¹©¶ÁÒ³È¨ÏÞ<BR>PE¡ª¡ªPaging£¬µ±ÉèÖÃÎª1Ê±Ìá¹©·ÖÒ³<BR>MP¡ª¡ªProtection Enable£¬µ±ÉèÖÃÎª1Ê±½øÈë±£»¤Ä£Ê½<BR>ËùÒÔÎÒÃÇÖ»Òª°ÑWPÕâÒ»Î»ÉèÖÃÎª0Ê±£¬¾Í¿ÉÒÔÐÞ¸ÄSSDTÁË</P>
<P>//1 ¹Ø±ÕÐ´±£»¤<BR>__asm<BR>{<BR>push eax<BR>mov eax, CR0<BR>and eax, 0FFFEFFFFh<BR>mov CR0, eax<BR>pop eax<BR>}</P>
<P>//2 ´ò¿ªÐ´±£»¤<BR>__asm<BR>{<BR>push eax<BR>mov eax, CR0<BR>or eax, NOT 0FFFEFFFFh<BR>mov CR0, eax<BR>pop eax<BR>}<BR>Í¨¹ýÉÏÃæµÄµÚÒ»×éÖ¸ÁîÎÒÃÇ¾Í¿ÉÒÔÕý³£ÐÞ¸ÄSSDT£¬¼ÇµÃÐÞ¸ÄºóÒª»¹Ô­¡£</P>
<P><BR>·½·¨¶þ£º<BR>´Ë·½·¨ÊÇ¸Ç´ÄÌá¹©µÄ£¬ÔÚÄÚ´æÃèÊö±í(MDL)ÖÐÃèÊöÒ»¿éÄÚ´æÇøÓò£¬MDL°üº¬´ËÄÚ´æÇøÓòµÄÆðÊ¼µØÖ·£¬ÓµÓÐÕß½ø³Ì£¬×Ö½ÚÊýÁ¿ÒÔ¼°±êÖ¾¡£<BR>//ÔÚddkÖÐµÄÃèÊö<BR>typedef struct _MDL {<BR>&nbsp;&nbsp;&nbsp; struct _MDL *Next;<BR>&nbsp;&nbsp;&nbsp; CSHORT Size;<BR>&nbsp;&nbsp;&nbsp; CSHORT MdlFlags;<BR>&nbsp;&nbsp;&nbsp; struct _EPROCESS *Process;<BR>&nbsp;&nbsp;&nbsp; PVOID MappedSystemVa;<BR>&nbsp;&nbsp;&nbsp; PVOID StartVa;<BR>&nbsp;&nbsp;&nbsp; ULONG ByteCount;<BR>&nbsp;&nbsp;&nbsp; ULONG ByteOffset;<BR>} MDL, *PMDL;</P>
<P>#define MDL_MAPPED_TO_SYSTEM_VA&nbsp;&nbsp;&nbsp; 0x0001<BR>#define MDL_PAGES_LOCKED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0002<BR>#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004<BR>#define MDL_ALLOCATED_FIXED_SIZE&nbsp;&nbsp;&nbsp; 0x0008<BR>#define MDL_PARTIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0010<BR>#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020<BR>#define MDL_IO_PAGE_READ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0040<BR>#define MDL_WRITE_OPERATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0080<BR>#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100<BR>#define MDL_LOCK_HELD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0200<BR>#define MDL_PHYSICAL_VIEW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0400<BR>#define MDL_IO_SPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0800<BR>#define MDL_NETWORK_HEADER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1000<BR>#define MDL_MAPPING_CAN_FAIL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x2000<BR>#define MDL_ALLOCATED_MUST_SUCCEED 0x4000</P>
<P><BR>// Declarations</P>
<P>#pragma pack(1)</P>
<P>typedef struct ServiceDescriptorEntry {</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int *ServiceTableBase;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int *ServiceCounterTableBase;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int NumberOfServices;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned char *ParamTableBase;</P>
<P>} SSDT;</P>
<P>#pragma pack()</P>
<P>__declspec(dllimport) SSDTKeServiceDescriptorTable;</P>
<P>PMDL g_pmdlSystemCall;<BR>PVOID *MappedSystemCallTable;</P>
<P>// save old system call locations<BR>// Map the memory into our domain to change the permissions on<BR>// the MDL<BR>g_pmdlSystemCall = MmCreateMdl(NULL,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KeServiceDescriptorTable.ServiceTableBase,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KeServiceDescriptorTable.NumberOfServices*4);</P>
<P>if(!g_pmdlSystemCall)<BR>return STATUS_UNSUCCESSFUL;</P>
<P>MmBuildMdlForNonPagedPool(g_pmdlSystemCall);</P>
<P>// Change the flags of the MDL<BR>g_pmdlSystemCall-&gt;MdlFlags = g_pmdlSystemCall-&gt;MdlFlags |<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; MDL_MAPPED_TO_SYSTEM_VA;</P>
<P>MappedSystemCallTable = MmMapLockedPages(g_pmdlSystemCall, KernelMode);</P>
<P></P>
<P>MappedSystemCallTable¾ÍÊÇSSDTµÄµØÖ·£¬ÏÖÔÚ¿ÉÒÔ·ÅÐÄµÄ²Ù×÷Ëü°É£¡ÓÃÍêÁË×îºÃMmFreePagesFromMdl¡£</P>
<P></P>
<P></P>
<P></P>
<P></P>
<P><BR><BR></P>
<P>sinister</P>
<P></P>
<P><BR></P>
<P></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P></P>
<P>ÒÔÏÂÊÇ Mark Russinovich ºÜÔçÐ´µÄÒ»¶Î´úÂë£¬Ä¿µÄÒ²ÊÇÐ´Ö»¶ÁÄÚ´æ¡£</P>
<P><BR>NTSTATUS <A ></A><STRONG style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">WriteReadOnlyMemory</STRONG> (char *dest, char *source, int length) <BR>{ <BR>KSPIN_LOCK tempSpinLock; <BR>KIRQL oldirql; <BR>PMDL mdl; <BR>PVOID writableAddress;</P>
<P>mdl = IoAllocateMdl((PVOID) dest, length, FALSE, FALSE, NULL); <BR>if (mdl == NULL) <BR>return STATUS_UNSUCCESSFUL; <BR>MmBuildMdlForNonPagedPool(mdl); <BR>MmProbeAndLockPages(mdl, KernelMode, IoWriteAccess); <BR>writableAddress = MmMapLockedPages(mdl, KernelMode); <BR>if (writableAddress == NULL) { <BR>MmUnlockPages(mdl); <BR>IoFreeMdl(mdl); <BR>return STATUS_UNSUCCESSFUL; <BR>}</P>
<P>KeInitializeSpinLock(&amp;tempSpinLock); <BR>KeAcquireSpinLock(&amp;tempSpinLock, &amp;oldirql); <BR>RtlCopyMemory(writableAddress, source, length); <BR>KeReleaseSpinLock(&amp;tempSpinLock, oldirql);</P>MmUnmapLockedPages(writableAddress, mdl); <BR>MmUnlockPages(mdl); <BR>IoFreeMdl(mdl); <BR>return STATUS_SUCCESS; <BR>}</div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/469144200852092247294</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/469144200852092247294</guid>
    <pubDate>Fri, 20 Jun 2008 21:22:47 +0800</pubDate>
    <dcterms:modified>2008-06-20T21:22:47+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[WindowsÖÐFS¶Î¼Ä´æÆ÷]]></title>	
    <link>http://520yl.blog.163.com/blog/static/469144200852092146899</link>
    <description><![CDATA[<div><P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=3><SPAN>Ïß³ÌÔËÐÐÔÚ</SPAN><SPAN><FONT face="Times New Roman">RING0</FONT></SPAN><SPAN>£¨ÏµÍ³µØÖ·¿Õ¼ä£©ºÍ</SPAN><SPAN><FONT face="Times New Roman">RING3</FONT></SPAN><SPAN>£¨ÓÃ»§µØÖ·¿Õ¼ä£©Ê±£¬</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN>¶Î¼Ä´æÆ÷·Ö±ð<A ></A><STRONG style="COLOR: black; BACKGROUND-COLOR: rgb(255,102,255)">Ö¸Ïò</STRONG>²»Í¬ÄÚ´æ¶ÎµÄ¡£Ïß³ÌÔËÐÐÔÚ</SPAN><SPAN><FONT face="Times New Roman">RING0</FONT></SPAN><SPAN>ÏÂ£¬</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN>¶ÎÖµÊÇ</SPAN><SPAN><FONT face="Times New Roman">0x3B</FONT></SPAN><SPAN>£¨</SPAN><SPAN><FONT face="Times New Roman">WindowsXP</FONT></SPAN><SPAN>ÏÂÖµ£¬ÔÚ</SPAN><SPAN><FONT face="Times New Roman">Windows2000</FONT></SPAN><SPAN>ÏÂÖµÎª</SPAN><SPAN><FONT face="Times New Roman">0x38</FONT></SPAN><SPAN>£©£»ÔËÐÐÔÚ</SPAN><SPAN><FONT face="Times New Roman">RING3</FONT></SPAN><SPAN>ÏÂÊ±£¬</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN>¶Î¼Ä´æÆ÷ÖµÊÇ</SPAN><SPAN><FONT face="Times New Roman">0x30</FONT></SPAN><SPAN>¡£</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN>¼Ä´æÆ÷ÖµµÄ¸Ä±äÊÇÔÚ³ÌÐò´Ó</SPAN><SPAN><FONT face="Times New Roman">Ring3</FONT></SPAN><SPAN>½øÈë</SPAN><SPAN><FONT face="Times New Roman">Ring0</FONT></SPAN><SPAN>ºóºÍ´Ó</SPAN><SPAN><FONT face="Times New Roman">Ring0</FONT></SPAN><SPAN>ÍË»Øµ½</SPAN><SPAN><FONT face="Times New Roman">Ring3</FONT></SPAN><SPAN>Ç°Íê³ÉµÄ£¬Ò²¾ÍÊÇËµ£º¶¼ÊÇÔÚ</SPAN><SPAN><FONT face="Times New Roman">Ring0</FONT></SPAN><SPAN>ÏÂ¸ø</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN>¸³²»Í¬ÖµµÄ¡£</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt"><STRONG><SPAN style="FONT-SIZE: 12pt"><SPAN><FONT face="Times New Roman">Ò»£®<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt">ÔÚ</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt"><FONT face="Times New Roman">RING3</FONT></SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt">ÏÂÔËÐÐÊ±µÄ</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt"><FONT face="Times New Roman">FS</FONT></SPAN></STRONG></P>
<P style="MARGIN: 0cm 0cm 0pt 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=3><SPAN>µ±Ïß³ÌÔËÐÐÔÚ</SPAN><SPAN><FONT face="Times New Roman">Ring3</FONT></SPAN><SPAN>ÏÂÊ±£¬</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN><STRONG style="COLOR: black; BACKGROUND-COLOR: rgb(255,102,255)">Ö¸Ïò</STRONG>µÄ¶ÎÊÇ</SPAN><SPAN><FONT face="Times New Roman">GDT</FONT></SPAN><SPAN>ÖÐµÄ</SPAN><SPAN><FONT face="Times New Roman">0x30</FONT></SPAN><SPAN>¶Î¡£¸Ã¶ÎµÄ³¤¶ÈÎª</SPAN><SPAN><FONT face="Times New Roman">4K</FONT></SPAN><SPAN>£¬»ùµØÖ·Îªµ±Ç°Ïß³ÌµÄÏß³Ì»·¾³¿é£¨</SPAN><SPAN><FONT face="Times New Roman">TEB</FONT></SPAN><SPAN>£©£¬ËùÒÔ¸Ã¶ÎÒ²±»³ÆÎª¡°</SPAN><SPAN><FONT face="Times New Roman">TEB</FONT></SPAN><SPAN>¶Î¡±¡£ÒòÎª</SPAN><SPAN><FONT face="Times New Roman">Windows</FONT></SPAN><SPAN>ÖÐÏß³ÌÊÇ²»Í£ÇÐ»»µÄ£¬ËùÒÔ¸Ã¶ÎµÄ»ùµØÖ·Öµ½«ËæÏß³ÌÇÐ»»¶ø¸Ä±äµÄ¡£</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=3><SPAN><FONT face="Times New Roman">Windows2000</FONT></SPAN><SPAN>ÖÐ½ø³Ì»·¾³¿é£¨</SPAN><SPAN><FONT face="Times New Roman">PEB</FONT></SPAN><SPAN>£©µÄµØÖ·Îª</SPAN><SPAN><FONT face="Times New Roman">0X7FFDF000</FONT></SPAN><SPAN>£¬¸Ã½ø³ÌµÄµÚÒ»¸öÏß³ÌµÄ</SPAN><SPAN><FONT face="Times New Roman">TEB</FONT></SPAN><SPAN>µØÖ·Îª</SPAN><SPAN><FONT face="Times New Roman">0X7FFDE000</FONT></SPAN><SPAN>£¬µÚ¶þ¸ö</SPAN><SPAN><FONT face="Times New Roman">TEB</FONT></SPAN><SPAN>µÄµØÖ·Îª</SPAN><SPAN><FONT face="Times New Roman">0X7FFDD000¡­..</FONT></SPAN><SPAN>µ«ÊÇÔÚ</SPAN><SPAN><FONT face="Times New Roman">WindowsXP<SPAN> </SPAN>SP2 </FONT></SPAN><SPAN>ÏÂÕâÐ©½á¹¹µÄµØÖ·¶¼ÊÇËæ»úÓ³ÉäµÄ¡£ËùÒÔ½ø³ÌµÄ</SPAN><SPAN><FONT face="Times New Roman">PEB</FONT></SPAN><SPAN>µÄµØÖ·Ö»ÄÜÍ¨¹ý</SPAN><SPAN><FONT face="Times New Roman">FS:[0x30]</FONT></SPAN><SPAN>À´»ñÈ¡ÁË¡£</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=3><SPAN><FONT face="Times New Roman">Windows</FONT></SPAN><SPAN>ÖÐÃ¿¸öÏß³Ì¶¼ÓÐÒ»¸ö</SPAN><SPAN><FONT face="Times New Roman">ETHREAD</FONT></SPAN><SPAN>½á¹¹£¬¸Ã½á¹¹µÄ</SPAN><SPAN><FONT face="Times New Roman">TEB</FONT></SPAN><SPAN>³ÉÔ±£¨ÆäÊµÊÇ</SPAN><SPAN><FONT face="Times New Roman">KTHREAD</FONT></SPAN><SPAN>ÖÐµÄ³ÉÔ±£¬¶ø</SPAN><SPAN><FONT face="Times New Roman">KTHREAD</FONT></SPAN><SPAN>ÓÖÊÇ</SPAN><SPAN><FONT face="Times New Roman">ETHREAD</FONT></SPAN><SPAN>µÄ³ÉÔ±£©ÊÇÓÃÀ´±£´æÏß³ÌµÄ</SPAN><SPAN><FONT face="Times New Roman">TEB</FONT></SPAN><SPAN>µØÖ·µÄ£¬µ±Ïß³ÌÇÐ»»Ê±£¬</SPAN><SPAN><FONT face="Times New Roman">Windows</FONT></SPAN><SPAN>¾Í»áÓÃ¸ÃÖµÀ´¸ü¸Ä</SPAN><SPAN><FONT face="Times New Roman">GDT</FONT></SPAN><SPAN>µÄ</SPAN><SPAN><FONT face="Times New Roman">0x30</FONT></SPAN><SPAN>¶ÎÃèÊö·ûµÄ»ùµØÖ·Öµ¡£</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt 21pt"><FONT size=3><SPAN>ÏÂÃæ¾ÍÊÇ</SPAN><SPAN><FONT face="Times New Roman">WindowsXP SP2</FONT></SPAN><SPAN>ÔÚ</SPAN><SPAN><FONT face="Times New Roman">RING3</FONT></SPAN><SPAN>ÏÂ</SPAN><SPAN><FONT face="Times New Roman">FS</FONT></SPAN><SPAN>¶Î¼Ä´æÆ÷Ëù<STRONG style="COLOR: black; BACKGROUND-COLOR: rgb(255,102,255)">Ö¸Ïò</STRONG>µÄÊý¾Ý½á¹¹ºÍµØÖ·¡£</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3>_TIB</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT size=3><FONT face="Times New Roman"><SPAN>&nbsp;&nbsp; </SPAN>+0x000 NtTib<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: _NT_TIB</FONT></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<TABLE style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: auto auto auto 59.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR style="HEIGHT: 146.85pt">
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 309.15pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 146.85pt; BACKGROUND-COLOR: transparent" vAlign=top width=412>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">_NT_TIB</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x000 ExceptionList: Ptr32 _EXCEPTION_REGISTRATION_RECORD</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x004 StackBase<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x008 StackLimit<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x00c SubSystemTib<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x010 FiberData<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x010 Version<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Uint4B</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x014 ArbitraryUserPointer : Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman"><SPAN>&nbsp;&nbsp; </SPAN><SPAN></SPAN>+0x018 Self<SPAN> </SPAN><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>: Ptr32 _NT_TIB</FONT></SPAN></P></TD></TR></TBODY></TABLE>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P><BR>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt"><STRONG><SPAN style="FONT-SIZE: 12pt"><SPAN><FONT face="Times New Roman">¶þ£®<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt">ÔÚ</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt"><FONT face="Times New Roman">RING0</FONT></SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt">ÏÂÔËÐÐÊ±µÄ</SPAN></STRONG><STRONG><SPAN style="FONT-SIZE: 12pt"><FONT face="Times New Roman">FS</FONT></SPAN></STRONG></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><FONT size=3><SPAN>µ±Ïß³ÌÔËÐÐÔÚ</SPAN><SPAN><FONT face="Times New Roman">Ring0</FONT></SPAN><SPAN>ÏÂÊ±£¬</SPAN><SPAN><FONT face="Times New Roman"> FS</FONT></SPAN><SPAN><STRONG style="COLOR: black; BACKGROUND-COLOR: rgb(255,102,255)">Ö¸Ïò</STRONG>µÄ¶ÎÊÇ</SPAN><SPAN><FONT face="Times New Roman">GDT</FONT></SPAN><SPAN>ÖÐµÄ</SPAN><SPAN><FONT face="Times New Roman">0x3B</FONT></SPAN><SPAN>¶Î¡£¸Ã¶ÎµÄ³¤¶ÈÒ²Îª</SPAN><SPAN><FONT face="Times New Roman">4K</FONT></SPAN><SPAN>£¬»ùµØÖ·Îª</SPAN><SPAN><FONT face="Times New Roman">0xFFDFF000</FONT></SPAN><SPAN>¡£¸ÃµØÖ·<STRONG style="COLOR: black; BACKGROUND-COLOR: rgb(255,102,255)">Ö¸Ïò</STRONG>ÏµÍ³µÄ´¦ÀíÆ÷¿ØÖÆÇøÓò£¨</SPAN><SPAN><FONT face="Times New Roman">KPCR</FONT></SPAN><SPAN>£©¡£Õâ¸öÇøÓòÖÐ±£´æÕâ´¦ÀíÆ÷Ïà¹ØµÄÒ»Ð©ÖØÒªÊý¾ÝÖµ£¬Èç</SPAN><SPAN><FONT face="Times New Roman">GDT</FONT></SPAN><SPAN>¡¢</SPAN><SPAN><FONT face="Times New Roman">IDT</FONT></SPAN><SPAN>±íµÄÖµµÈµÈ¡£ÏÂÃæ¾ÍÊÇ</SPAN><SPAN><FONT face="Times New Roman">WindowsXP sp2</FONT></SPAN><SPAN>ÖÐµÄ</SPAN><SPAN><FONT face="Times New Roman">KPCR</FONT></SPAN><SPAN>Êý¾Ý½á¹¹£º</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3>_KPCR</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT size=3><FONT face="Times New Roman"><SPAN>&nbsp;&nbsp; </SPAN>+0x000 NtTib<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: _NT_TIB</FONT></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<TABLE style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: auto auto auto 59.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR style="HEIGHT: 146.85pt">
<TD style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 309.15pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 146.85pt; BACKGROUND-COLOR: transparent" vAlign=top width=412>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">_NT_TIB</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x000 ExceptionList: Ptr32 _EXCEPTION_REGISTRATION_RECORD</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x004 StackBase<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x008 StackLimit<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x00c SubSystemTib<SPAN>&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x010 FiberData<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x010 Version<SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>: Uint4B</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman">+0x014 ArbitraryUserPointer : Ptr32 Void</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 9pt"><FONT face="Times New Roman"><SPAN>&nbsp;&nbsp; </SPAN><SPAN></SPAN>+0x018 Self<SPAN>&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>: Ptr32 _NT_TIB</FONT></SPAN></P></TD></TR></TBODY></TABLE>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P><BR>
<P style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN><FONT face="Times New Roman" size=3></FONT></SPAN></P>
<P><SPAN style="FONT-SIZE: 10.5pt">ÔÚ</SPAN><SPAN style="FONT-SIZE: 10.5pt">WindowsXP</SPAN><SPAN style="FONT-SIZE: 10.5pt">ÖÐ£¬Ðí¶à²Ù×÷ÏµÍ³µÄÏµÍ³±äÁ¿µØÖ·Öµ±£´æÔÚÒÔ</SPAN><SPAN style="FONT-SIZE: 10.5pt">KPCR</SPAN><SPAN style="FONT-SIZE: 10.5pt">¿ªÊ¼µÄÊý¾Ý½á¹¹ÖÐ£¨¿ÉÒÔ²Î¿´ÏÂÍ¼£©¡£×¢Òâ£¬ÕâÊÇÔÚ</SPAN><SPAN style="FONT-SIZE: 10.5pt">WindowsXP</SPAN><SPAN style="FONT-SIZE: 10.5pt">ÏÂ£¬¶øÔÚ</SPAN><SPAN style="FONT-SIZE: 10.5pt">WIN2000</SPAN><SPAN style="FONT-SIZE: 10.5pt">ÏÂÊÇÃ»ÓÐÕâÖÐÇé¿ö¡£ÓÐÐËÈ¤µÄ¶ÁÕß¿ÉÒÔ¿´Ò»ÏÂ</SPAN><SPAN style="FONT-SIZE: 10.5pt"><A href="http://www.rootkit.com/">www.rootkit.com</A></SPAN><SPAN style="FONT-SIZE: 10.5pt">ÏÂµÄÏà¹ØÎÄÕÂ¡£</SPAN> </P>
<P><SPAN><IMG src="http://p.blog.csdn.net/images/p_blog_csdn_net/misterliwei/A16.JPG"></SPAN></P></div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/469144200852092146899</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/469144200852092146899</guid>
    <pubDate>Fri, 20 Jun 2008 21:21:46 +0800</pubDate>
    <dcterms:modified>2008-06-20T21:21:46+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[¹ØÓÚÊ¹ÓÃFS¼Ä´æÆ÷µÄÒÉ»ó Ï×¸øÏñÎÒÃÇÕâÑùµÄ²ËÄñ]]></title>	
    <link>http://520yl.blog.163.com/blog/static/469144200852092048736</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">¹ØÓÚÊ¹ÓÃFS¼Ä´æÆ÷µÄÒÉ»ó Ï×¸øÏñÎÒÃÇÕâÑùµÄ²ËÄñ</P>
<P style="TEXT-INDENT: 2em">ÊÇÎÒÃ»ÓÐËµÃ÷°×£¬ÊÇÕâÑùµÄ£¬ÒòÎªWin32ÖÐµÄµØÖ·ÎªÆ½Ì¹Ä£Ê½£¬ds,ss,csµÈ¸÷¶ÎµÄ¶Î»ùµØÖ·¶¼Ö¸ÏòÍ¬Ò»¸öµØ·½£¬ËùÒÔÆ½³£ÓÃµÄÂß¼­µØÖ·¶¼ÊÇÄ¬ÈÏÒÔÕâÐ©¶ÎÎª»ùÖ·µÄ£¬²»¹ÜÊÇÊý¾Ý¶Î»¹ÊÇ´úÂë¶Î£¬Ö»ÒªËûÃÇµÄÆ«ÒÆÏàµÈ£¬ÄÇÃ´ËûÃÇ¾ÍÊÇÑ°Ö·Ò»ÑùµÄÎïÀíÄÚ´æ£¬ËùÒÔÎÒÃÇ¾ÍÖ»ÐèÖ¸Ã÷Æ«ÒÆ¾ÍÄÜµÃµ½Í³Ò»µÄÑ°Ö·Ä¿±ê£¬²»¹ÜÕâ¸öÄ¿±êÊÇÔÚ´úÂë¶Î»¹ÊÇÊý¾Ý¶Î»òÕß¶ÑÕ»¶ÎÖ®ÖÐ¡£WriteProcessMemoryÓÃµÄ¾ÍÊÇÕâÑùµÄ¡°Âß¼­µØÖ·¡±£¬Ïñ"0xXXXXXXXX"£¬ÆäÊµ£¬ÕâÑùµÄÂß¼­µØÖ·Êµ¼ÊÉÏÊÇÕâÑùµÄÐÎÊ½£ºds:XXXXXXXXX£¬Ö»ÒòÎªds=ss=cs£¬ËùÒÔ¿ÉÒÔÓÃds:XXXXXXXXXÀ´Ñ°Ö·cs:XXXXXXXX»òÕßss:XXXXXXXX£¬Ò²¾ÍÊÇÖ»ÐèÒªÖ¸¶¨Æ«ÒÆ¾Í×ã¹»Ñ°Ö·´úÂë¶Î»òÕßÊý¾Ý¶ÎÁË¡£µ«ÊÇÔÚwin32ÖÐ£¬fsÈ´ºÍ¸÷¸ö¶Î¼Ä´æÆ÷µÄÖµ²»Ò»Ñù£¬ËùÒÔÒªÏëÓÃdsÀ´Ñ°Ö·fsÖ¸ÏòµÄÄÚ´æ£¬ÄÇ¾ÍµÃ×ª»»Æ«ÒÆÁË£¬ÒòÎªfs:XXXXXXXXºÍds:XXXXXXXXÖ¸µÄ²¢²»ÊÇÍ¬ÑùµÄÄÚ´æ£»¶øÈç¹ûÓÃWriteProcessMemoryÑ°Ö·Ä³¸öµØÖ·Èç0xXXXXXXXXµÄ»°£¬ËüÄ¬ÈÏµÄÑ°Ö·È´ÊÇds:XXXXXXXX¡£&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;Æ«ÒÆ×ª»»µÄ·½·¨¾ÍÈçÎÒÉÏÃæ¸ø³öµÄ£¬ÏÂÃæÕâ¾ä»°&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;¡°&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;Èç£º&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;mov&nbsp; &nbsp;eax,dword&nbsp; &nbsp;ptr&nbsp; &nbsp;[12345678h+12345678h]&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;Ïàµ±ÓÚ&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;mov&nbsp; &nbsp;eax,dword&nbsp; &nbsp;ptr&nbsp; &nbsp;fs:[12345678h]&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;¡±&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;ÖÐµÄ&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;mov&nbsp; &nbsp;eax,dword&nbsp; &nbsp;ptr&nbsp; &nbsp;[12345678h+12345678h]&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;ÊÇÄ¬ÈÏµÄds¶ÎÑ°Ö·£¬ÆäÊµ¾ÍÊÇ&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;mov&nbsp; &nbsp;eax,dword&nbsp; &nbsp;ptr&nbsp; &nbsp;ds:[12345678h+12345678h]&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;¶øÕâ¾ä»°&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;mov&nbsp; &nbsp;eax,dword&nbsp; &nbsp;ptr&nbsp; &nbsp;fs:[12345678h]&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;ÊÇÇ¿ÖÆfs¶ÎÑ°Ö·£¬ÉÏÃæÏàµ±ÓÚËµ£¬fs¶ÎÑ°Ö·ÓÃµÄÆ«ÒÆ"12345678"×ª»»µ½ds¶ÎÑ°Ö·µÄ»°£¬¾ÍµÃÓÃ&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;×ª»»¹ýÀ´µÄ"12345678+12345678"Æ«ÒÆ</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[gk]]></author>
	    <comments>http://520yl.blog.163.com/blog/static/469144200852092048736</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://520yl.blog.163.com/blog/static/469144200852092048736</guid>
    <pubDate>Fri, 20 Jun 2008 21:20:48 +0800</pubDate>
    <dcterms:modified>2008-06-20T21:20:48+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[timeGetTime]]></title>	
    <link>http://520yl.blog.163.com/blog/static/4691442008518105620988</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">timeGetTime</P>
<P style="TEXT-INDENT: 2em">2007-12-28 10:35</P>
<P style="TEXT-INDENT: 2em">
<TABLE>
<TBODY>
<TR>
<TD>
<P></P>
<P style="TEXT-INDENT: 2em">ÀûÓÃ timeGetTime ¸ü¾«×¼µØ¼ÆËãÊ±¼ä²î</P>
<P style="TEXT-INDENT: 2em">ÎÒÏëÃ¿ 0.005 Ãë×öÄ³Ò»¼þ¹¤×÷£¬ ËùÒÔ×«Ð´ÁËÒÔÏÂ³ÌÐò£º</P>
<P style="TEXT-INDENT: 2em">Dim tm1 As Single</P>
<P style="TEXT-INDENT: 2em">Do</P>
<P style="TEXT-INDENT: 2em">tm1 = Timer</P>
<P style="TEXT-INDENT: 2em">While Timer - tm1 &lt; 0.005 ' µÈÓÚ 0.005 Ãë</P>
<P style="TEXT-INDENT: 2em">DoEvents</P>
<P style="TEXT-INDENT: 2em">Wend</P>
<P style="TEXT-INDENT: 2em">...×öÄ³Ò»¼þ¹¤×÷</P>
<P style="TEXT-INDENT: 2em">Loop</P>
<P style="TEXT-INDENT: 2em">µ«Êµ¼ÊÉÏ£¬ ÔÚ While Ñ­»·ÀïÃæ£¬ Timer º¯Êý¼¸ºõÃ¿´Î¶¼µÃµ½ÏàÍ¬µÄÊ±¼ä£¬Ö»ÓÐ</P>
<P style="TEXT-INDENT: 2em">´óÔ¼¸ôÁË 0.05Ãë²Å»áµÃµ½²»Í¬µÄÊ±¼ä£¬ Ò²¾ÍÊÇËµ Timer µÄ×¼È·ÐÔÖ»ÓÐ 0.05 Ãë£¬</P>
<P style="TEXT-INDENT: 2em">µ«ÎÒÏ£Íû½øÐÐµÄ¹¤×÷È´ÊÇÃ¿ 0.005 ÃëÒ»´Î£¬ ¸ÃÔõÃ´°ìÄØ£¿</P>
<P style="TEXT-INDENT: 2em">¿ÉÒÔ¸ÄÓÃ Windows API µÄ timeGetTime º¯Êý£¬ ´ËÒ»º¯Êý»á´«»Ø Windows ¿ª»úÒÔ</P>
<P style="TEXT-INDENT: 2em">À´Ëù¾­¹ýµÄÊ±¼ä£¬Ê±¼äµ¥Î»ÊÇ 1/1000 Ãë£¬ ¾ÙÀýÀ´Ëµ£¬ ¿ª»ú¾­¹ý 2 ·ÖÖÓ£¬ Ôò´«</P>
<P style="TEXT-INDENT: 2em">»ØÖµµÈÓÚ 2*60*1000£¬ timeGetTime µÄÓÅµãÊÇÊ±¼ä¿ÉÒÔ¾«È·µ½ 1/1000 Ãë£¬ ËùÒÔ</P>
<P style="TEXT-INDENT: 2em">¿ÉÒÔÓÃÀ´½â¾öÉÏÊöµÄÎÊÌâ£¬Ï¸½ÚÈçÏÂ£º</P>
<P style="TEXT-INDENT: 2em">1. API µÄÉ