<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>开心技术乐园 &#187; 编程乐园</title>
	<atom:link href="http://www.hack520.org/program/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hack520.org</link>
	<description>原创技术乐园</description>
	<lastBuildDate>Fri, 30 Jul 2010 09:27:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>『原创』Delphi7完美精简版下载</title>
		<link>http://www.hack520.org/delphi7-lite</link>
		<comments>http://www.hack520.org/delphi7-lite#comments</comments>
		<pubDate>Tue, 22 Jun 2010 10:00:13 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[极品软件]]></category>
		<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[精简版]]></category>

		<guid isPermaLink="false">http://www.hack520.org/%e3%80%8e%e5%8e%9f%e5%88%9b%e3%80%8fdelphi7%e5%ae%8c%e7%be%8e%e7%b2%be%e7%ae%80%e7%89%88%e4%b8%8b%e8%bd%bd</guid>
		<description><![CDATA[
　　这个Delphi7精简版是我前段时间边学习NSIS边打包制作的。在制作的过程我主要还是学习了NSIS打包工具的使用，在这之前我从来没用打包工具制作过安装包。所以在网上看了点技术资料自己慢慢摸索着做的，打包工具有好多种，我用的是非常有名的NSIS。简单的安装包制作并不难，下次我写一下详细的教程以帮助菜鸟，因为感觉这方面的资料也不是很多。学会了用打包工具制作安装包，以后我有时间会多制作一些绿色的、精简的、纯净的软件。

　　我知道很多人都喜欢用Delphi 7，我也不例外，这版本最经典了。这个Delphi7完美精简版是我根据Borland Delphi 7.0制作，仅5.46MB！免注册，包含了Delphi基本组件和ADO组件，实现了Delphi的基本功能，安装很简单，卸载也很干净，希望大家会喜欢！当然了，精简版的Delphi 7只备临时之需，开发小程序还是没有问题的（因为我集成了很多常用的组件），比如你在网吧或者其它没有安装Delphi的场所，而你刚好要用Delphi写个小程序。
　　安装过程截图：





　　Delphi在Windows 7下的使用说明。这个Delphi7精简版经我测试完全可以在Windows 7下正常使用。但是要注意一点，最好是不要把它安装在C盘，因为Windows 7的C盘默认有权限控制，普通用户运行Delphi将无法生成Project。所以最好安装在除C盘以外的盘符，当然你默认安装在C盘也没有关系，给予它管理员权限就行了。

　　本站会员下载Delphi7完美精简版 — 
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.hack520.org/2010-06/delphi/1.png" class="aligncenter" alt="Delphi精简版" title="Delphi精简版"/></p>
<p>　　这个Delphi7精简版是我前段时间边学习NSIS边打包制作的。在制作的过程我主要还是学习了NSIS打包工具的使用，在这之前我从来没用打包工具制作过安装包。所以在网上看了点技术资料自己慢慢摸索着做的，打包工具有好多种，我用的是非常有名的NSIS。简单的安装包制作并不难，下次我写一下详细的教程以帮助菜鸟，因为感觉这方面的资料也不是很多。学会了用打包工具制作安装包，以后我有时间会多制作一些绿色的、精简的、纯净的软件。</p>
<p><span id="more-520"></span><br />
　　我知道很多人都喜欢用Delphi 7，我也不例外，这版本最经典了。这个Delphi7完美精简版是我根据Borland Delphi 7.0制作，仅5.46MB！免注册，包含了Delphi基本组件和ADO组件，实现了Delphi的基本功能，安装很简单，卸载也很干净，希望大家会喜欢！当然了，精简版的Delphi 7只备临时之需，开发小程序还是没有问题的（因为我集成了很多常用的组件），比如你在网吧或者其它没有安装Delphi的场所，而你刚好要用Delphi写个小程序。</p>
<p>　　安装过程截图：<br />
<img src="http://img.hack520.org/2010-06/delphi/2.png" class="aligncenter" alt="Delphi精简版" title="Delphi精简版"/><br />
<img src="http://img.hack520.org/2010-06/delphi/3.png" class="aligncenter" alt="Delphi精简版" title="Delphi精简版"/><br />
<img src="http://img.hack520.org/2010-06/delphi/4.png" class="aligncenter" alt="Delphi精简版" title="Delphi精简版"/><br />
<img src="http://img.hack520.org/2010-06/delphi/5.png" class="aligncenter" alt="Delphi精简版" title="Delphi精简版"/><br />
<img src="http://img.hack520.org/2010-06/delphi/6.png" class="aligncenter" alt="Delphi精简版" title="Delphi精简版"/></p>
<p>　　<strong>Delphi在Windows 7下的使用说明。</strong>这个Delphi7精简版经我测试完全可以在Windows 7下正常使用。但是要注意一点，最好是不要把它安装在C盘，因为Windows 7的C盘默认有权限控制，普通用户运行Delphi将无法生成Project。所以最好安装在除C盘以外的盘符，当然你默认安装在C盘也没有关系，给予它管理员权限就行了。<br />
<img src="http://img.hack520.org/2010-06/delphi/7.png" class="aligncenter" alt="Delphi精简版" title="Delphi在Windows7下运行"/></p>
<p>　　本站会员下载Delphi7完美精简版 — <a href="http://www.hack520.org/wp-login.php">注册为本站会员即可下载，若已注册请登陆。</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/delphi7-lite/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delphi启动提示Error“Can&#8217;t load package Bin\dclite70.bpl”的解决方法</title>
		<link>http://www.hack520.org/delphi-cant-load-package</link>
		<comments>http://www.hack520.org/delphi-cant-load-package#comments</comments>
		<pubDate>Mon, 22 Mar 2010 08:59:03 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.hack520.org/delphi-cant-load-package</guid>
		<description><![CDATA[
　　上个星期五在虚拟实验室Windows Server 2003里安装全新的Delphi 7.0企业版，安装方法没什么好说的，都安装过不知道多少遍了。可是这一次安装比较奇怪，安装完成之后启动Delphi7，居然显示“Can&#8217;t load package d:\delphi7\Bin\dclite70.bpl.Access violation at address……”，如下图：
　　以前安装同样的Delphi7没有这个问题的，而且我的Windows 2003是干净的，怎么会出现这个问题的呢？网上一搜，找到解决方法：

　　1、右击“我的电脑”。单击“属性”;
　　2、在“系统属性”中单击“高级”;
　　3、在“性能”中单击“设置”;
　　4、在“性能选项”中单击“数据执行保护”;
　　5、单击“添加”。选择Delphi7安装目录，然后到Bin目录下选择Delphi32.exe。
　　应用重启Delphi即可。全是Window2003的Data Execution Prevention（DEF数据执行保护）造成的。
　　那么，什么是数据执行保护 (DEP) ？
　　引用数据执行保护 (DEP) 是 Microsoft Windows XP Service Pack 2 (SP2) /Windows2003支持的一种处理器功能，它禁止在标记为数据存储的内存区域中执行代码。此功能也称作“不执行”和“执行保护”。当尝试运行标记的数据页中的代码时，就会立即发生异常并禁止执行代码。这可以防止攻击者使用代码致使数据缓冲区溢出，然后执行该代码。数据执行保护 (DEP) 有助于防止病毒和其他安全威胁造成破坏，它们的攻击方法是从只有 Windows 和其他程序可以使用的内存位置执行恶意代码。
　　也就是说，这个DEF数据执行保护是MS为了防范其系统中不知哪处的漏洞而被攻击者利用来制造数据缓冲区溢出而达到攻击入侵的目的的。而默认是执行保护的，所以给Delphi7造成这个错误。
　　应该说上面的回答已经很完整了，我也没什么好补充的。可是还有一个遗留的问题，就是为什么以前我在Windows 2003上安装没有这个问题呢？我一想，原因就是我以前用的Windows 2003不是原版的纯净系统，是被优化处理过的，把数据执行保护给“处理”掉了。而我现在的Windows 2003系统是Windows.Server.2003.R2.Ent.With.Sp2.CHS.VOL.MSDN，原版纯净的，所以系统的数据执行保护功能正常，才会导致Delphi的以上错误。
]]></description>
			<content:encoded><![CDATA[<p><img alt="delphi" src="http://img.hack520.org/2010-03/delphi.png" title="delphi Can't load package " class="aligncenter" width="503" height="133" /></p>
<p>　　上个星期五在虚拟实验室Windows Server 2003里安装全新的Delphi 7.0企业版，安装方法没什么好说的，都安装过不知道多少遍了。可是这一次安装比较奇怪，安装完成之后启动Delphi7，居然显示“Can&#8217;t load package d:\delphi7\Bin\dclite70.bpl.Access violation at address……”，如下图：</p>
<p>　　以前安装同样的Delphi7没有这个问题的，而且我的Windows 2003是干净的，怎么会出现这个问题的呢？网上一搜，找到解决方法：</p>
<p><span id="more-503"></span></p>
<p>　　1、右击“我的电脑”。单击“属性”;<br />
　　2、在“系统属性”中单击“高级”;<br />
　　3、在“性能”中单击“设置”;<br />
　　4、在“性能选项”中单击“数据执行保护”;<br />
　　5、单击“添加”。选择Delphi7安装目录，然后到Bin目录下选择Delphi32.exe。</p>
<p>　　应用重启Delphi即可。全是Window2003的Data Execution Prevention（DEF数据执行保护）造成的。</p>
<p>　　那么，什么是数据执行保护 (DEP) ？</p>
<p>　　引用数据执行保护 (DEP) 是 Microsoft Windows XP Service Pack 2 (SP2) /Windows2003支持的一种处理器功能，它禁止在标记为数据存储的内存区域中执行代码。此功能也称作“不执行”和“执行保护”。当尝试运行标记的数据页中的代码时，就会立即发生异常并禁止执行代码。这可以防止攻击者使用代码致使数据缓冲区溢出，然后执行该代码。数据执行保护 (DEP) 有助于防止病毒和其他安全威胁造成破坏，它们的攻击方法是从只有 Windows 和其他程序可以使用的内存位置执行恶意代码。<br />
　　也就是说，这个DEF数据执行保护是MS为了防范其系统中不知哪处的漏洞而被攻击者利用来制造数据缓冲区溢出而达到攻击入侵的目的的。而默认是执行保护的，所以给Delphi7造成这个错误。</p>
<p>　　应该说上面的回答已经很完整了，我也没什么好补充的。可是还有一个遗留的问题，就是为什么以前我在Windows 2003上安装没有这个问题呢？我一想，原因就是我以前用的Windows 2003不是原版的纯净系统，是被优化处理过的，把数据执行保护给“处理”掉了。而我现在的Windows 2003系统是Windows.Server.2003.R2.Ent.With.Sp2.CHS.VOL.MSDN，原版纯净的，所以系统的数据执行保护功能正常，才会导致Delphi的以上错误。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/delphi-cant-load-package/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delphi7的完美注册与破解 &#8211; 去除启动画面里的“Unregistered”</title>
		<link>http://www.hack520.org/delphi7-register</link>
		<comments>http://www.hack520.org/delphi7-register#comments</comments>
		<pubDate>Fri, 05 Jun 2009 08:43:44 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.hack520.org/delphi7%e7%9a%84%e5%ae%8c%e7%be%8e%e6%b3%a8%e5%86%8c%e4%b8%8e%e7%a0%b4%e8%a7%a3%e2%80%94%e5%8e%bb%e9%99%a4%e5%90%af%e5%8a%a8%e7%94%bb%e9%9d%a2%e9%87%8c%e7%9a%84%e2%80%9cunregistered%e2%80%9d</guid>
		<description><![CDATA[　　安装Delphi7的时候你是否在寻找注册码呢？找到注册码安装完成之后Delphi的启动画面是否还是有“Unregistered”的字样呢？如下图：


　　通过几次的尝试，我发现可以完美注册Delphi7.0，包括去除启动画面里的“Unregistered”字。
　　这里我提供两个注册机与一个补丁(在最下面下载)，使用方法如下：
　　1. Run setup.exe and start installing&#8230;
　　2. When it&#39;s time to enter the serial/key, use the included keygen.exe&#8230;
　　3. Uncheck *Install InterBase Client* when asked about it&#8230;
　　4. After the installation and before starting the software, overwrite dent.slip into your installed directory
   with the one provided&#8230;
　　5. Enjoy!
　　有点计算机英语基础的应该都看得懂吧？我解释一下。
　　1、首先运行Delphi7的安装程序Setup.exe；
　　2、当要输入注册码时，运行附件包里的注册机keygen.exe；
　　3、不勾选*Install InterBase Client*，也就是不安装InterBase客户端；
　　4、安装完成在启动Delphi之前，复制附件包里的dent.slip到Delphi7的安装目录进行覆盖；
　　5、这时启动Delphi7时就不会有任何关于要注册的对话框出现，启动画面里也没有了“Unregistered”。

　　Delphi7注册机与补丁打包下载：
　　本站会员点击下载 — 
]]></description>
			<content:encoded><![CDATA[<p>　　安装Delphi7的时候你是否在寻找注册码呢？找到注册码安装完成之后Delphi的启动画面是否还是有“Unregistered”的字样呢？如下图：</p>
<p><img alt="delphi7注册" src="http://img.hack520.org/attachments/month_0906/c2009658282.JPG" title="delphi7注册" class="aligncenter" width="462" height="312" /></p>
<p><span id="more-412"></span></p>
<p>　　通过几次的尝试，我发现可以完美注册Delphi7.0，包括去除启动画面里的“Unregistered”字。</p>
<p>　　这里我提供两个注册机与一个补丁(在最下面下载)，使用方法如下：</p>
<p>　　1. Run setup.exe and start installing&#8230;</p>
<p>　　2. When it&#39;s time to enter the serial/key, use the included keygen.exe&#8230;</p>
<p>　　3. Uncheck *Install InterBase Client* when asked about it&#8230;</p>
<p>　　4. After the installation and before starting the software, overwrite dent.slip into your installed directory<br />
   with the one provided&#8230;</p>
<p>　　5. Enjoy!</p>
<p>　　有点计算机英语基础的应该都看得懂吧？我解释一下。</p>
<p>　　1、首先运行Delphi7的安装程序Setup.exe；</p>
<p>　　2、当要输入注册码时，运行附件包里的注册机keygen.exe；</p>
<p>　　3、不勾选*Install InterBase Client*，也就是不安装InterBase客户端；</p>
<p>　　4、安装完成在启动Delphi之前，复制附件包里的dent.slip到Delphi7的安装目录进行覆盖；</p>
<p>　　5、这时启动Delphi7时就不会有任何关于要注册的对话框出现，启动画面里也没有了“Unregistered”。</p>
<p><img alt="delphi7注册" src="http://img.hack520.org/attachments/month_0905/v2009527975.JPG" title="delphi7注册" class="aligncenter" width="462" height="312" /></p>
<p>　　<strong>Delphi7注册机与补丁打包下载</strong>：</p>
<p>　　本站会员点击下载 — <a href="http://www.hack520.org/wp-login.php">注册为本站会员即可下载，若已注册请登陆。</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/delphi7-register/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《Delphi下深入Windows核心编程》PDF下载 &#8211; 献给Delphi编程高手</title>
		<link>http://www.hack520.org/delphi-windows-kernel-pdf</link>
		<comments>http://www.hack520.org/delphi-windows-kernel-pdf#comments</comments>
		<pubDate>Sat, 30 May 2009 16:06:36 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.hack520.org/%e3%80%8adelphi%e4%b8%8b%e6%b7%b1%e5%85%a5windows%e6%a0%b8%e5%bf%83%e7%bc%96%e7%a8%8b%e3%80%8b%e4%b8%8b%e8%bd%bd%e2%80%94%e7%8c%ae%e7%bb%99delphi%e7%bc%96%e7%a8%8b%e9%ab%98%e6%89%8b</guid>
		<description><![CDATA[
非常值得一看的Delphi关于Win32下的底层编程，我看了几篇，发现很多还看不懂，要努力喽！

《Delphi下深入Windows核心编程》内容简介：
　　《Delphi下深入Windows核心编程》是一本介绍Windows核心技术及高级技巧的专着。从系统内核编程出发，使用大量的例子帮助读者理解这些编程技术，讲述了线程同步及隐藏、系统钩子深入分析、读写物理磁盘的关键技术、读写物理内存和其他进程内存的核心技术、Windows 9x下调用16位实模式和保护模式代码的核心技术、直接读写端口技术、可执行文件加壳的技巧、PE结构分析、Ring0的实现、Windows API截取技术、屏幕取词技术等方面的内容。全书对热点源代码进行了深入剖析和讲解，同时本书汇聚了作者利用Soft-ICE跟踪调试经验，作者多年的编程心得和技巧一览无遗。随书附送的光盘提供了书中涉及的程序源代码。本书可对Windows核心编程感兴趣者提供帮助，亦可供广大编程人员及各大专院校师生参考。
《Delphi下深入Windows核心编程》书籍目录：
第1章　DLL与数据共导
　　1．1　关于DLL
　　　　1．1．1　DLL的结构
　　　　1．1．2　DLL数据作用范围
　　1．2　内存映像
　　　　1．2．1　创建映射档
　　　　1．2．2　打开映射文件
　　　　1．2．3　映射到本进程中
　　　　1．2．4　关闭内存映像
　　　　1．2．5　两个EXE文件共享内存数据块
　　　　1．2．6　两个DLL文件共享内存数据块
　　1．3　16位和32位进程间传送消息
　　　　1．3．1　全局原子实现资料共享
　　　　1．3．2　WM_COPYDATA消息实现进程间数据共享
第2章　钩子原理
　　2．1　钩子原理
　　　　2．1．1　挂钩函数
　　　　2．1．2　钩子链
　　　　2．1．3　脱钩
　　2．2　消息及DLL的注入
　　　　2．2．1　自定义消息截取
　　　　2．2．2档或串井口读写监视钩子
　　23　Shell钩子
　　　　2．3．1　实现钩子
　　　　2．3．2　注册钩子
　　　　2．3．3　实现步骤
　　　　2．3．4　完整代码
　　24　鼠标键盘钩子
　　　　2．4．1　效果不错的鼠标钩子
　　　　2．4．2　鼠标键盘的动作记录与回放
　　　　2．4．3　黑客常用工具——键盘钩子
　　　　2．4．4　非DLL键盘监视的两种方法
第3章　系统内核
　　3．1　内核对象
　　3．2　进程
　　　　3．2．1　进程在内存的结构
　　　　3．2．2　进程列举
　　　　3．2．3　Windows NT/2000下列举进程的方法
　　　　3．2．4　进程模块的列举
　　　　3．2．5　终止进程
　　　　3．2．6　创建进程并监视进程运行
　　3．3　进程隐藏深入剖析
　　　　3．3．1　进程隐藏原理
　　　　3．3．2　Windows 9x下进程的伪隐藏
　　　　3．3．3　用叁级跳实现真隐藏
　　　　3．3．4　Windows NT/2000进程远程写入实现深度隐藏
　　3．4　线程
　　　　3．4．1　线程的优先级
　　　　3．4．2　线程的挂起和继续
　　　　3．4．3　执行线程
　　　　3．4．4　线程同步
　　　　3．4．5　列举本进程的所有线程
　　3．5　Windows NT/2000的性能数据库
　　　　3．5．1　性能数据库的对象、计数器及实例
　　　　3．5．2　浏览性能数据库
第4章　低层操作
　　4．1　中断
　　4．2　内嵌汇编
　　　　4．2．1　汇编入口与退出
　　　　4．2．2　使用汇编
　　　　4．2．3　嵌入汇编程序
　　4．3　Ring0特权及埠直接IO
　　　　4．3．1　Ring0特权的获取
　　　　4．3．2　关于VxD
　　　　4．3．3　Windows 9x下的时间变速（变速齿轮）
　　4．4　端日读写驱动PortTalk
　　　　4．4．1　PortTalk与Delphi的界面
　　　　4．4．2　Windows NT/2000下的时间变速（变速齿轮）
　　4．5　Thunk机制
　　　　4．5．1　Flat Thunk（直接替换）
　　　　4．5．2　Generic Thunk（通用替换）
第5章　磁盘读写
第6章　回收站和IE
第7章　高级应用
第8章　PE结构分析
第9章　内存管理
第10章　API Hook及屏幕取词
《Delphi下深入Windows核心编程》PDF电子书下载
 《Delphi下深入Windows核心编程》原书光盘代码下载
]]></description>
			<content:encoded><![CDATA[<p><img alt="Delphi下深入Windows核心编程" src="http://img.hack520.org/attachments/month_0905/n2009530155453.jpg" title="Delphi下深入Windows核心编程" class="aligncenter" width="350" height="500" /></p>
<p>非常值得一看的Delphi关于Win32下的底层编程，我看了几篇，发现很多还看不懂，要努力喽！</p>
<p><span id="more-403"></span></p>
<p><strong>《Delphi下深入Windows核心编程》</strong>内容简介：</p>
<blockquote><p>　　《Delphi下深入Windows核心编程》是一本介绍Windows核心技术及高级技巧的专着。从系统内核编程出发，使用大量的例子帮助读者理解这些编程技术，讲述了线程同步及隐藏、系统钩子深入分析、读写物理磁盘的关键技术、读写物理内存和其他进程内存的核心技术、Windows 9x下调用16位实模式和保护模式代码的核心技术、直接读写端口技术、可执行文件加壳的技巧、PE结构分析、Ring0的实现、Windows API截取技术、屏幕取词技术等方面的内容。全书对热点源代码进行了深入剖析和讲解，同时本书汇聚了作者利用Soft-ICE跟踪调试经验，作者多年的编程心得和技巧一览无遗。随书附送的光盘提供了书中涉及的程序源代码。本书可对Windows核心编程感兴趣者提供帮助，亦可供广大编程人员及各大专院校师生参考。</p></blockquote>
<p><strong>《Delphi下深入Windows核心编程》</strong>书籍目录：</p>
<p>第1章　DLL与数据共导<br />
　　1．1　关于DLL<br />
　　　　1．1．1　DLL的结构<br />
　　　　1．1．2　DLL数据作用范围<br />
　　1．2　内存映像<br />
　　　　1．2．1　创建映射档<br />
　　　　1．2．2　打开映射文件<br />
　　　　1．2．3　映射到本进程中<br />
　　　　1．2．4　关闭内存映像<br />
　　　　1．2．5　两个EXE文件共享内存数据块<br />
　　　　1．2．6　两个DLL文件共享内存数据块<br />
　　1．3　16位和32位进程间传送消息<br />
　　　　1．3．1　全局原子实现资料共享<br />
　　　　1．3．2　WM_COPYDATA消息实现进程间数据共享<br />
第2章　钩子原理<br />
　　2．1　钩子原理<br />
　　　　2．1．1　挂钩函数<br />
　　　　2．1．2　钩子链<br />
　　　　2．1．3　脱钩<br />
　　2．2　消息及DLL的注入<br />
　　　　2．2．1　自定义消息截取<br />
　　　　2．2．2档或串井口读写监视钩子<br />
　　23　Shell钩子<br />
　　　　2．3．1　实现钩子<br />
　　　　2．3．2　注册钩子<br />
　　　　2．3．3　实现步骤<br />
　　　　2．3．4　完整代码<br />
　　24　鼠标键盘钩子<br />
　　　　2．4．1　效果不错的鼠标钩子<br />
　　　　2．4．2　鼠标键盘的动作记录与回放<br />
　　　　2．4．3　黑客常用工具——键盘钩子<br />
　　　　2．4．4　非DLL键盘监视的两种方法<br />
第3章　系统内核<br />
　　3．1　内核对象<br />
　　3．2　进程<br />
　　　　3．2．1　进程在内存的结构<br />
　　　　3．2．2　进程列举<br />
　　　　3．2．3　Windows NT/2000下列举进程的方法<br />
　　　　3．2．4　进程模块的列举<br />
　　　　3．2．5　终止进程<br />
　　　　3．2．6　创建进程并监视进程运行<br />
　　3．3　进程隐藏深入剖析<br />
　　　　3．3．1　进程隐藏原理<br />
　　　　3．3．2　Windows 9x下进程的伪隐藏<br />
　　　　3．3．3　用叁级跳实现真隐藏<br />
　　　　3．3．4　Windows NT/2000进程远程写入实现深度隐藏<br />
　　3．4　线程<br />
　　　　3．4．1　线程的优先级<br />
　　　　3．4．2　线程的挂起和继续<br />
　　　　3．4．3　执行线程<br />
　　　　3．4．4　线程同步<br />
　　　　3．4．5　列举本进程的所有线程<br />
　　3．5　Windows NT/2000的性能数据库<br />
　　　　3．5．1　性能数据库的对象、计数器及实例<br />
　　　　3．5．2　浏览性能数据库<br />
第4章　低层操作<br />
　　4．1　中断<br />
　　4．2　内嵌汇编<br />
　　　　4．2．1　汇编入口与退出<br />
　　　　4．2．2　使用汇编<br />
　　　　4．2．3　嵌入汇编程序<br />
　　4．3　Ring0特权及埠直接IO<br />
　　　　4．3．1　Ring0特权的获取<br />
　　　　4．3．2　关于VxD<br />
　　　　4．3．3　Windows 9x下的时间变速（变速齿轮）<br />
　　4．4　端日读写驱动PortTalk<br />
　　　　4．4．1　PortTalk与Delphi的界面<br />
　　　　4．4．2　Windows NT/2000下的时间变速（变速齿轮）<br />
　　4．5　Thunk机制<br />
　　　　4．5．1　Flat Thunk（直接替换）<br />
　　　　4．5．2　Generic Thunk（通用替换）<br />
第5章　磁盘读写<br />
第6章　回收站和IE<br />
第7章　高级应用<br />
第8章　PE结构分析<br />
第9章　内存管理<br />
第10章　API Hook及屏幕取词</p>
<p><a href="ed2k://|file|Delphi.%E4%B8%8B%E6%B7%B1%E5%85%A5Windows%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B.pdf|59886291|0d808a5794b09032a9ec943788a57105|" target="_blank">《Delphi下深入Windows核心编程》PDF电子书下载</a></p>
<p> <a href="ed2k://|file|Delphi.%E4%B8%8B%E6%B7%B1%E5%85%A5Windows%E6%A0%B8%E5%BF%83%E7%BC%96%E7%A8%8B.%E5%8E%9F%E4%B9%A6%E5%85%89%E7%9B%98%E4%BB%A3%E7%A0%81.rar|9507826|f4a9392bd5c4e77de6b1213384485e5b|<br />
" target="_blank">《Delphi下深入Windows核心编程》原书光盘代码下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/delphi-windows-kernel-pdf/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delphi编程中出现“File not found”的完全解决方法</title>
		<link>http://www.hack520.org/delphi-file-not-found</link>
		<comments>http://www.hack520.org/delphi-file-not-found#comments</comments>
		<pubDate>Wed, 27 May 2009 09:09:16 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.hack520.org/delphi%e7%bc%96%e7%a8%8b%e4%b8%ad%e5%87%ba%e7%8e%b0%e2%80%9cfile-not-found%e2%80%9d%e7%9a%84%e5%ae%8c%e5%85%a8%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95</guid>
		<description><![CDATA[
　　今天在用Delphi精简版编程的时候出现了错误的提示File not found: &#39;Tlhelp32.dcu&#39;。唉…谁叫我用的是精简版呢？！怎么解决呢？去下一个完整版的Delphi7喽！不行啊，实习单位里的电脑网速巨慢，一百五六十M的安装包不知道要下到何年何月。看看我的解决方法：

　　首先下载Tlhelp32.dcu，去哪里下载呢？找了好久都没找到，后来我在Google里输入“Tlhelp32.dcu Download”，就OK了！下载地址在这里：　
http://download.prow.pwszjar.edu.pl/index.php?sort=type&#38;path=Delphi7_Personal/Install/program%20files/Borland/Delphi7/Lib/
　　这个老外的网站真好，上面有Delphi7所有的库文件，可以分个下载。
　　下载下来之后有两种方法把控件导入，
一、把下载下来的Tlhelp32.dcu放入Delphi精简版的Lib目录。
二、打开菜单Tools->Environment Options，然后在Library选项卡中的Library Path中加入该控件的路径。
　　简单吧？以此类推，Delphi中出现所有情况的[File not found: &#39;*.dcu&#39;]都可以用这种方法解决。
]]></description>
			<content:encoded><![CDATA[<p><img alt="Delphi File not found" src="http://img.hack520.org/attachments/month_0905/v2009527975.JPG" title="Delphi File not found" class="aligncenter" width="462" height="312" /></p>
<p>　　今天在用Delphi精简版编程的时候出现了错误的提示File not found: &#39;Tlhelp32.dcu&#39;。唉…谁叫我用的是精简版呢？！怎么解决呢？去下一个完整版的Delphi7喽！不行啊，实习单位里的电脑网速巨慢，一百五六十M的安装包不知道要下到何年何月。看看我的解决方法：</p>
<p><span id="more-399"></span></p>
<p>　　首先下载Tlhelp32.dcu，去哪里下载呢？找了好久都没找到，后来我在Google里输入“Tlhelp32.dcu Download”，就OK了！下载地址在这里：　</p>
<p><a target="_blank" href="http://www.hack520.org/go.php?url=http://download.prow.pwszjar.edu.pl/index.php?sort=type&amp;path=Delphi7_Personal/Install/program%20files/Borland/Delphi7/Lib/">http://download.prow.pwszjar.edu.pl/index.php?sort=type&amp;path=Delphi7_Personal/Install/program%20files/Borland/Delphi7/Lib/</a></p>
<p>　　这个老外的网站真好，上面有Delphi7所有的库文件，可以分个下载。</p>
<p>　　下载下来之后有两种方法把控件导入，</p>
<p>一、把下载下来的Tlhelp32.dcu放入Delphi精简版的Lib目录。</p>
<p>二、打开菜单Tools->Environment Options，然后在Library选项卡中的Library Path中加入该控件的路径。</p>
<p>　　简单吧？以此类推，Delphi中出现所有情况的[File not found: &#39;*.dcu&#39;]都可以用这种方法解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/delphi-file-not-found/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>昨晚研究了ASPJPEG，制作了一个梦寐已久的批量水印工具，甚爽！</title>
		<link>http://www.hack520.org/aspjpeg-watermark</link>
		<comments>http://www.hack520.org/aspjpeg-watermark#comments</comments>
		<pubDate>Sun, 12 Oct 2008 19:43:03 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[水印]]></category>

		<guid isPermaLink="false">http://www.hack520.org/%e6%98%a8%e6%99%9a%e7%a0%94%e7%a9%b6%e4%ba%86aspjpeg%ef%bc%8c%e5%88%b6%e4%bd%9c%e4%ba%86%e4%b8%80%e4%b8%aa%e6%a2%a6%e5%af%90%e5%b7%b2%e4%b9%85%e7%9a%84%e6%89%b9%e9%87%8f%e6%b0%b4%e5%8d%b0%e5%b7%a5</guid>
		<description><![CDATA[一、为图片添加水印
&#60;%
Dim Jpeg &#8221;&#8221;//声明变量
Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;) &#8221;&#8221;//调用组件
Jpeg.Open Server.MapPath(&#8220;aaa.JPG&#8221;) &#8221;&#8221;//源图片位置
Jpeg.Canvas.Font.Color = &#38;H000000 &#8221;&#8221;//水印字体颜色
Jpeg.Canvas.Font.Family = &#8220;宋体&#8221; &#8221;&#8221;//水印字体
Jpeg.Canvas.Font.Size = 14 &#8221;&#8221;//水印字体大小
Jpeg.Canvas.Font.Bold = False　&#8221;&#8221;//是否粗体，粗体用：True
Jpeg.Canvas.Font.BkMode = &#38;HFFFFFF &#8221;&#8221;//字体背景颜色
Jpeg.Canvas.Print 10, 10, &#8220;不败顽童工作室&#8221; &#8221;&#8221;//水印文字，两个数字10为水印的xy座标
Jpeg.Save Server.MapPath(&#8220;aaa_05.jpg&#8221;) &#8221;&#8221;//生成有水印的新图片及保存位置
Set Jpeg = Nothing &#8221;&#8221;//注销组件，释放资源
Response.Write &#8220;&#60;img src=aaa_05.jpg&#62;&#8221; &#8221;&#8221;//在该页显示生成水印后的图片
%&#62;

二、生成缩略图
&#60;%
Dim Jpeg &#8221;&#8221;//声明变量
Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;) &#8221;&#8221;//调用组件
Jpeg.Open Server.MapPath(&#8220;aaa.JPG&#8221;) &#8221;&#8221;//原图位置
Jpeg.Width = Jpeg.OriginalWidth/4 &#8221;&#8221;//设图片宽度为原图的四分之一
Jpeg.Height = Jpeg.OriginalHeight/4 &#8221;&#8221;//设图片高度为原图的四分之一
Jpeg.Sharpen 1, 130 &#8221;&#8221;//设定锐化效果
Jpeg.Save Server.MapPath(&#8220;aaa_small.jpg&#8221;) &#8221;&#8221;//生成缩略图位置及名称
Set [...]]]></description>
			<content:encoded><![CDATA[<p>一、为图片添加水印</p>
<p>&lt;%<br />
Dim Jpeg &#8221;&#8221;//声明变量</p>
<p>Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;) &#8221;&#8221;//调用组件</p>
<p>Jpeg.Open Server.MapPath(&#8220;aaa.JPG&#8221;) &#8221;&#8221;//源图片位置</p>
<p>Jpeg.Canvas.Font.Color = &amp;H000000 &#8221;&#8221;//水印字体颜色</p>
<p>Jpeg.Canvas.Font.Family = &#8220;宋体&#8221; &#8221;&#8221;//水印字体</p>
<p>Jpeg.Canvas.Font.Size = 14 &#8221;&#8221;//水印字体大小</p>
<p>Jpeg.Canvas.Font.Bold = False　&#8221;&#8221;//是否粗体，粗体用：True</p>
<p>Jpeg.Canvas.Font.BkMode = &amp;HFFFFFF &#8221;&#8221;//字体背景颜色</p>
<p>Jpeg.Canvas.Print 10, 10, &#8220;不败顽童工作室&#8221; &#8221;&#8221;//水印文字，两个数字10为水印的xy座标</p>
<p>Jpeg.Save Server.MapPath(&#8220;aaa_05.jpg&#8221;) &#8221;&#8221;//生成有水印的新图片及保存位置</p>
<p>Set Jpeg = Nothing &#8221;&#8221;//注销组件，释放资源</p>
<p>Response.Write &#8220;&lt;img src=aaa_05.jpg&gt;&#8221; &#8221;&#8221;//在该页显示生成水印后的图片<br />
%&gt;</p>
<p><span id="more-379"></span></p>
<p>二、生成缩略图</p>
<p>&lt;%<br />
Dim Jpeg &#8221;&#8221;//声明变量</p>
<p>Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;) &#8221;&#8221;//调用组件</p>
<p>Jpeg.Open Server.MapPath(&#8220;aaa.JPG&#8221;) &#8221;&#8221;//原图位置</p>
<p>Jpeg.Width = Jpeg.OriginalWidth/4 &#8221;&#8221;//设图片宽度为原图的四分之一</p>
<p>Jpeg.Height = Jpeg.OriginalHeight/4 &#8221;&#8221;//设图片高度为原图的四分之一</p>
<p>Jpeg.Sharpen 1, 130 &#8221;&#8221;//设定锐化效果</p>
<p>Jpeg.Save Server.MapPath(&#8220;aaa_small.jpg&#8221;) &#8221;&#8221;//生成缩略图位置及名称</p>
<p>Set Jpeg = Nothing &#8221;&#8221;//注销组件，释放资源</p>
<p>Response.Write &#8220;&lt;img src=aaa_small.jpg&gt;&#8221; &#8221;&#8221;//在该页显示生成缩略图<br />
%&gt;<br />
aspjpeg组件高级使用方法介绍</p>
<p>aspjpeg是一款非常强大的图片处理组件，纯英文版本。不过早已经有免费版和破解版，但是对其进行详细与深入介绍的文章却是不多，即使有也只牵涉到图片缩略和图片水印。可能是因为纯英文的缘故。</p>
<p>这里我就是针对这些问题谈谈aspjpeg的高级用法。这里的技术主要包括：<br />
图片缩略<br />
图片水印<br />
安全码技术<br />
图片切割<br />
图片合并<br />
数据库支持<br />
更多不常用的方法介绍<br />
以及相关的一些实用技术</p>
<p>aspjpeg唯一点不足的就是输出方式比较单一。在这里，我们主要谈将图片处理保存后再调用的这种输出方法。另外，本人比较懒，所以有些代码仍然引用于原文档，不懂的地方偶会加以解释！</p>
<p>学过vb或者.net的同志肯定一看就明白了。刷子来着。呵呵。</p>
<p>一、图片缩略</p>
<p>&lt;%<br />
Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;) 调用组件<br />
Path = Server.MapPath(&#8220;images&#8221;) &amp; &#8220;\clock.jpg&#8221; 待处理图片路径<br />
Jpeg.Open Path 打开图片<br />
高与宽为原图片的1/2<br />
Jpeg.Width = Jpeg.OriginalWidth / 2<br />
Jpeg.Height = Jpeg.OriginalHeight / 2<br />
保存图片<br />
Jpeg.Save Server.MapPath(&#8220;images&#8221;) &amp; &#8220;\clock_small.jpg&#8221;<br />
%&gt;<br />
&lt;IMG SRC=&#8221;images/clock_small.jpg&#8221;&gt; 查看处理的图片<br />
二、图片水印</p>
<p>&lt;%<br />
Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;)<br />
Jpeg.Open Server.MapPath(&#8220;images/dodge_viper.jpg&#8221;)<br />
开始写文字<br />
Jpeg.Canvas.Font.Color = &amp;H000000&#8221;&#8221; white 颜色<br />
Jpeg.Canvas.Font.Family = &#8220;Courier New&#8221; 字体<br />
Jpeg.Canvas.Font.Bold = True 是否加粗<br />
Jpeg.Canvas.Print 10, 10, &#8220;Copyright (c) XYZ, Inc.&#8221;<br />
打印坐标x 打印坐标y 需要打印的字符<br />
以下是对图片进行边框处理<br />
Jpeg.Canvas.Pen.Color = &amp;H000000&#8221;&#8221; black 颜色<br />
Jpeg.Canvas.Pen.Width = 2 画笔宽度<br />
Jpeg.Canvas.Brush.Solid = False 是否加粗处理<br />
Jpeg.Canvas.Bar 1, 1, Jpeg.Width, Jpeg.Height<br />
起始X坐标 起始Y坐标 输入长度 输入高度<br />
Jpeg.Save Server.MapPath(&#8220;images/dodge_viper_framed.jpg&#8221;) 保存<br />
%&gt;</p>
<p>三、安全码</p>
<p>安全玛的道理和加水印差不多，很多朋友问我要具体的代码技术，在这里我就写出来和大家分享，一般人我还不告诉他。呵呵。</p>
<p>&lt;%<br />
生成安全码的函数 <a href="http://www.wuyouw.com">www.wuyouw.com</a><br />
function make_randomize(max_len,w_n) max_len 生成长度，w_n：0 可能包含字母，1：只为数字<br />
randomize<br />
for intcounter=1 to max_len<br />
whatnext=int((1-0+1)*rnd+w_n)<br />
if whatnext=0 then<br />
upper=122<br />
lower=97<br />
else<br />
upper=57<br />
lower=48<br />
end if<br />
strnewpass=strnewpass &amp; chr(int((upper-lower+1)*rnd)+lower)<br />
next<br />
make_randomize=strnewpass<br />
end function<br />
%&gt;</p>
<p>生成安全码的图片。当然你要预先准备一张背景图哦</p>
<p>&lt;%random_num=make_randomize(4,1) 生成4位数字的安全码<br />
session(&#8220;random_num&#8221;)=random_num 为什么调用session，没有session的安全码是完全没有意义的。呵呵</p>
<p>Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;) 调用组件<br />
Jpeg.Open Server.MapPath(&#8220;infos/random_pic/random_index.gif&#8221;) 打开准备的图片<br />
Jpeg.Canvas.Font.Color = &amp;H006699<br />
Jpeg.Canvas.Font.Family = &#8220;Arial Black&#8221;<br />
Jpeg.Canvas.Font.Bold = false<br />
Jpeg.Canvas.PrintText 0, -2, random_num<br />
jpeg.save Server.MapPath(&#8220;infos/random_pic/random_index.bmp&#8221;) 保存<br />
%&gt;<br />
&lt;img src=&#8221;infos/random_pic/random_index.bmp&#8221; border=&#8221;0&#8243; align=&#8221;absmiddle&#8221;&gt;<br />
自己做做看。呵呵。</p>
<p>四、图片切割</p>
<p>一直以来，对aspjpeg不了解的人以为是无法用它来进行切割的。<br />
其实有这样的一个方法的<br />
crop x1,y1,x2,y2<br />
切割长方型左上角x坐标，y坐标 右下角x坐标 y坐标<br />
下面我就做一个演示哈<br />
Set Jpeg = Server.CreateObject(&#8220;Persits.Jpeg&#8221;)<br />
jpeg.open server.MapPath(&#8220;/pic/1.gif&#8221;)<br />
jpeg.width=70<br />
Jpeg.Height = Jpeg.OriginalHeight*70 / jpeg.Originawidth<br />
jpeg.crop 0,0,70,52 开始切割其实是把超过52象素的下部分去掉<br />
jpeg.save server.MapPath(&#8220;/temp_pic/small_1.gif&#8221;) 保存<br />
怎么样，很简单吧</p>
<p>五、图片合并</p>
<p>我们这里是要把logo图片加到dodge_viper.jpg图片上去<br />
其实，图片合并的方法也可以用来动态打水印哦<br />
Set Photo = Server.CreateObject(&#8220;Persits.Jpeg&#8221;)<br />
PhotoPath = Server.MapPath(&#8220;images&#8221;) &amp; &#8220;\dodge_viper.jpg&#8221;<br />
Photo.Open PhotoPath<br />
Set Logo = Server.CreateObject(&#8220;Persits.Jpeg&#8221;)<br />
LogoPath = Server.MapPath(&#8220;images&#8221;) &amp; &#8220;\clock.jpg&#8221;<br />
Logo.Open LogoPath</p>
<p>Logo.Width = 70<br />
Logo.Height = Logo.Width * Logo.OriginalHeight / Logo.OriginalWidth</p>
<p>Photo.DrawImage 0, 0, Logo</p>
<p>Photo.SendBinary 这里用了sendBinary的输出方法。当然，你也可以先保存更改后的dodge_viper.jpg，再输入也可以。我个人不大喜欢用sendBinary方法，在网速慢的时候容易出错。在速度方面也不怎样。呵呵。</p>
<p>六、数据库支持</p>
<p>这里不多说了。其实就是Binary方法，大家知道图片存进数据库只能存为二进制的文件的。所以代码就懒的写了。<br />
七、更多方法介绍</p>
<p>Canvas.Line(Left, Top, Right, Bottom)<br />
画一条直线<br />
Canvas.Ellipse(Left, Top, Right, Bottom)<br />
画出一个椭圆<br />
Canvas.Circle(X, Y, Radius)<br />
画出一个圆<br />
Canvas.Bar(Left, Top, Right, Bottom)<br />
画出一个长方形，上面有代码介绍了<br />
Canvas.Font.ShadowColor<br />
文字阴影颜色<br />
Canvas.Font.ShadowXOffset As Long<br />
阴影X坐标设定<br />
Canvas.Font.ShadowYOffset As Long<br />
Y坐标设定<br />
Canvas.Font.BkMode As String<br />
文字背景</p>
<p>========================================</p>
<p>今天给大家讲的是ASP给图片加水印的知识</p>
<p>ASP给图片加水印是需要组件的&#8230;常用的有aspjpeg和中国人自己开发的wsImage&#8230;前者有30天的免费&#8230;后者完全免费&#8230;当然我们要用国人的产品了..嘿嘿..</p>
<p>注册组件的方法:<br />
命令提示符下输入&#8221;regsvr32 [Dll路径]&#8221; 就可以了         <br />
图片添加水印无非就是获得图片大小,然后把水印写上去..ASP代码只是起个控制组件的作用.用代码来说明一切吧.</p>
<p>一:获得图片大小(这里是用象素值表示的.学PhotoShop的朋友都应该明白)<br />
&lt;%<br />
set obj=server.CreateObject(&#8220;wsImage.Resize&#8221;) &#8221;&#8221;&#8221;&#8221;调用组件<br />
obj.LoadSoucePic server.mappath(&#8220;25.jpg&#8221;)       &#8221;&#8221;&#8221;&#8221;打开图片,图片名字是25.jpg<br />
obj.GetSourceInfo iWidth,iHeight<br />
response.write &#8220;图片宽度:&#8221; &amp; iWidth &amp; &#8220;&lt;br&gt;&#8221;          &#8221;&#8221;&#8221;&#8221;获得图片宽度<br />
response.write &#8220;图片高度:&#8221; &amp; iHeight &amp; &#8220;&lt;br&gt;&#8221;          &#8221;&#8221;&#8221;&#8221;获得图片高度<br />
strError=obj.errorinfo<br />
if strError&lt;&gt;&#8221;" then<br />
response.write obj.errorinfo<br />
end if<br />
obj.free<br />
set obj=nothing<br />
%&gt;</p>
<p>二:添加文字水印</p>
<p>&lt;%<br />
set obj=server.CreateObject(&#8220;wsImage.Resize&#8221;)<br />
obj.LoadSoucePic server.mappath(&#8220;25.jpg&#8221;) &#8221;&#8221;&#8221;&#8221;装载图片<br />
obj.Quality=75<br />
obj.TxtMarkFont = &#8220;华文彩云&#8221;    &#8221;&#8221;&#8221;&#8221;设置水印文字字体<br />
obj.TxtMarkBond = false             &#8221;&#8221;&#8221;&#8221;设置水印文字的粗细<br />
obj.MarkRotate = 0       &#8221;&#8221;&#8221;&#8221;水印文字的旋转角度<br />
obj.TxtMarkHeight = 25    &#8221;&#8221;&#8221;&#8221;水印文字的高度<br />
obj.AddTxtMark server.mappath(&#8220;txtMark.jpg&#8221;), &#8220;带你离境&#8221;, &amp;H00FF00&amp;, 10, 70<br />
strError=obj.errorinfo       &#8221;&#8221;&#8221;&#8221;生成图片名字,文字颜色即水印在图片的位置<br />
if strError&lt;&gt;&#8221;" then<br />
response.write obj.errorinfo<br />
end if<br />
obj.free<br />
set obj=nothing<br />
%&gt;</p>
<p>三:添加图片水印</p>
<p>&lt;%<br />
set obj=server.CreateObject(&#8220;wsImage.Resize&#8221;)<br />
obj.LoadSoucePic server.mappath(&#8220;25.jpg&#8221;)          &#8221;&#8221;&#8221;&#8221;装载图片<br />
obj.LoadImgMarkPic server.mappath(&#8220;blend.bmp&#8221;)    &#8221;&#8221;&#8221;&#8221;装载水印图片<br />
obj.Quality=75<br />
obj.AddImgMark server.mappath(&#8220;imgMark.jpg&#8221;), 315, 220,&amp;hFFFFFF, 70<br />
strError=obj.errorinfo       &#8221;&#8221;&#8221;&#8221;生成图片名字,文字颜色即水印在图片的位置<br />
if strError&lt;&gt;&#8221;" then<br />
response.write obj.errorinfo<br />
end if<br />
obj.free<br />
set obj=nothing<br />
%&gt;</p>
<p>其实给图片添加水印就这么简单.然后我在说下WsImage.dll组件的另外两个主要用法.包括:<br />
剪裁图片,生成图片的缩略图.<br />
还是以我得习惯,用代码加注释说明:<br />
剪裁图片:</p>
<p>&lt;%<br />
set obj=server.CreateObject(&#8220;wsImage.Resize&#8221;)<br />
obj.LoadSoucePic server.mappath(&#8220;25.jpg&#8221;)<br />
obj.Quality=75<br />
obj.cropImage server.mappath(&#8220;25_crop.jpg&#8221;),100,10,200,200    &#8221;&#8221;&#8221;&#8221;定义裁减大小和生成图片名字<br />
strError=obj.errorinfo<br />
if strError&lt;&gt;&#8221;" then<br />
response.write obj.errorinfo<br />
end if<br />
obj.free<br />
set obj=nothing<br />
%&gt;</p>
<p>详细注释:裁减图片用到了WsImage的CropImage方法.其中定义生成图片时候,100,10是左上角的裁减点,即离图片左边是100象素,顶端10象素.后两个200代表的是裁减的宽带和高和高度.</p>
<p>生成图片缩略图:</p>
<p>&lt;%<br />
set obj=server.CreateObject(&#8220;wsImage.Resize&#8221;)<br />
obj.LoadSoucePic server.mappath(&#8220;25.jpg&#8221;)    &#8221;&#8221;&#8221;&#8221;加载图片<br />
obj.Quality=75<br />
obj.OutputSpic server.mappath(&#8220;25_s.jpg&#8221;),0.5,0.5,3    &#8221;&#8221;&#8221;&#8221;定义缩略图的名字即大小<br />
strError=obj.errorinfo<br />
if strError&lt;&gt;&#8221;" then<br />
response.write obj.errorinfo<br />
end if<br />
obj.free<br />
set obj=nothing<br />
%&gt;</p>
<p>详细说明:</p>
<p>产生缩略图共有四种导出方式：</p>
<p>(1) obj.OutputSpic server.mappath(&#8220;25_s.jpg&#8221;),200,150,0<br />
200为输出宽，150为输出高，这种输出形式为强制输出宽高，可能引起图片变形。</p>
<p>(2) obj.OutputSpic server.mappath(&#8220;25_s.jpg&#8221;),200,0,1<br />
以200为输出宽，输出高将随比列缩放。</p>
<p>(3) obj.OutputSpic server.mappath(&#8220;25_s.jpg&#8221;),0,200,2<br />
以200为输出高，输出宽将随比列缩放。</p>
<p>(4) obj.OutputSpic server.mappath(&#8220;25_s.jpg&#8221;),0.5,0.5,3<br />
第一个0.5表示生成的缩略图是原图宽的一半，即表示宽缩小比例。<br />
第二个0.5表示生成的缩略图是原图高的一半，即表示高缩小比例。<br />
宽高的缩小比例一致意味着将对原图进行比例缩小。宽高的缩放比例如果大于1，则对原图进行放大。</p>
<p>昨天晚上搞到12点半，早上起床继续增强优化，写了这个ASP批量水印工具，这种水印效果是我梦寐已久的，甚爽！</p>
<p><img class="aligncenter" title="aspjpeg水印" src="http://img.hack520.org/attachments/month_0810/820081012191951.png" alt="aspjpeg水印" width="568" height="364" /><span style="font-size: 9pt;"> </span></p>
<p>水印效果如下：</p>
<p><img class="aligncenter" title="aspjpeg水印" src="http://img.hack520.org/attachments/month_0810/320081012194120.jpg" alt="aspjpeg水印" width="670" height="502" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/aspjpeg-watermark/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>VBS列举当进程及进程路径</title>
		<link>http://www.hack520.org/vbs-list-process</link>
		<comments>http://www.hack520.org/vbs-list-process#comments</comments>
		<pubDate>Thu, 09 Oct 2008 13:44:19 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[VBS]]></category>

		<guid isPermaLink="false">http://www.hack520.org/vbs%e7%bc%96%e7%a8%8b%e5%88%97%e4%b8%be%e5%bd%93%e5%89%8d%e6%ad%a3%e5%9c%a8%e8%bf%90%e8%a1%8c%e7%9a%84%e8%bf%9b%e7%a8%8b%e5%8f%8a%e5%85%b6%e8%b7%af%e5%be%84</guid>
		<description><![CDATA[
　　VBS编写的小程序，列举当前正在运行的进程，显示其PID、用户名及路径。

　　点击下载此文件
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.hack520.org/attachments/month_0810/l2008109134049.png" width="500" height="381" class="aligncenter" alt="VBS列举进程"/></p>
<p>　　VBS编写的小程序，列举当前正在运行的进程，显示其PID、用户名及路径。</p>
<p><span id="more-375"></span></p>
<p>　　<a href="http://img.hack520.org/attachments/month_0810/c2008109134237.rar" target="_blank">点击下载此文件</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/vbs-list-process/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows文件保护专家开源代码（批处理）</title>
		<link>http://www.hack520.org/windows-file-protection-bat</link>
		<comments>http://www.hack520.org/windows-file-protection-bat#comments</comments>
		<pubDate>Tue, 22 Apr 2008 19:37:06 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[系统安全]]></category>
		<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[批处理]]></category>
		<category><![CDATA[源代码]]></category>

		<guid isPermaLink="false">http://www.hack520.org/windows%e6%96%87%e4%bb%b6%e4%bf%9d%e6%8a%a4%e4%b8%93%e5%ae%b6-%e5%bc%80%e6%ba%90%e4%bb%a3%e7%a0%81%e6%89%b9%e5%a4%84%e7%90%86</guid>
		<description><![CDATA[

Windows文件保护专家，源代码如下：
@echo off
rem Written by heroest
rem Feb 17th,2006
setlocal
color 0b
echo ===============================================================
echo.
echo Windows文件保护专家 v1.0
echo.
echo.
echo 说明：本程序可以有效的保护重要的文件不被删除或泄露。
echo 加入了删除文档的代码，可以删除那些被保护的文档
echo 版权没有，欢迎盗版!
echo ===============================================================
:start
echo.
echo 建立文件保护文件夹 c:\FileLocker
if not exist c:\FileLocker..\nul md c:\FileLocker..\
echo 欢迎使用windwos保护专家 v1.0,请选择选项（1,2,3,4,5,q）;
echo 1.读取加密的文档
echo 2.存储保密文档
echo 3.建立秘密存储文档
echo 4.删除保密文档
echo 5.删除FileLocker
echo q.推出
echo.
set /p choice=
if {%choice%}=={} goto start
if /i %choice%==1 goto djm
if /i %choice%==2 goto cjm
if /i %choice%==3 goto jjm
if /i %choice%==4 goto sjm
if /i %choice%==5 goto df
if [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.hack520.org/attachments/month_0804/q2008422193248.png" class="aligncenter" alt="Windows文件保护" title="Windows文件保护专家"/></p>
<p><span id="more-320"></span></p>
<p><strong>Windows文件保护专家，源代码如下：</strong></p>
<pre>@echo off
rem Written by heroest
rem Feb 17th,2006
setlocal
color 0b
echo ===============================================================
echo.
echo Windows文件保护专家 v1.0
echo.
echo.
echo 说明：本程序可以有效的保护重要的文件不被删除或泄露。
echo 加入了删除文档的代码，可以删除那些被保护的文档
echo 版权没有，欢迎盗版!
echo ===============================================================
:start
echo.
echo 建立文件保护文件夹 c:\FileLocker
if not exist c:\FileLocker..\nul md c:\FileLocker..\
echo 欢迎使用windwos保护专家 v1.0,请选择选项（1,2,3,4,5,q）;
echo 1.读取加密的文档
echo 2.存储保密文档
echo 3.建立秘密存储文档
echo 4.删除保密文档
echo 5.删除FileLocker
echo q.推出
echo.
set /p choice=
if {%choice%}=={} goto start
if /i %choice%==1 goto djm
if /i %choice%==2 goto cjm
if /i %choice%==3 goto jjm
if /i %choice%==4 goto sjm
if /i %choice%==5 goto df
if /i %choice%==q goto quit
goto start
rem========================加入秘密文件夹==========================
:jjm
echo.
echo 准备建立秘密文件夹...
echo 请输入密码:
set /p pass2c=
if {%pass2c%}=={} goto jjm
echo 开始根据密码建立保密文件夹......
md &#34;c:\FileLocker..\%pass2c%..\&#34;
echo 建立了保护文件夹!
echo.
goto start
rem ======================“加入”部分结束=========================
rem
rem =====================存储数据部分==============================
:cjm
echo.
echo 准备存储保密档案...
echo 请输入密码：
set /p pass=
if {%pass%}=={} goto cjm
if exist c:\FileLocker..\%pass%..\nul goto noerror
echo 发生错误，未发现建立加密保护文件夹！
goto start
:noerror
md &#34;%userprofile%\桌面\Ready2Lock&#34;
echo 请将你需要保护的文件复制到桌面上的Ready2Lock文件夹内(被保存的文件不能含有文件夹）
echo 注意：开始保护后会删除原文件!
echo 按任意键开始保护文件.......
pause > nul
echo 开始保护到C:\FileLocker文件夹内.........
copy &#34;%userprofile%\桌面\Ready2Lock\*.*&#34; &#34;c:\FileLocker..\%pass%..\&#34;
echo 保护完成，删除原文件........
del &#34;%userprofile%\桌面\Ready2Lock\*.*&#34; /Q
rd &#34;%userprofile%\桌面\Ready2Lock&#34;
echo 所有保护完成!
ping 127.0.0.1 -n 3 >nul
cls
goto start
rem ==========================存储部分结束=======================
rem
rem ===========================读取数据部分======================
:djm
echo.
echo 准备读取保密文件...
echo 请输入密码：
set /p pass2=
if {%pass2%}=={} goto djm
if not exist c:\FileLocker..\%pass2%..\nul echo 发生错误或不存在保护文档 &amp; goto djm
echo 开始读取被保护的数据.......
if not exist &#34;%userprofile%\桌面\Unlocked\nul&#34; md &#34;%userprofile%\桌面\Unlocked&#34;
copy &#34;c:\FileLocker..\%pass2%..\*.*&#34; &#34;%userprofile%\桌面\Unlocked&#34;
echo 已经解密到桌面上的Unlocked文件夹内.........
ping 127.0.0.1 -n 3 >nul
goto start
rem ========================读取数据部分结束=======================
rem
rem ========================删除目录部分===========================
rem 此部分特别感谢&#34;猜猜鸟&#34;教会了我新的知识，谢谢了！
rem 感谢&#34;江山&#34;的提供了宝贵的意见
rem 也感谢支持我的朋友们，没有你们的鼓励，小弟也不敢斗胆发表自己的作品
:sjm
echo.
echo.
echo 准备删除秘密文档.......
echo 请输入密码：
set /p pass2del=
if {%pass2del%}=={} goto sjm
echo 开始删除被保护文件夹
rmdir /s &#34;c:\FileLocker..\%pass2del%..\&#34; /Q
echo 已经删除被保护文件.......
goto start
rem ============================删除部分结束======================
rem
rem ===================Del FileLocker==============================
:df
echo.
echo 请删除之前确认FileLocker里面没有任何秘密文档.(y/n)
set /p yesorno=
if /i %yesorno%==y goto start2del
if /i %yesorno%==n goto sjm
goto df
:start2del
echo 开始删除FileLocker..........
rd &#34;c:\FileLocker..\&#34; >nul
if exist c:\FileLocker..\nul echo **删除失败，可能FileLocker里有别的秘密文档。**&amp; goto fail
echo 成功删除!
:fail
ping 127.0.0.1 -n 3 >nul
goto start
rem ================Del Filelocker End====================
:quit
echo 感谢使用Windows文件保护专家 v1.0!
echo 按任意键退出本程序.
pause > nul
exit</pre>
<p>　　放日志文章主要不是送给大家这个软件，而是阅读其中的源代码，我觉得可以学到不少批处理方面的知识。</p>
<p>　　程序不是我写的，版权归原作者所有。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/windows-file-protection-bat/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>JAVA环境搭建之JDK的安装与环境变量设置详细图解－献给JAVA新手</title>
		<link>http://www.hack520.org/java-jdk-install</link>
		<comments>http://www.hack520.org/java-jdk-install#comments</comments>
		<pubDate>Tue, 04 Mar 2008 18:11:52 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.hack520.org/%e7%8c%ae%e7%bb%99java%e6%96%b0%e6%89%8b-java%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e4%b9%8bjdk%e7%9a%84%e5%ae%89%e8%a3%85%e4%b8%8e%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f%e8%ae%be%e7%bd%ae%e8%af%a6</guid>
		<description><![CDATA[JDK下载安装：
　　1.点击下面网址进入JDK1.4下载页面：
　　http://java.sun.com/j2se/1.4.2/download.html
　　2.点击“Download J2SE SDK”：


　　3.“Accept”，Continue：

　　4.下面列出了各个平台下的JDK版本，其中Windows版有两种安装方式，一种是完全下载后再安装，一种是在线安装，我们选择第一种：

　　5.下载完成后，双击图标进行安装，安装过程中可以自定义安装目录等信息，例如我们选择安装目录为D:\jdk1.4。
配置JDK环境变量：
　　6.右击“我的电脑”，点击“属性”：

　　7.选择“高级”选项卡，点击“环境变量”：

　　8.在“系统变量”中，设置3项属性，JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”，不存在则点击“新建”：

　　9.JAVA_HOME指明JDK安装路径，就是刚才安装时所选择的路径D:\jdk1.4，此路径下包括lib，bin，jre等文件夹（此变量最好设置，因为以后运行tomcat，eclipse等都需要依靠此变量）；Path使得系统可以在任何路径下识别java命令，设为：
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
　　CLASSPATH为java加载类(class o&#114; lib)路径，只有类在classpath中，java命令才能识别，设为：
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
%JAVA_HOME%就是引用前面指定的JAVA_HOME。



　　10.“开始”－>“运行”，键入“cmd”：

　　11.键入命令“java -version”，出现下图画面，说明环境变量配置成功：

　　12.好了，打完收工。下面开始你的第一个java程序吧！
]]></description>
			<content:encoded><![CDATA[<p><strong>JDK下载安装：</strong></p>
<p>　　1.点击下面网址进入JDK1.4下载页面：</p>
<p>　　http://java.sun.com/j2se/1.4.2/download.html</p>
<p>　　2.点击“Download J2SE SDK”：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/1.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p><span id="more-299"></span></p>
<p>　　3.“Accept”，Continue：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/2.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　4.下面列出了各个平台下的JDK版本，其中Windows版有两种安装方式，一种是完全下载后再安装，一种是在线安装，我们选择第一种：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/3.jpg" class="aligncenter" alt="java" title="jdk安装" width="600" height="297"/></p>
<p>　　5.下载完成后，双击图标进行安装，安装过程中可以自定义安装目录等信息，例如我们选择安装目录为D:\jdk1.4。</p>
<p><strong>配置JDK环境变量：</strong></p>
<p>　　6.右击“我的电脑”，点击“属性”：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/4.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　7.选择“高级”选项卡，点击“环境变量”：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/5.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　8.在“系统变量”中，设置3项属性，JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”，不存在则点击“新建”：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/6.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　9.JAVA_HOME指明JDK安装路径，就是刚才安装时所选择的路径D:\jdk1.4，此路径下包括lib，bin，jre等文件夹（此变量最好设置，因为以后运行tomcat，eclipse等都需要依靠此变量）；Path使得系统可以在任何路径下识别java命令，设为：</p>
<p>%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin</p>
<p>　　CLASSPATH为java加载类(class o&#114; lib)路径，只有类在classpath中，java命令才能识别，设为：</p>
<p>.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)</p>
<p>%JAVA_HOME%就是引用前面指定的JAVA_HOME。<br />
<img src="http://img.hack520.org/attachments/month_0803/java/7.jpg" class="aligncenter" alt="java" title="jdk安装"/><br />
<img src="http://img.hack520.org/attachments/month_0803/java/8.jpg" class="aligncenter" alt="java" title="jdk安装"/><br />
<img src="http://img.hack520.org/attachments/month_0803/java/9.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　10.“开始”－>“运行”，键入“cmd”：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/10.jpg" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　11.键入命令“java -version”，出现下图画面，说明环境变量配置成功：<br />
<img src="http://img.hack520.org/attachments/month_0803/java/11.png" class="aligncenter" alt="java" title="jdk安装"/></p>
<p>　　12.好了，打完收工。下面开始你的第一个java程序吧！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/java-jdk-install/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reg To Bat－将REG注册表转换成BAT批处理的简单实现原理分析</title>
		<link>http://www.hack520.org/reg-to-bat</link>
		<comments>http://www.hack520.org/reg-to-bat#comments</comments>
		<pubDate>Mon, 07 Jan 2008 14:10:59 +0000</pubDate>
		<dc:creator>野球小子</dc:creator>
				<category><![CDATA[编程乐园]]></category>
		<category><![CDATA[bat]]></category>

		<guid isPermaLink="false">http://www.hack520.org/reg-to-bat-%e5%b0%86reg%e6%b3%a8%e5%86%8c%e8%a1%a8%e6%96%87%e4%bb%b6%e8%bd%ac%e6%8d%a2%e6%88%90bat%e6%89%b9%e5%a4%84%e7%90%86%e6%96%87%e4%bb%b6%e4%b8%8b%e8%bd%bd%e5%8f%8a%e5%ae%83%e7%9a%84%e7%ae%80</guid>
		<description><![CDATA[

　　我把下面的REG注册表文件
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\LicStorage]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\SPC\Certificates]
　　用这个工具转换一下，转换后的BAT批处理源代码为：
@ECHO OFF
> &#34;%Temp%.\DefOpen.reg&#34; ECHO Windows Registry Editor Version 5.00
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO.
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO [-HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\LicStorage]
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\SPC\Certificates]
START /WAIT REGEDIT /S &#34;%Temp%.\DefOpen.reg&#34;
DEL &#34;%Temp%.\DefOpen.reg&#34;
　　原理很简单吧！就是把这个注册表文件里的每一句写到当前用户的临时文件夹内变成DefOpen.reg，然后执行这个DefOpen.reg。
　　这样一来的话，我想把这个REG文件直接复制到临时目录然后执行不是更简单？！原理还是一样的。感觉有点傻了，这样把REG转换到BAT根本没有实际意义。
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img.hack520.org/attachments/month_0801/reg-to-bat.jpg" class="aligncenter" alt="Reg To Bat" title="Reg To Bat"/></p>
<p><span id="more-267"></span></p>
<p>　　我把下面的REG注册表文件</p>
<blockquote><p>Windows Registry Editor Version 5.00</p>
<p>[-HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\LicStorage]<br />
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]<br />
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\SPC\Certificates]</p></blockquote>
<p>　　用这个工具转换一下，转换后的BAT批处理源代码为：</p>
<blockquote><p>@ECHO OFF<br />
> &#34;%Temp%.\DefOpen.reg&#34; ECHO Windows Registry Editor Version 5.00<br />
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO.<br />
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO [-HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\LicStorage]<br />
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG]<br />
>>&#34;%Temp%.\DefOpen.reg&#34; ECHO [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\SPC\Certificates]<br />
START /WAIT REGEDIT /S &#34;%Temp%.\DefOpen.reg&#34;<br />
DEL &#34;%Temp%.\DefOpen.reg&#34;</p></blockquote>
<p>　　原理很简单吧！就是把这个注册表文件里的每一句写到当前用户的临时文件夹内变成DefOpen.reg，然后执行这个DefOpen.reg。</p>
<p>　　这样一来的话，我想把这个REG文件直接复制到临时目录然后执行不是更简单？！原理还是一样的。感觉有点傻了，这样把REG转换到BAT根本没有实际意义。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack520.org/reg-to-bat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
