﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-翱翔.Net </title><link>http://www.cnblogs.com/Hover/</link><description>释放.Net的力量</description><language>zh-cn</language><lastBuildDate>Wed, 20 Aug 2008 11:59:13 GMT</lastBuildDate><pubDate>Wed, 20 Aug 2008 11:59:13 GMT</pubDate><ttl>60</ttl><item><title>用OD和CE结合跟踪查找基址</title><link>http://www.cnblogs.com/Hover/archive/2008/07/01/1233600.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Tue, 01 Jul 2008 14:32:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2008/07/01/1233600.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/1233600.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2008/07/01/1233600.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/1233600.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/1233600.html</trackback:ping><description><![CDATA[<p>以前看过的教程是用CE找武林的一级基址。如果游戏都那样的就按他的方法很好找了。用OD跟踪也很块就定位真正的基址。</p>
<p>&nbsp;</p>
<p>用CE搜索血值后。一般都能定位到有几个。最好的是只有一个。多了直接用第１个的地址。</p>
<p>&nbsp;</p>
<p>用OD附近游戏。来到他的内存区（左下角）　转到地址输入刚才第一个的地址。</p>
<p>然后在此下内存断点。</p>
<p>这里有两种断点　写断点　访问断点　　按字面理解　</p>
<p>不管下哪种断点最终根据汇编代码都是可以跟到基址的。</p>
<p>&nbsp;</p>
<p>切到游戏OD中断后。</p>
<p>都是类似的代码mov [esi+2d8],EAX</p>
<p>这时要去找谁给ESI赋值了。在CE中是要接着下断点。在OD里需要往上找看谁给ESI附值了。</p>
<p>&nbsp;</p>
<p>就拿CE的第８步说吧。</p>
<p>按上面显示的是１２９１.搜索只有一个值。。如果有多个可以点一下change value改变看哪个变。</p>
<p>00D65318　地址处存放着1291</p>
<p>&nbsp;</p>
<p>用OD附加此程序</p>
<p>转到00D65318地址后下内存断点。回到程序点change value</p>
<p>OD中断后的汇编代码</p>
<p>0045662B&nbsp;&nbsp;&nbsp; A1 20CC4500&nbsp;&nbsp;&nbsp;&nbsp; MOV EAX,DWORD PTR DS:[45CC20]<br />
00456630&nbsp;&nbsp;&nbsp; 8B40 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EAX,DWORD PTR DS:[EAX+C]<br />
00456633&nbsp;&nbsp;&nbsp; 8B40 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EAX,DWORD PTR DS:[EAX+14]<br />
00456636&nbsp;&nbsp;&nbsp; 8B00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EAX,DWORD PTR DS:[EAX]<br />
00456638&nbsp;&nbsp;&nbsp; 8970 18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV DWORD PTR DS:[EAX+18],ESI</p>
<p>直接看汇编代码就能知道45CC20是基址　+偏移最后才放着这个1291</p>
<p>&nbsp;</p>
<p>这是CE的这个Cheat Engine tutorial程序这里都放一起了。游戏的程序不是这样的。</p>
<p>&nbsp;</p>
<p>一般都需要往上跟。可以看寄存器的值看哪里改变他了再找相应的汇编代码</p>
<img src ="http://www.cnblogs.com/Hover/aggbug/1233600.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41802/" target="_blank">[新闻]微软Office 14即将展开Alpha测试</a>]]></description></item><item><title>[转]OD 跟踪调试经验</title><link>http://www.cnblogs.com/Hover/archive/2008/07/01/1233576.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Tue, 01 Jul 2008 13:55:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2008/07/01/1233576.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/1233576.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2008/07/01/1233576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/1233576.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/1233576.html</trackback:ping><description><![CDATA[原作者不详<br />
<br />
<font face="Verdana">如你要跟ebx，跟到某层遇到mov ebx, [ebp-430]之类的，不用讲，局部变量，此时在ebx下断，看ebx的值，再ctrl+f9, f8,到上一层看是怎么传进来这个参数的。比如是最后一次push传进来的，就向上一直跟最后一次push的寄存器。 <br />
向上跟数值时，遇到ebp，esp之类的，一定要仔细看。仔细分析堆栈。并不要认为上一个函数一定是堆栈平衡。 <br />
遇到跟数据是跟ecx的，一般情况，都很向上跟很多层，因为在面向对象语言中，对象指针都用ecx寄存器存放，而对象指针在函数中很重要的，或者说，一个对象函数中很多层函数都要保存这个对象指针，因为任何函数都可能用到。 <br />
跟数据遇到要找eax时，第一反应因为是向上看最近一个CALL函数，但也不一定是最近一个CALL函数的返回值。因为有些函数是没有返回值的。所以您要做的就是在那个函数下断，再F8走过函数，看寄存器eax变化没有。 <br />
从断游戏，分析数据角度讲，经常要用到断内存数据是谁写的。有的游戏是不能下内存断点的，此时可以考虑硬件断点。 <br />
当你向某内存地址下写入断点，看谁写的它时，断下后发现是堆栈写，此时，你就不要在堆栈去下断点了，堆栈数据是随时都在写，这样是断不下来的。这样，就只有向上看反汇编，F8一步一步走，看是谁向堆栈写数据。 <br />
有时需要断edi时，而edi是变化的，此时可以找规律，查看edi每次的step为多少，然后去到当前edi向后增加多少下断点。 <br />
在有些情况下，比如过程函数，分支函数，你直接下断点可能一直断下，所以此时您就需要用到条件断点，所以一定要掌握条件断点用法。 <br />
经常注意当前模块位置，打个比如，当你断在MSVERT模块中，你需要找的edx，而edx就是一个地址，此时，可能MSVERT模块已经相对游戏领空很多层了，你一步一步向上找可能很花时间，也很容易跟错数据。此时你可能考虑一次性多次ctrl+f9, f8，直到Game模块，然后在Game模块中，调用MSVERT的这个函数下断，看下是怎么传参进去的（也就是是第几个参数，或者寄存器传的edx值）。这样，再向上找就方便多了。 <br />
如果是做内挂，一定不要去说用封包好还是用CALL好，只可以告诉自己，哪个方便用哪个。CALL找不到，找封包，如果封包分析不出数据，就找CALL。也许换种方法更简单</font>
<img src ="http://www.cnblogs.com/Hover/aggbug/1233576.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41802/" target="_blank">[新闻]微软Office 14即将展开Alpha测试</a>]]></description></item><item><title>查看发包数据bp Send</title><link>http://www.cnblogs.com/Hover/archive/2007/12/24/1013243.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Mon, 24 Dec 2007 14:23:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2007/12/24/1013243.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/1013243.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2007/12/24/1013243.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/1013243.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/1013243.html</trackback:ping><description><![CDATA[游戏的每一个动作都会向服务器端发送数据。截获发包数据可以知道每个动作都向服务器发送什么数据。<br />
<br />
用OD附加游戏 输入命令bp Send 例如。<br />
<br />
先扔地下件物品。然后输入命令bp Send 。这时用鼠标去捡物品。OD会中断。按三次Ctrl+F9,F8 就会回到游戏捡物的发包函数。<br />
<br />
<br />
<p><font face="Courier New">005A7C8A&nbsp;&nbsp;&nbsp; 6A 0A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 0A<br />
005A7C8C&nbsp;&nbsp;&nbsp; 56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH ESI<br />
005A7C8D&nbsp;&nbsp;&nbsp; 8B4A 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ECX,DWORD PTR DS:[EDX+20]<br />
005A7C90&nbsp;&nbsp;&nbsp; E8 BBA2FDFF&nbsp;&nbsp;&nbsp;&nbsp; CALL elementc.00581F50</font></p>
<p><font face="Courier New"></font>&nbsp;0A是包的字节大小。16进制的0A转十进制就是10<br />
ESI中的值就是发包数据。 这时可以跳到ESI数据窗口跟随。<br />
大小为10.<br />
</p>
<p><font face="Courier New">0E25BD48&nbsp; 06 00 79 3E 02 C0 37 09 00 00 BC 0B 0A 00 00 00&nbsp; .y&gt;?...?....</font></p>
<p><font face="Courier New"></font>&nbsp;从左查10个字节就是06 00 79 3E 02 C0 37 09 00 00&nbsp; 这就是检物的发包数据。<br />
<br />
如果需要找走路。打怪等的发包数据。可以在00581f50下跟进此CAll中下断点<br />
<br />
</p>
<p><font face="Courier New">0889FDA8&nbsp;&nbsp; 005A7C95&nbsp; 返回到 elementc.005A7C95 来自 elementc.00581F50<br />
0889FDAC&nbsp;&nbsp; 0E25BD48<br />
0889FDB0&nbsp;&nbsp; 0000000A</font></p>
<p><font face="Courier New"></font>&nbsp;上是堆栈窗口 0889FDB0右面的0000000A就是发包的大小<br />
0889FDAC处是存储包发内容的地址0889FDB0<br />
<br />
这样所有的动作只要在发包函数里下断点。看堆栈就行了。 不用在每个动作的汇编语句上下断了。</p>
<img src ="http://www.cnblogs.com/Hover/aggbug/1013243.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41801/" target="_blank">[新闻]《星际争霸2》新图</a>]]></description></item><item><title>修改boot.ini使W3wp使用更多的物理内存</title><link>http://www.cnblogs.com/Hover/archive/2007/12/18/1004323.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Tue, 18 Dec 2007 04:06:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2007/12/18/1004323.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/1004323.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2007/12/18/1004323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/1004323.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/1004323.html</trackback:ping><description><![CDATA[环境IIS 6.0 windows server 2003<br />
<br />
最近客户的服务器的IIS总是莫名的拒绝服务 IIS运行着某采购中心的业务系统和前台网站（都是我们项目组开发的）<br />
<br />
出现问题的解决。查到相关资料是开放应用程序池的内存使用。<br />
<br />
服务器只有一个站点在提供WEb服务。所以不存在像别的虚拟主机出现问题的解决办法。虚拟主机的办法是给站点配单独的应用程序池。<br />
<br />
这样的问题以前也现过。只是那时的web程序是ASP的。在asp.net 1.1下还没遇到这种情况<br />
<br />
使用任务管理器查看时只要内存达到1.7G左右。IIS就拒绝服务了.<br />
<br />
在应用程序池处设置了最大使用内存为1.6G就回收。这样只是临时解决了情况。<br />
<br />
接下来另一个问题出来了。在内应程序池回收时。Session初始化了。SEssion数据丢失。由于业务系统采用了数字证书。<br />
<br />
而数字证书处验证使用了Session导致应用程序池一回收。业务系统就退出。！<br />
<br />
看来这不是解决办法。<br />
<br />
其间还尝试了其它办法。例如修改mac 配置文件的配置节memoryLimit 。调整可使用的最大内存。但这个选项在IIS 6.0下不起作用。<br />
<br />
最大可访问使用的内存限制为2GB。最后修改了boot.ini配置。 增加了/3GB<br />
<br />
然后相应的把应用程序池的最大回收内存修改到了2.7G 这样大约1个小时达到内存峰值然后回收、算暂时解决了问题 ！。<br />
<br />
当然了业务系统的程序肯定需要性能方面的优化。附/3gb说明<br />
<br />
/3gb<br />
该开关强制基于 x86 的系统为程序分配 3 GB 的虚拟地址空间，为内核及可执行组件分配 1 GB 的虚拟地址空间。程序在设计上必须能够利用额外的内存地址空间。使用该开关，用户模式程序能够访问 3 GB 的内存而不是通常 Windows 分配给用户模式程序的 2 GB 的内存。该开关将内核的内存起始位置移至 3 GB 处。某些 Microsoft Exchange Server 2003 和 Microsoft Windows Server 2003 的配置可能需要使用该开关。<br />
<img src ="http://www.cnblogs.com/Hover/aggbug/1004323.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41800/" target="_blank">[新闻]Google放出Android开发路线图</a>]]></description></item><item><title>查找游戏帐号</title><link>http://www.cnblogs.com/Hover/archive/2007/12/16/996465.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Sun, 16 Dec 2007 01:56:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2007/12/16/996465.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/996465.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2007/12/16/996465.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/996465.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/996465.html</trackback:ping><description><![CDATA[<p>zx游戏自上上次更新以后。帐户不是名文了。用CE搜索不到了。外挂想用帐户来绑定用户的话就实现不了了。正郁闷着呢。老大说别人找到了回写帐户内存的代码。贴来给我看。我诈一看以为Bp send往回打的第几层的代码呢。仔细一看不是。白天忙工作了。晚上下班想看那段代码。忘带回来了。这怎么办。也不能浪费时间自己找吧！</p>
<p>&nbsp;</p>
<p>即然有人找到了。说明在登录时游戏还是存了帐户的。但是为什么登录成功以后用CE却搜索不到呢。应该在分解登录过程的某一步进行了清空了也就是上面提到某人找到的代码。但现在我想找那段代码。想了个办法。为何不在bp send断的时候。也就是发包操作的时候。让游戏中断。此时用CE搜索。果然这样做了以后搜索到了几条信息，有时是一条。如果是多条可以F9运行。此时由于中断时间久了。游戏没反应过来。还显示正在登录中。点取看多条其中哪天还在就是了。复制这条地址。然后回到OD在内存区CTRL+G然后转到。下内存写断点。</p>
<p>&nbsp;</p>
<p>这时回到游戏。输入帐户和密码点登录。OD中断。按两次F9就来到了回写清空帐户内存区的代码了</p>
<p>至于为什么按两次F9。第一次是运行。一看那里是个把帐户拆成4位一个。然后又跳 回去了组完又写。所以再F9就</p>
<p>跳出这段汇编了来到下面这句。（汇编不熟上面这句瞎分析的）</p>
<p>00583CA2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F3:AB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REP STOS DWORD PTR ES:[EDI]</p>
<p>关键代码找到了剩下就试着NOp了 以下是那段汇编的全部代码</p>
<p>00583C30&nbsp; /$&nbsp; A1 74BB9100&nbsp;&nbsp; MOV EAX,DWORD PTR DS:[91BB74]<br />
00583C35&nbsp; |.&nbsp; 53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EBX<br />
00583C36&nbsp; |.&nbsp; 55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EBP<br />
00583C37&nbsp; |.&nbsp; 56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH ESI<br />
00583C38&nbsp; |.&nbsp; 57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EDI<br />
00583C39&nbsp; |.&nbsp; 68 20A58E00&nbsp;&nbsp; PUSH elementc.008EA520&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&nbsp; UNICODE "NET - protocol keyexchange"<br />
00583C3E&nbsp; |.&nbsp; 68 00FF00FF&nbsp;&nbsp; PUSH FF00FF00<br />
00583C43&nbsp; |.&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EAX<br />
00583C44&nbsp; |.&nbsp; 8BF1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ESI,ECX<br />
00583C46&nbsp; |.&nbsp; E8 659FEAFF&nbsp;&nbsp; CALL elementc.0042DBB0<br />
00583C4B&nbsp; |.&nbsp; 8A86 34010000 MOV AL,BYTE PTR DS:[ESI+134]<br />
00583C51&nbsp; |.&nbsp; 8B96 24010000 MOV EDX,DWORD PTR DS:[ESI+124]<br />
00583C57&nbsp; |.&nbsp; 83C4 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADD ESP,0C<br />
00583C5A&nbsp; |.&nbsp; 8B6C24 14&nbsp;&nbsp;&nbsp;&nbsp; MOV EBP,DWORD PTR SS:[ESP+14]<br />
00583C5E&nbsp; |.&nbsp; 84C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEST AL,AL<br />
00583C60&nbsp; |.&nbsp; 8B86 98000000 MOV EAX,DWORD PTR DS:[ESI+98]<br />
00583C66&nbsp; |.&nbsp; 8D9E 24010000 LEA EBX,DWORD PTR DS:[ESI+124]<br />
00583C6C&nbsp; |.&nbsp; 0F95C1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SETNE CL<br />
00583C6F&nbsp; |.&nbsp; 81E1 FF000000 AND ECX,0FF<br />
00583C75&nbsp; |.&nbsp; 51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH ECX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; /Arg4<br />
00583C76&nbsp; |.&nbsp; 8B8E 94000000 MOV ECX,DWORD PTR DS:[ESI+94]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |<br />
00583C7C&nbsp; |.&nbsp; 52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EDX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |Arg3<br />
00583C7D&nbsp; |.&nbsp; 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |Arg2<br />
00583C7E&nbsp; |.&nbsp; 51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH ECX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |Arg1<br />
00583C7F&nbsp; |.&nbsp; 8BCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ECX,EBP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; |<br />
00583C81&nbsp; |.&nbsp; E8 8A490000&nbsp;&nbsp; CALL elementc.00588610&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; \elementc.00588610<br />
00583C86&nbsp; |.&nbsp; 8BCB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ECX,EBX<br />
00583C88&nbsp; |.&nbsp; E8 030B1700&nbsp;&nbsp; CALL elementc.006F4790<br />
00583C8D&nbsp; |.&nbsp; 8BD0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EDX,EAX<br />
00583C8F&nbsp; |.&nbsp; 83C9 FF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OR ECX,FFFFFFFF<br />
00583C92&nbsp; |.&nbsp; 8BFA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EDI,EDX<br />
00583C94&nbsp; |.&nbsp; 33C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XOR EAX,EAX<br />
00583C96&nbsp; |.&nbsp; F2:AE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPNE SCAS BYTE PTR ES:[EDI]<br />
00583C98&nbsp; |.&nbsp; F7D1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOT ECX<br />
00583C9A&nbsp; |.&nbsp; 49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC ECX<br />
00583C9B&nbsp; |.&nbsp; 8BFA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EDI,EDX<br />
00583C9D&nbsp; |.&nbsp; 8BD1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV EDX,ECX<br />
00583C9F&nbsp; |.&nbsp; C1E9 02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHR ECX,2<br />
00583CA2&nbsp; |.&nbsp; F3:AB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REP STOS DWORD PTR ES:[EDI]<br />
00583CA4&nbsp; |.&nbsp; 8BCA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ECX,EDX<br />
00583CA6&nbsp; |.&nbsp; 83E1 03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND ECX,3<br />
00583CA9&nbsp; |.&nbsp; F3:AA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REP STOS BYTE PTR ES:[EDI]<br />
00583CAB&nbsp; |.&nbsp; 8BCB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ECX,EBX<br />
00583CAD&nbsp; |.&nbsp; E8 2E0B1700&nbsp;&nbsp; CALL elementc.006F47E0<br />
00583CB2&nbsp; |.&nbsp; 85ED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TEST EBP,EBP<br />
00583CB4&nbsp; |.&nbsp; 74 0A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JE SHORT elementc.00583CC0<br />
00583CB6&nbsp; |.&nbsp; 6A 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH 0<br />
00583CB8&nbsp; |.&nbsp; 55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUSH EBP<br />
00583CB9&nbsp; |.&nbsp; 8BCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ECX,ESI<br />
00583CBB&nbsp; |.&nbsp; E8 10BBFFFF&nbsp;&nbsp; CALL elementc.0057F7D0<br />
00583CC0&nbsp; |&gt;&nbsp; 5F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POP EDI<br />
00583CC1&nbsp; |.&nbsp; 5E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POP ESI<br />
00583CC2&nbsp; |.&nbsp; 5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POP EBP<br />
00583CC3&nbsp; |.&nbsp; 5B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POP EBX<br />
00583CC4&nbsp; \.&nbsp; C2 0400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RETN 4</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>跟老大发给我。某位高手找到的一样。就是这了。</p>
<p>&nbsp;</p>
 <img src ="http://www.cnblogs.com/Hover/aggbug/996465.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41799/" target="_blank">[新闻]番茄花园作者被警方逮捕</a>]]></description></item><item><title>查找选中怪ID相对于基址的偏移</title><link>http://www.cnblogs.com/Hover/archive/2007/12/16/996464.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Sun, 16 Dec 2007 01:55:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2007/12/16/996464.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/996464.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2007/12/16/996464.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/996464.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/996464.html</trackback:ping><description><![CDATA[<div>诛仙.</div>
<div>&nbsp;</div>
<div>在基址确定的前提下.可以转到基址的的动态内存区.然后双击定它为基址.</div>
<div>&nbsp;</div>
<div>在以知以前版本的偏移下往下找.每次更新都在上次偏移附近.+4或+几而已</div>
<div>&nbsp;</div>
<div>当你到了附近后.此时那块内存区域是0000000.可以切回游戏选中怪.回来再看.如此处变为9b 00 00 85</div>
<div>再换一只怪.变为7a 00 00 85的话此偏移就应该是当前选中怪ID偏移.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>至于怪ID 的16进制是什么样的.可以使用bp send找到选怪CALL看他传进去的怪ID的16进制就知道了</div>
<div>&nbsp;</div>
<div>注:上面的9b 00 00 85&nbsp; 是反着排的实际数据是85 00 00 9b<img src="http://mimg.163.com/js31style/HtmlEditor/popo/preview/popo13.gif"  alt="" /></div>
<img src ="http://www.cnblogs.com/Hover/aggbug/996464.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41799/" target="_blank">[新闻]番茄花园作者被警方逮捕</a>]]></description></item><item><title>提醒精灵.NET 发布</title><link>http://www.cnblogs.com/Hover/archive/2006/08/01/464977.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Tue, 01 Aug 2006 06:11:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2006/08/01/464977.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/464977.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2006/08/01/464977.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/464977.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/464977.html</trackback:ping><description><![CDATA[<p>下载地址:http://www.erist.com/attach.aspx?attachid=119</p>
<p><img alt="" src="http://www.erist.com/attach.aspx?attachid=121" border=0><br>提醒精灵.NET(EventAgent) 功能及更新说明</p>
<p>提醒精灵.NET系艾森软件工作室(EristSoft)产品.<br>可以帮助用户进行定时关机，重启，注销等功能。<br>可以使用按时间定时提醒用户功能。</p>
<p>I系统需求</p>
<p>----------------------------------------------------------------------------<br>操作系统&nbsp; Win2k/xp/2003<br>运行环境&nbsp; Microsoft .NET FrameWork 2.0<br>硬盘容量&nbsp; 10MB 或以上</p>
<p><br>----------------------------------------------------------------------------<br>&nbsp;'+' = New feature&nbsp;&nbsp;(增加新功能)<br>&nbsp;'-' = Bug fixed or Removed&nbsp;(修正问題或移出功能)<br>&nbsp;'*' = Improved or Changed&nbsp;(功能改良或改变)<br>----------------------------------------------------------------------------</p>
<p>1.0.0 Beta&nbsp;&nbsp;&nbsp; (Trial)<br>2006/08/01<br>============================================================================<br>&#183; 采用OFFICE 2007 主题。<br>&#183; 采用XML做为数据存储,方便部署。<br>&#183; 支持定时关机、重启、注销电脑功能。<br>&#183; 支持开机运行功能。<br>&#183; 支持按指定时间或每天某一时间进行事件提醒。<br>&#183; 可以显示系统自开机以来已运行的时间。</p>
<p>注:定时关机功能目前只支持Windows XP/Windows Server 2003<br>=============================================================================<br><br></p><img src ="http://www.cnblogs.com/Hover/aggbug/464977.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41792/" target="_blank">[新闻]WordPress和Movable Type影响社交网站的未来</a>]]></description></item><item><title>(小技巧九)设置开机运行功能</title><link>http://www.cnblogs.com/Hover/archive/2006/05/22/406076.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Mon, 22 May 2006 02:29:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2006/05/22/406076.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/406076.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2006/05/22/406076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/406076.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/406076.html</trackback:ping><description><![CDATA[开机运行有种方式实现其功能。这里用的是使用注册表的方式实现此功能<br>using Microsoft.Win32; //注册表需要引用此命名空间<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;RegistryKey&nbsp;key&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Registry.CurrentUser.OpenSubKey(</span><span style="COLOR: #000000">@"</span><span style="COLOR: #000000">Software\Microsoft\Windows\CurrentVersion\Run</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(CBAutoRun.Checked)<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img id=Codehighlighter1_161_247_Open_Image onclick="this.style.display='none'; Codehighlighter1_161_247_Open_Text.style.display='none'; Codehighlighter1_161_247_Closed_Image.style.display='inline'; Codehighlighter1_161_247_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_161_247_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_161_247_Closed_Text.style.display='none'; Codehighlighter1_161_247_Open_Image.style.display='inline'; Codehighlighter1_161_247_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_161_247_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif"></span><span id=Codehighlighter1_161_247_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key.SetValue(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">EventAgent</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;Application.ExecutablePath);<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img id=Codehighlighter1_278_344_Open_Image onclick="this.style.display='none'; Codehighlighter1_278_344_Open_Text.style.display='none'; Codehighlighter1_278_344_Closed_Image.style.display='inline'; Codehighlighter1_278_344_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_278_344_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_278_344_Closed_Text.style.display='none'; Codehighlighter1_278_344_Open_Image.style.display='inline'; Codehighlighter1_278_344_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_278_344_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/images/dot.gif"></span><span id=Codehighlighter1_278_344_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key.SetValue(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">EventAgent</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
CheckBox选中写注册表。否清空EventAgent键值<img src ="http://www.cnblogs.com/Hover/aggbug/406076.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41791/" target="_blank">[新闻]谷歌平台手机获准上市</a>]]></description></item><item><title>简单地址重写</title><link>http://www.cnblogs.com/Hover/archive/2005/06/02/166752.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Thu, 02 Jun 2005 07:57:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2005/06/02/166752.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/166752.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2005/06/02/166752.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/166752.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/166752.html</trackback:ping><description><![CDATA[<P>&nbsp;protected void Application_BeginRequest(Object sender, EventArgs e)<BR>&nbsp;&nbsp;{</P>
<P>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;string strRawUrl = HttpContext.Current.Request.RawUrl;<BR>&nbsp;&nbsp;&nbsp;string strNewUrl;</P>
<P>&nbsp;&nbsp;&nbsp;//*******************************************************************************************<BR>&nbsp;&nbsp;&nbsp;//分类地址重写<BR>&nbsp;&nbsp;&nbsp;if (Regex.IsMatch(strRawUrl, @"Post.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"Post.aspx", @"ShowClass.aspx\?ClassID=14");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"Resources.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"Resources.aspx", @"ShowClass.aspx\?ClassID=13");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"MobileApplications.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"MobileApplications.aspx", @"ShowClass.aspx\?ClassID=12");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"Server.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"Server.aspx", @"ShowClass.aspx\?ClassID=11");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"DataBase.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"DataBase.aspx", @"ShowClass.aspx\?ClassID=10");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"WebServices.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"WebServices.aspx", @"ShowClass.aspx\?ClassID=7");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"WindowsApplications.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"WindowsApplications.aspx", @"ShowClass.aspx\?ClassID=6");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"WebApplications.aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"WebApplications.aspx", @"ShowClass.aspx\?ClassID=2");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;//**********************************************************************************************<BR>&nbsp;&nbsp;&nbsp;//显示详细文章地址重写<BR>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"(\d+).aspx", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"(\d+).aspx", @"ShowPost.aspx\?id=$1");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.RewritePath( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else if (Regex.IsMatch(strRawUrl, @"ShowPost.aspx\?id=(\d+)", RegexOptions.IgnoreCase))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;strNewUrl = Regex.Replace(strRawUrl, @"ShowPost.aspx\?id=(\d+)", @"$1.aspx");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;HttpContext.Current.Response.Redirect( strNewUrl );<BR>&nbsp;&nbsp;&nbsp;}<BR>}<BR>前面是重写。后面是逆操作.<BR>效果见<A href="http://ithero.net">HTtp://ithero.net</A></P><img src ="http://www.cnblogs.com/Hover/aggbug/166752.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41790/" target="_blank">[新闻]微软自称传媒公司 强调搜索引擎三大趋势</a>]]></description></item><item><title>使用.NET Reflector插件FileDisassembler还原源码！</title><link>http://www.cnblogs.com/Hover/archive/2005/04/20/141016.html</link><dc:creator>Hover</dc:creator><author>Hover</author><pubDate>Wed, 20 Apr 2005 01:23:00 GMT</pubDate><guid>http://www.cnblogs.com/Hover/archive/2005/04/20/141016.html</guid><wfw:comment>http://www.cnblogs.com/Hover/comments/141016.html</wfw:comment><comments>http://www.cnblogs.com/Hover/archive/2005/04/20/141016.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/Hover/comments/commentRss/141016.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Hover/services/trackbacks/141016.html</trackback:ping><description><![CDATA[<p>.NET Reflector 是反编译.NET 源码的工具！有个很好的功能可以转换为不同的
<br/>Reflector for .NET 下载地址：<a href="http://www.aisto.com/roeder/dotnet/">http://www.aisto.com/roeder/dotnet/</a>
</p>
<p>如C#和VB.NET代码。
<br/>现在介绍一个它的插件。非常好用。还原源码。！
<br/><a href="http://www.denisbauer.com/Downloads/Reflector.FileDisassembler.zip">http://www.denisbauer.com/Downloads/Reflector.FileDisassembler.zip</a>
<br/>这是插件下载地址！
<br/>打开Reflector，在view菜单下的Add-Ins，将dll添加到里面即可！
<br/>然后加载一个dll。选中它。选择Tools-File Disassembler打开右侧File Disassembler窗口再选择Generate
<br/>这样就还原了源码。但可不是完全还原！
</p><img src ="http://www.cnblogs.com/Hover/aggbug/141016.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41789/" target="_blank">[新闻]亚洲社交网站Friendster将兼容竞争对手窗件</a>]]></description></item></channel></rss>