求助maxtocode 脱壳工具解密

&&&&maxtocode 3.5.0.705 专业版 完美破解版.rar
maxtocode 3.5.0.705 专业版 完美破解版.rar
完美破解,你懂的,本人亲测可用,
.NET 3.5你要勾下VS2008才行
若举报审核通过,可奖励20下载分
被举报人:
jiangliang57
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行MaxtoCode对.Net程序加密的原理及解密探讨(图)
日06:43  来源:
  上一回我们试验了通过反射的方式获取method的源代码。  上一回我们试验了通过反射的方式获取method的源代码。  这次我们就用一个实例来演示dump一个程序集中的所有类型和方法的IL源代码。  首先打开VS2005 新建一个C#的windows程序:  在窗体添加添加一个2个button,2个label,一个textbox,一个checkbox,一个savefiledialog。  界面如下:事件代码如下:  1 public class Form1 : Form   2  3 // Methods  4 //选择IL字节码保存文件  5 private void button1_Click(t sender, EventArgs e)  6  7 if (this.saveFileDialog1.ShowDialog() DialogResult.OK)  8  9 this.textBox1.Text = this.saveFileDialog1.FileN  10  11  12 //点击开始dump。  13 private void button3_Click(t sender, EventArgs e)  14  15 this.button3.Enabled =  16this.DumpAssembly(Assembly.GetExecutingAssembly(),this.textBox1.Text);  17 MessageBox.Show("dump ok");  18 this.button3.Enabled =  19  20 //这个函数将一个Assembly全部dump到path中。  21 private void DumpAssembly(Assembly ass, string path)  22  23 StreamWriter writer1 = new StreamWriter(path, false);  24 Type typeArray1 = ass.GetTypes();  25 for (int num1 = 0; num1 & typeArray1.L num1++)  26  27 this.DumpType(typeArray1[num1], writer1);  28  29 writer1.Flush();  30 writer1.Close();  31  32  33 //dump单个类型,由dumpassembly调用  34 private void DumpType(Type tp, StreamWriter sw)  35  36 BindingFlags flags1 =BindingFlags.NonPublicBindingFlags.Public BindingFlags.StaticBindingFlags.InstanceBindingFlags.DeclaredO  37 string text1 = tp.ToString();  38 sw.Write("TYPE: " + text1 + "\r\n");  39 if (tp.IsEnum)  40  41 sw.Write("IsEnum ");  42  43 if (tp.IsImport)  44  45 sw.Write("IsImport ");  46  47 if (tp.IsNested)  48  49 sw.Write("IsNested ");  50  51 if (tp.IsClass)  52  53 sw.Write("IsClass");  54  55 sw.Write("\r\n");  56 if ((text1 != "InFaceMaxtoCode") !this.checkBox1.Checked)  57  58 sw.Write("**********Begin MrInfo**********\r\n");  59 MrInfo infoArray1 = tp.GetMrs(flags1);  60 for (int num1 = 0; num1 & infoArray1.L num1++)  61  62 MrInfo info1 = infoArray1[num1];  63 sw.Write(info1.MrType.ToString() + "\t"+infoArray1[num1].ToString() + "\r\n");  64 if ((info1.MrType MrTypes.Method)(info1.MrTypeMrTypes.Constructor))  65  66 this.DumpMethod((MethodBase) info1, sw);  67  68  69 sw.Write("********** End MrInfo**********\r\n");  70 sw.Write("\r\n\r\n");  71  72  73  74  75  76 //dump单个方法,由dumptype调用  77 private void DumpMethod(MethodBase mb, StreamWriter sw)  78  79 MethodBody body1 = mb.GetMethodBody();  80 if (body1 != null)  81  82 byte buffer1 = body1.GetILAsByteArray();  83 try  84  85 sw.Write("\tMaxStackSize: "+body1.MaxStackSize.ToString());  86 sw.Write("\tCodeSize: " + buffer1.Length.ToString());  87 sw.Write("\r\n");  88  89 catch (Exception exception1)  90  91 MessageBox.Show("1:" + mb.ToString() + "\r\n"+exception1.ToString());  92  93 foreach (LocalVariableInfo info1 in body1.LocalVariables)  94  95 sw.Write("LocalVar: " + info1.ToString());  96 sw.Write("\r\n");  97  98 sw.Write("\r\n\r\n");  99 StringBuilder builder1 = new StringBuilder();  100 foreach (byte num1 in buffer1)  101  102 builder1.Append(num1.ToString("X2"));  103  104 sw.Write(builder1.ToString());  105 sw.Write("\r\n\r\n");  106 foreach (ExceptionHandlingClause clause1inbody1.ExceptionHandlingClauses)  107  108 sw.Write(clause1.ToString());  109 sw.Write("\r\n");  110  111 sw.Write("\r\n");  112  113  114  115  116  117  118  119  120  121  编译这个程序,运行,dump出il字节码,  然后拿 maxtocode加密。再运行,dump出il字节码,然后找一个method如button1_click,比较一下他们的IL字节码是否一样。  当然结果应该是一样的。  这里主要有三个关键函数  private void DumpAssembly(Assembly ass, string path);  private void DumpMethod(MethodBase mb, StreamWriter sw);  private void DumpType(Type tp, StreamWriter sw);  这三个就是一个例子演示如何dump整个程序集。
【作者:佚名 来源:】
(责任编辑:和讯网站)
05/18 11:1505/13 10:2505/13 10:2505/13 10:2505/05 10:14
感谢您的参与!查看[]
script src="/track/track_xfh.js?ver="> 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
MaxtoCode对 Net程序加密的原理及解密探讨
下载积分:400
内容提示:这里研究的对象是MaxtoCode 3 1试用版 这里只探讨程序代码的加..
文档格式:PDF|
浏览次数:171|
上传日期: 16:32:55|
文档星级:
该用户还上传了这些文档
MaxtoCode对 Net程序加密的原理及解密探讨
官方公共微信MaxtoCode对.Net程序加密的原理及解密探讨二-中国学网-中国IT综合门户网站
MaxtoCode对.Net程序加密的原理及解密探讨二
来源:互联网 更新时间: 15:32:04 责任编辑:鲁晓倩字体:
MaxtoCode对.Net程序加密的原理及解密探讨二&自上次写第一篇文章到现在不知不觉两个月过去了,这篇文章我们将介绍怎么获取解密后的IL字节代码。我们先回顾一下前文,在上一回我们提到&InFaceMaxtoCode.Startup&正常启动后,在整个程序集中只会运行一次。&。当时这种说法是很武断的,如果&&InFaceMaxtoCode.C______(num2,&num3)&&的返回值总是&false的话,该函数就会被执行多次,不过根据后来动态调试的结果,我们证实了&InFaceMaxtoCode.C______(num2,&num3)&&的返回值为&true,因此上次的说法是正确的。现在言归正传,怎么取得解密后的代码呢?大概两个方向,1.正面交锋,直接攻破maxtocode的运行库。这就将问题直接回到了传统的win32层面,不过这个东西是业内人士写的在这方面的保护工作做得很好,像我这样的菜鸟就很难直接攻破了。我曾有一个设想,就是通过分析运行库找到解密函数的入口,然后弄一个stub&dll,hook这个地方,把解密后的il代码dump出来。实际跟踪几次后我就放弃了。从跟踪到的信息来看,我猜测,运行库是通过&mscorwks.dll&挂接到&jit,在jit的前面实时解密代码。理论上我们也可以挂一个到jit前面,在那里dump解密的il代码,不过这个实现的方式,还不清楚,如果弄明白了,也就能写一个同样原理的加密软件了。这个难度比较大,所以我最终放弃了这个方案。2.避开运行库,我们直接利用dotNet&2.0的特性获取IL代码。如是我就试着用2.0写了一个winform程序,加密,运行,发现报错。maxtocode3.1不支持2.0的winform程序,这就使我的这个方案实验夭折了。两个月过去了,发现maxtocode升级到3.11了修正了这个bug,今天终于可以继续实验了。我们来建一个简单的winform程序。一个窗体,然后一个按钮。代码如下:&1&using&S&2&using&System.Collections.G&3&using&ponentM&4&using&System.D&5&using&System.D&6&using&System.T&7&using&System.Windows.F&8&using&System.R&9&using&S10&namespace&Test511&{12&&&&&public&partial&class&Form1&:&Form
相关文章:
上一篇文章:下一篇文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 maxtocode 的文章

 

随机推荐