<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[木子屋 - 网络破解]]></title>
<link>http://www.mzwu.com/</link>
<description><![CDATA[Dnawo&#39;s BLOG]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[service@mzwu.com(Dnawo)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>木子屋</title>
	<url>http://www.mzwu.com/images/logos.gif</url>
	<link>http://www.mzwu.com/</link>
	<description>木子屋</description>
</image>

			<item>
			<link>http://www.mzwu.com/article.asp?id=3510</link>
			<title><![CDATA[apk反编译]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Fri,19 Apr 2013 00:02:33 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=3510</guid>
		<description><![CDATA[本文说的apk反编译是对apk中的classes.dex文件进行反编译，比较常见的方法有两种，下边分别进行说明。<br/><br/><strong>1.dex2jar + JD-GUI</strong><br/><br/>①.使用WinRAR从apk中解压出classes.dex，放到dex2jar文件夹；<br/>②.在命令行窗口执行命令&#34;dex2jar.bat classes.dex&#34;，生成classes_dex2jar.jar；<br/>③.使用JD-GUI打开classes_dex2jar.jar，可查看反编译的源代码，也可以选择&#34;File→Save All Sources&#34;保存文件；<br/><br/><img width="600" height="384" src="http://www.mzwu.com/pic/201304/017.jpg" border="0" alt=""/><br/><br/>说明：有时部分代码JD-GUI不能成功反编译，此时可以尝试从jar中单独解压出class文件，然后使用jad进行反编译，可能会成功。下边的批处理实现将jar中所有class文件反编译为java文件：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code85027);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code85027>@echo off<br/><br/>rem 使用说明：拖动apk到批处理，反编译文件保存于classes文件夹<br/><br/>rd /s /q classes<br/>7za.exe e %1 classes.dex<br/>call dex2jar.bat classes.dex<br/>7za.exe x -otemp classes_dex2jar.jar<br/><br/>for /f %%i in (&#39;dir /b /s temp\*.class&#39;) do (<br/>&nbsp;&nbsp;&nbsp;&nbsp;call :todo %%i<br/>)<br/><br/>del /q classes.dex<br/>del /q classes_dex2jar.jar<br/>rd /s /q temp<br/><br/>start explorer.exe %cd%\classes<br/>goto :eof<br/><br/>:todo<br/>(<br/>&#160;&#160;&#160;&#160;set dir=%~dp1<br/>&#160;&#160;&#160;&#160;md %dir:temp=classes%<br/>&#160;&#160;&#160;&#160;jad -o -d %dir:temp=classes% -s java %1<br/>)</div></div><br/><strong>2.baksmali + smali</strong><br/><br/>①.使用WinRAR从apk中解压出classes.dex；<br/>②.在命令行窗口执行命令&#34;baksmali.jar classes.dex&#34;开始反编译，生成到out文件夹；<br/>③.修改smali文件；<br/>④.在命令行窗口执行命令&#34;smali.jar out&#34;进行编译，重新生成dex文件；<br/><br/>说明：这个方法比第一个方法的优点是反编译后可以再编译，缺点是smali代码不容易阅读修改。<br/><br/><strong>3.资源链接</strong><br/><br/>[1].dex2jar：<a href="https://code.google.com/p/dex2jar/" target="_blank" rel="external">https://code.google.com/p/dex2jar/</a><br/>[2].JD-GUI：<a href="http://java.decompiler.free.fr/?q=jdgui" target="_blank" rel="external">http://java.decompiler.free.fr/?q=jdgui</a><br/>[3].JAD：<a href="http://www.varaneckas.com/jad/" target="_blank" rel="external">http://www.varaneckas.com/jad/</a><br/>[4].smali：<a href="https://code.google.com/p/smali/" target="_blank" rel="external">https://code.google.com/p/smali/</a><br/>[5].7-Zip：<a href="http://www.7-zip.org/" target="_blank" rel="external">http://www.7-zip.org/</a>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=3092</link>
			<title><![CDATA[GreaseMonkey让网站登录验证码形同虚设]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Thu,19 Jan 2012 00:37:51 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=3092</guid>
		<description><![CDATA[通常，为了增加暴力猜解网站用户密码的难度，我们会在网页登录框中增加一个验证码，验证码保存在服务器端，而客户端则使用一张图片显示：<br/><br/><img src="http://www.mzwu.com/pic/201201/071.gif" border="0" alt=""/><br/><br/>验证码在整个登录过程表现为：用户打开登录页面时，服务器产生一个验证码，点击登录后，跳转到登录页面，服务器端检查用户输入的验证码是否正确，若错误，跳回到登录页面，生成一个新验证码让用户再次输入登录。<strong>注意，生成新验证码的条件是登录页面刷新了</strong>！<br/><br/>以前没觉得这有什么问题，今天了解12306自动登录脚本后，发现这问题太严重了，当使用GreaseMonkey时，简直可以无视验证码的存在，原因是<strong>借助GreaseMonkey可以在页面使用Ajax提交表单进行登录，这过程不会刷新登录页面，所以服务器不会生成新验证码，因而只要手工输下验证码，脚本就可以不断尝试登录进行猜解用户名密码！</strong><br/><br/><strong>1.GreaseMonkey自动登录演示</strong><br/><br/>为了减少代码量，便于说明问题，下边演示时验证码不转为图形，直接输出Session，效果一样，不影响结论。<br/><br/>Default.asp：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code29857);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code29857>&lt;%@LANGUAGE=&#34;VBSCRIPT&#34; CODEPAGE=&#34;65001&#34;%&gt;<br/>&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank" rel="external">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&#34;&gt;<br/>&lt;html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&gt;<br/>&lt;title&gt;登录演示&lt;/title&gt;<br/>&lt;/head&gt;<br/><br/>&lt;body&gt;<br/>&lt;%<br/>Randomize<br/>SESSION(&#34;passCode&#34;) = Int(8999*Rnd+1000) &#39;生成验证码<br/>%&gt;<br/>&lt;form id=&#34;form1&#34; name=&#34;form1&#34; method=&#34;post&#34; action=&#34;Login.asp&#34;&gt;<br/>用户名：&lt;input type=&#34;text&#34; name=&#34;txtUsn&#34; id=&#34;txtUsn&#34; /&gt;&lt;br /&gt;<br/>密码：&lt;input type=&#34;text&#34; name=&#34;txtUsp&#34; id=&#34;txtUsp&#34; /&gt;&lt;br /&gt;<br/>验证码：&lt;input type=&#34;text&#34; name=&#34;txtPassCode&#34; id=&#34;txtPassCode&#34; /&gt;&lt;%=SESSION(&#34;passCode&#34;)%&gt; &lt;br /&gt;<br/>&lt;input type=&#34;submit&#34; name=&#34;btn1&#34; id=&#34;btn1&#34; value=&#34;提交&#34; /&gt;<br/>&lt;/form&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;</div></div><br/>Login.asp：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code7831);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code7831>&lt;%<br/>Response.Charset = &#34;utf-8&#34;<br/><br/>Dim usn, usp, code, msg<br/>usn = Request.Form(&#34;txtUsn&#34;)<br/>usp = Request.Form(&#34;txtUsp&#34;)<br/>code = Request.Form(&#34;txtPassCode&#34;)<br/><br/>Response.Write(Login(usn, usp, code))<br/><br/>&#39;登录函数<br/>Function Login(usn, usp, code)<br/>&#160;&#160;&#160;&#160;If SESSION(&#34;Login&#34;) = True Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Login = &#34;登录成功.&#34;<br/>&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If usn&lt;&gt;&#34;&#34; And usp&lt;&gt;&#34;&#34; Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If code&lt;&gt;CStr(SESSION(&#34;passCode&#34;)) Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Login = &#34;验证码出错,请重新输入.&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Exit Function<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If usn=&#34;admin&#34; And usp=&#34;admin888&#34; Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;SESSION(&#34;Login&#34;) = True<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Login = &#34;登录成功.&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Login = &#34;用户名或密码出错,请重新输入.&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Login = &#34;用户未登录.&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;End If&#160;&#160;&#160;&#160;<br/>End Function<br/>%&gt;</div></div><br/>GreaseMonkey脚本：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code47352);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code47352>// ==UserScript==<br/>// @name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自动登录<br/>// @namespace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.mzwu<br/>// @include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://localhost/default.asp" target="_blank" rel="external">http://localhost/default.asp</a><br/>// @require&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&nbsp; <a href="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" target="_blank" rel="external">https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js</a><br/>// ==/UserScript==<br/><br/><br/>if(typeof($) != &#34;undefined&#34;)<br/>{<br/>&#160;&#160;&#160;&#160;$(&#34;body&#34;).append(&#34;&lt;input type=\&#34;button\&#34; name=\&#34;btn2\&#34; id=\&#34;btn2\&#34; value=\&#34;登录测试\&#34; /&gt;&#34;);<br/><br/>&#160;&#160;&#160;&#160;$(&#34;#btn2&#34;).click(function(){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var usn = &#34;admin&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var usp = &#34;&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var code = $(&#34;#txtPassCode&#34;).val();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var responseText = &#34;&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var i = 0;<br/><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;while(responseText.indexOf(&#34;登录成功&#34;) == -1)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;usp = &#34;admin88&#34; + (++i); //猜解密码<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$.ajax({<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;type : &#34;POST&#34;,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;url&nbsp;&nbsp;: &#34;Login.asp?r=&#34; + Math.random(),<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;data : &#34;txtUsn=&#34; + usn + &#34;&amp;txtUsp=&#34; + usp + &#34;&amp;txtPassCode=&#34; + code,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;async: false,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;success : function(msg){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;responseText = msg;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(responseText.indexOf(&#34;登录成功&#34;) != -1)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;alert(&#34;登录成功.尝试次数:&#34; + i);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;location.href = &#34;Login.asp&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;});<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;});<br/><br/>&#160;&#160;&#160;&#160;clearInteval(timer);<br/>}</div></div><br/>测试结果：<br/><br/><img src="http://www.mzwu.com/pic/201201/072.gif" border="0" alt=""/><br/><br/><strong>2.解决方法</strong><br/><br/>提供两种解决方法供参考：<br/><br/>方法一：当验证登录用户名或密码出错时，服务器端强制生成新验证码；<br/>方法二：当尝试登录5次失败时，将帐户锁定一段时间不能登录；<br/><br/><strong>3.参考资料</strong><br/><br/>[1].Firefox扩展Greasemonkey使用示例：<a target="_blank" href="http://www.mzwu.com/article.asp?id=3091" rel="external">http://www.mzwu.com/article.asp?id=3091</a>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=3070</link>
			<title><![CDATA[Reflector+csc.exe修改.NET应用程序示例]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Fri,30 Dec 2011 11:23:07 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=3070</guid>
		<description><![CDATA[假如有个.NET控制台应用程序，功能是让用户输入一个用户名并判断是否有效用户：<br/><br/><img src="http://www.mzwu.com/pic/201112/070.gif" border="0" alt=""/><br/><br/>现在我们想修改下，不管用户输入什么用户名都返回是有效的。今天我们使用Reflector+csc.exe来对其进行修改。<br/><br/><strong>一、使用Reflector将控制台应用程序(.exe)还原为.cs文件</strong><br/><br/><img src="http://www.mzwu.com/pic/201112/071.gif" border="0" alt=""/><br/><br/><i>说明：Reflector需要安装FileDisassembler插件。</i><br/><br/><strong>二、代码修改</strong><br/><br/>用记事本打开Program.cs，修改代码如下：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code28789);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code28789>namespace ConsoleApplication1<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;using System;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;internal class Program<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private static bool CheckUser(string username)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:Red">//return (username == &#34;admin&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private static void Main(string[] args)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write(&#34;UserName:&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (CheckUser(Console.ReadLine()))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;Valid&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;Invalid&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}</div></div><br/><strong>三、使用csc.exe对.cs文件进行编译</strong><br/><br/>csc.exe是VS自带的C#编译器，打开Visual Studio 2008 命令行工具，执行如下命令：<br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">D:\Program Files\Microsoft Visual Studio 9.0\VC&gt;csc.exe /out:F:\ConsoleApplicati<br/>on1\c.exe F:\ConsoleApplication1\Program.cs</div></div><br/>执行完成后，打开生成的c.exe看下效果：<br/><br/><img src="http://www.mzwu.com/pic/201112/072.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=3010</link>
			<title><![CDATA[FC魂斗罗1代、2代调人数秘技]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Sat,15 Oct 2011 19:24:45 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=3010</guid>
		<description><![CDATA[<strong>1.魂斗罗1代30个人</strong><br/><br/>在未按Sel&#101;ct和START之前，按&#34;上上下下左右左右BA&#34;(B为单发开枪A为单发跳跃)即可。<br/><br/><img src="http://www.mzwu.com/pic/201110/011.gif" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/201110/012.gif" border="0" alt=""/><br/><br/><strong>2.魂斗罗2代10个人</strong><br/><br/>在未按Sel&#101;ct和START之前，按&#34;右左下上AB&#34;(A为单发跳跃B为单发开枪)即可。<br/><br/><img src="http://www.mzwu.com/pic/201110/013.gif" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/201110/014.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2978</link>
			<title><![CDATA[我们能相信自己的眼睛吗？]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Thu,25 Aug 2011 00:17:35 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2978</guid>
		<description><![CDATA[几天前，一个客户向我们提交了一个病毒文件样品(SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, 检测认定为TrojanDro&#112;per:Win32/Vundo.L病毒)。这种特洛伊病毒在hosts文件里劫持“vk.com” 和 “vkontakte.ru”这两个域名(两个都是俄罗斯的社交网站)，把它们重定向到92.38.209.252，但它们的实现方法却很独特。<br/><br/>要想劫持一个网站，把它重定向到自己指定的地址，黑客通常的做法是修改Windows系统里位于%SystemRoot%system32driversetc目录下的hosts文件。然而，当我们打开这个受感染的计算机上的hosts文件时，却没有发现任何的跟“vk.com” 和 “vkontakte.ru”相关的条目,就像你在下图中看到的一样。<br/><br/><img src="http://www.mzwu.com/pic/201108/062.jpg" border="0" alt=""/><br/><br/>但当我们显示出隐藏文件时，却看到了另外一个“hosts”文件。是个隐藏文件，你可以在下图中看见它们：<br/><br/><img src="http://www.mzwu.com/pic/201108/063.jpg" border="0" alt=""/><br/><br/>在etc目录下有两个名称完全相同的文件，都是“hosts”！这怎么可能？<br/><br/>大家都知道，一个文件夹里不可能存在两个名称完全一样的文件。我们把这两个文件名拷贝到notepad里，存成Unicode文本文件，用十六进制文件编辑器打开，看到如下的结果(上面的是第一个“hosts”文件，下面的是第二个“host”文件)：<br/><br/><img src="http://www.mzwu.com/pic/201108/064.jpg" border="0" alt=""/><br/><br/>在Unicode(UTF-16)中，0x006F 和 0x6F 表示的是相同的ASCII字符，都是字符“o”。但Unicode中的0x043E是个什么字符呢？从Unicode字符表中我们能找到了它(范围：0400-04FF)。下图就是部分的字符表。<br/><br/><img src="http://www.mzwu.com/pic/201108/065.jpg" border="0" alt=""/><br/><br/>我们可以看到，Unicode 0x043E 是一个西里尔字母（斯拉夫语言, 如俄语和保加利亚语所用的字母），它跟英语字符“o”非常的相似。<br/><br/>所以，这隐藏的“hosts”事实上才是我们真正的hosts文件。当我们打开这个文件，发现在文件的末尾多了两行内容：<br/><br/><img src="http://www.mzwu.com/pic/201108/066.jpg" border="0" alt=""/><br/><br/>谜团解开了！<br/><br/>这并不是我们第一次发现黑客用Unicode字符来迷惑人们。在2010年8月，一个中国黑客揭示了一个使用Unicode控制字符来误导人们点击可执行文件的骗术。黑客使用Unicode控制字符0x202E (RLO)来反转文件名中的特定部分，使你在Windows中看到的文件名变成了另外一个样子。<br/><br/>例如，建一个叫做“picgpj.exe”的文件，就像下面这样：<br/><br/><img src="http://www.mzwu.com/pic/201108/067.jpg" border="0" alt=""/><br/><br/>文件名中的“gpj.exe”部分是特意设计的。当你把一个RLO字符放到文件名中“gpj.exe”部分之前后，这个文件名变成了下面这个样子：<br/><br/><img src="http://www.mzwu.com/pic/201108/068.jpg" border="0" alt=""/><br/><br/>黑客通常会给这样的文件加上一个图片图标。粗心的人就会把这个文件当成一个图片，轻率的双击打开它，实际上是运行了一个可执行文件。很显然，这种骗术对于Unicode敏感的程序是无效的，但如果用人眼识别，你很难发现问题。<br/><br/>我们能相信自己的眼睛吗？答案是…不能。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2931</link>
			<title><![CDATA[ILdasm+ILasm修改.NET应用程序示例]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Wed,20 Jul 2011 11:57:08 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2931</guid>
		<description><![CDATA[假如有个.NET控制台应用程序，功能是让用户输入一个用户名并判断是否有效用户：<br/><br/><img src="http://www.mzwu.com/pic/201107/062.gif" border="0" alt=""/><br/><br/>现在我们想修改下，不管用户输入什么用户名都返回是有效的。在Reflector中打开应用程序，发现作者没有对源代码进行加密/混淆，并且判断逻辑由CheckUser函数完成：<br/><br/><img src="http://www.mzwu.com/pic/201107/063.gif" border="0" alt=""/><br/><br/>好了，这样子我们就可以使用ILdasm+ILasm对其进行修改了。<br/><br/><strong>一、使用ILdasm将exe文件反编译为IL代码</strong><br/><br/>打开VS2008命令行工具，执行如下命令：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code64151);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code64151>D:\Program Files\Microsoft Visual Studio 9.0\VC&gt;ildasm /out=f:\test\ConsoleApplication1.il f:\test\ConsoleApplication1.exe</div></div><br/>将会生成ConsoleApplication1.res和ConsoleApplication1.il两个文件。<br/><br/><strong>二、IL代码修改</strong><br/><br/>用记事本打开ConsoleApplication1.il文件，找到如下内容：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code90854);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code90854>.method private hidebysig static bool&nbsp;&nbsp;CheckUser(string username) cil managed<br/>{<br/>// 代码大小&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17 (0x11)<br/>.maxstack&nbsp;&nbsp;8<br/>IL_0000:&nbsp;&nbsp;ldarg.0<br/>IL_0001:&nbsp;&nbsp;ldstr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;admin&#34;<br/>IL_0006:&nbsp;&nbsp;call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool [mscorlib]System.String::op_Equality(string,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string)<br/>IL_000b:&nbsp;&nbsp;brfalse.s&nbsp;&nbsp;IL_000f<br/><br/>IL_000d:&nbsp;&nbsp;ldc.i4.1<br/>IL_000e:&nbsp;&nbsp;ret<br/><br/>IL_000f:&nbsp;&nbsp;ldc.i4.0<br/>IL_0010:&nbsp;&nbsp;ret<br/>} // end of method Program::CheckUser</div></div><br/>修改第IL_000f行内容并保存：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code10744);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code10744>IL_000f:&nbsp;&nbsp;ldc.i4.1</div></div><br/><strong>三、使用ILasm将IL代码编译成exe文件</strong><br/><br/>在VS2008命令行工具执行如下命令：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code77632);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code77632>D:\Program Files\Microsoft Visual Studio 9.0\VC&gt;ilasm /resource=f:\test\ConsoleApplication1.res /output=f:\test\ConsoleApplication2.exe /exe f:\test\ConsoleApplication1.il<br/><br/>Microsoft (R) .NET Framework IL Assembler.&nbsp;&nbsp;Version 2.0.50727.4927<br/>Copyright (c) Microsoft Corporation.&nbsp;&nbsp;All rights reserved.<br/>Assembling &#39;f:\test\ConsoleApplication1.il&#39;&nbsp;&nbsp;to EXE --&gt; &#39;f:\test\ConsoleApplication2.exe&#39;<br/>Source file is ANSI<br/><br/>Assembled method ConsoleApplication1.Program::Main<br/>Assembled method ConsoleApplication1.Program::CheckUser<br/>Assembled method ConsoleApplication1.Program::.ctor<br/>Assembled method ConsoleApplication1.Properties.Settings::get_Default<br/>Assembled method ConsoleApplication1.Properties.Settings::.ctor<br/>Assembled method ConsoleApplication1.Properties.Settings::.cctor<br/>Creating PE file<br/><br/>Emitting classes:<br/>Class 1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConsoleApplication1.Program<br/>Class 2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConsoleApplication1.Properties.Settings<br/><br/>Emitting fields and methods:<br/>Global<br/>Class 1 Methods: 3;<br/>Class 2 Fields: 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Methods: 3;<br/>Resolving local member refs: 5 -&gt; 5 defs, 0 refs, 0 unresolved<br/><br/>Emitting events and properties:<br/>Global<br/>Class 1<br/>Class 2 Props: 1;<br/>Resolving local member refs: 0 -&gt; 0 defs, 0 refs, 0 unresolved<br/>Writing PE file<br/>Operation completed successfully</div></div><br/>结果生成一个ConsoleApplication2.exe文件，运行看下：<br/><br/><img src="http://www.mzwu.com/pic/201107/064.gif" border="0" alt=""/><br/><br/>可以了 <img src="http://www.mzwu.com/images/smilies/Face_01.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2843</link>
			<title><![CDATA[Windows7：Visual Studio 2008试用版的评估期已经结束解决方法]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Sat,30 Apr 2011 08:51:14 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2843</guid>
		<description><![CDATA[<img src="http://www.mzwu.com/pic/201104/116.gif" border="0" alt=""/><br/><br/>以前在Windows2003碰到这个问题时，都是到&#34;控制面板→添加或删除程序&#34;选择删除VS2008，然后会有个地方让输入序列号升级就可以了，但这次没有输序列号的地方：<br/><br/><img width="600" height="459" src="http://www.mzwu.com/pic/201104/117.gif" border="0" alt=""/><br/><br/>百度后说是因为我现在是使用Windows7系统，微软在Windows7系统中将输序列号的地方隐藏了[1]，需要下载一款CrackVS2008ForWindows7的软件将输入框显示出来即可[2][3]，试了下果然好用：<br/><br/><img width="600" height="531" src="http://www.mzwu.com/pic/201104/118.gif" border="0" alt=""/><br/><br/><img width="600" height="459" src="http://www.mzwu.com/pic/201104/119.gif" border="0" alt=""/><br/><br/><img width="600" height="459" src="http://www.mzwu.com/pic/201104/120.gif" border="0" alt=""/><br/><br/><strong>注释说明</strong><br/><br/>[1].windows 7下vs2008破解试用版的评估期结束：<a href="http://apps.hi.baidu.com/share/detail/30333016" target="_blank" rel="external">http://apps.hi.baidu.com/share/detail/30333016</a><br/>[2].CrackVS2008ForWindows7下载：<a href="http://ishare.iask.sina.com.cn/f/8254416.html" target="_blank" rel="external">http://ishare.iask.sina.com.cn/f/8254416.html</a><br/>[3].Visual Studio 2008正式版序列号：PYHYP-WXB3B-B2CCM-V9DX9-VDY8T]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2752</link>
			<title><![CDATA[一步搞定WinRAR注册]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Sat,15 Jan 2011 14:16:55 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2752</guid>
		<description><![CDATA[WinRAR不强制注册，但过了试用期每次打开它都会弹出一个注册提示：<br/><br/><img src="http://www.mzwu.com/pic/201101/032.gif" border="0" alt=""/><br/><br/>下边提供几个注册码，大家只要复制相应版本的注册码，粘贴到记事本中，再保存到WinRAR安装文件夹中即可，保存文件名为rarreg.key，默认安装文件夹为C:\Program Files\WinRAR\。<br/><br/><strong>WinRAR4.01注册码</strong><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">RAR registration data<br/>MFZYW.NET<br/>Unlimited Company License<br/>UID=4aee223094e315d53b9e<br/>64122122503b9ebc644eb9b3c79c51f627529601231143dbeaf2e7<br/>7fbf4c490ec22a156bad60fce6cb5ffde62890079861be57638717<br/>7131ced835ed65cc743d9777f2ea71a8e32c7e593cf66794343565<br/>b41bcf56929486b8bcdac33d50ecf7739960c9efe6f48b7431aeb3<br/>6591672135fe806fcd4ff26d85d05ef5afff9b1e3b7c7551fea268<br/>b5d29f7a0f896abf9559e4394374bc3c30aeac0843c11e0560ad69<br/>9356a86749410ce0058f300e24a185c0cc7590d0543a3625819200</div></div><br/><strong>WinRAR3.9注册码</strong><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">RAR registration data<br/>MFZYW.NET<br/>Unlimited Company License<br/>UID=4aee223094e315d53b9e<br/>64122122503b9ebc644eb9b3c79c51f627529601231143dbeaf2e7<br/>7fbf4c490ec22a156bad60fce6cb5ffde62890079861be57638717<br/>7131ced835ed65cc743d9777f2ea71a8e32c7e593cf66794343565<br/>b41bcf56929486b8bcdac33d50ecf7739960c9efe6f48b7431aeb3<br/>6591672135fe806fcd4ff26d85d05ef5afff9b1e3b7c7551fea268<br/>b5d29f7a0f896abf9559e4394374bc3c30aeac0843c11e0560ad69<br/>9356a86749410ce0058f300e24a185c0cc7590d0543a3625819200</div></div><br/><strong>WinRAR3.80注册码</strong><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">RAR registration data<br/>Federal Agency for Education<br/>1000000 PC usage license<br/>UID=b621cca9a84bc5deffbf<br/>6412612250ffbf533df6db2dfe8ccc3aae5362c06d54762105357d<br/>5e3b1489e751c76bf6e0640001014be50a52303fed29664b074145<br/>7e567d04159ad8defc3fb6edf32831fd1966f72c21c0c53c02fbbb<br/>2f91cfca671d9c482b11b8ac3281cb21378e85606494da349941fa<br/>e9ee328f12dc73e90b6356b921fbfb8522d6562a6a4b97e8ef6c9f<br/>fb866be1e3826b5aa126a4d2bfe9336ad63003fc0e71c307fc2c60<br/>64416495d4c55a0cc82d402110498da970812063934815d81470829275</div></div><br/><strong>WinRAR3.71注册码</strong><br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">RAR registration data<br/>cafevn<br/>Single PC usage license<br/>UID=bff246844b5c5708595a<br/>6412212250595aa9dfb5db06ca5c5b29cb38d3c346df871e689fcd<br/>26d40cd6724c7fea7a256035c6ab9048e2c5c62f0238f183d28519<br/>aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0<br/>c3e4c2736090b3dfa45384e08e9de05c58601faaa5bf2fd204421a<br/>0af4a66c04f5f95c750b942c262c8defc92d51753d37c41772b696<br/>179d2401468afd8cdf6b526bd713b62d9d1c8b39f8f5c862600bd1<br/>6f2be0ead43d89dc20da9c292bbc37165bb690729a430802790431</div></div><br/><a target="_blank" href="http://www.mzwu.com/pic/202202/rarreg.txt" rel="external">@</a>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2747</link>
			<title><![CDATA[CodeSmith Professional 4.1注册方法]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Tue,11 Jan 2011 15:53:02 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2747</guid>
		<description><![CDATA[<img src="http://www.mzwu.com/pic/201101/010.gif" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/201101/011.gif" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/201101/012.gif" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/201101/013.gif" border="0" alt=""/><br/><br/><img src="http://www.mzwu.com/pic/201101/014.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2686</link>
			<title><![CDATA[用peid查看dll文件用什么语言编写的]]></title>
			<author>service@mzwu.com(dnawo)</author>
			<category><![CDATA[网络破解]]></category>
			<pubDate>Fri,19 Nov 2010 09:59:42 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2686</guid>
		<description><![CDATA[有时拿到一个dll，它可能是用C#编写的，也可能是VB或C++，下边介绍一个工具peid，它能快速查看dll文件是用什么语言编写的。<br/><br/>运行peid，打开一个dll文件，界面上立即显示出它是用什么语言编写的：<br/><br/><img src="http://www.mzwu.com/pic/201011/049.gif" border="0" alt=""/><br/><br/>peid下载地址：<a href="http://www.pediy.com/tools/unpack/File_analysers/peid/peid.rar" target="_blank" rel="external">http://www.pediy.com/tools/unpack/File_analysers/peid/peid.rar</a>]]></description>
		</item>
		
</channel>
</rss>
