.Net 破解技术

来源:互联网 发布:抽奖内定软件 编辑:程序博客网 时间:2024/05/18 03:55

作者:CsToD

QQ:544125362

QQ群: 22698021

 

下载地址:

 

http://download.csdn.net/source/2850709

 

关于技术细节,请参考我之前的文章《托管注入深入研究》

 

我这里主要是给大家介绍一下我开发的软件SuperSpy及其插件

 

 

前言:SuperSpy是我在大学时期写的一个程序,一直在使用,很方便,不过当时写得很粗糙,近期对其进行了升级,使其更为强大。

 

文件说明:整个软件共有6个文件

1.     SuperSpy.exe 主程序,可用于探测、操作窗口,判断进程类型等,并提供插件注入的入口(C#开发)

2.     Invoke2.dll 实现基于CLR2的插件注入(C++/CLI开发)

3.     Invoke4.dll 实现基于CLR4的插件注入(C++/CLI开发)

4.     PropertyControl 插件,用于操作WinForm窗口(VB.NET开发)

5.     PropertyControlForWPF 插件,专用于WPF的属性编辑器(C#开发)

6.     SuperSpy.exe.config 用于CLR版本控制 (XML格式的纯文本文件)

 

功能简介:

 

一:SuperSpy

SuperSpy是一个面向Windows的程序,并非特定于.Net(如果你专门针对.NET程序,请使用附加的两个插件)

 

 

 

使用说明:

启动软件后,可以在标题栏看到当前程序的运行时,你可以使用右边的“切换到CLR“按钮来切换到另一个运行时(也可以自己在.config文件中配置)

首先拖拽“窗口探测器“的小图标到你希望探测的窗口,这时候程序会用反色来描绘探测到的窗口的边框(在Win7中,由于主窗口的边框是透明的,这个效果不明显,但是子控件还是比较明显的),同时,相应的文本框会显示对应的信息。比较有用的功能是:

1.     禁用/取消禁用窗口,这相当于“灰色按钮突破器”,有的软件没注册,某些功能就灰掉而无法使用,可以通过这个功能来解除该限制(仅用于Win32程序,.Net程序请使用插件PropertyControl来实现同样的功能)

2.     置顶/取消置顶窗口

3.     修改标题

4.     结束进程 可用于替代任务管理器的相关功能(如果程序没有窗口,需要手动填写进程ID)

5.     进程类型判断 这是一个十分有用的功能,一般我们判断程序的类型用的静态方法,也就是基于文件的方法,比如PEID,Reflector等,但是如果程序加了壳,判断往往不准确;该方法是基于进程的,比较准确,一共支持三种类型:非托管进程/CLR2/CL4(如果显示的是CLR2或CLR4,说明是.NET程序) 。请注意,我这里使用的是“CLR”,而不是“.Net“,实际上.Net 2.0/3.0/3.5的内核都是CLR2.0

6.     开发语言判断:通过窗口的类名,可以“推测”软件的开发语言,比如如果类名是”Button”,”Static”这样非常简单、规范的名称,一般是C/C++程序;如果类名含有一个T前缀,比如”TButton”,”TTextBox”,一般是Delphi程序;如果类名含有一个ThunderR6前缀,一般是VB开发的

7.     功能模块判断 :有的时候你需要知道某个窗口是哪一个dll编写的,可以在“模块中看到”,如截图中的模块是MSVBVM60.dll,通过这个名称,你也应该知道,目标程序是一个VB程序,上面的类名也正好说明了这一点

8.     远程注入 这是该软件的最大亮点,可以支持插件,从而实现丰富的功能。只要遵循插件的规范,任何人都可以编写插件。

插件的规范是:

在任意一个类中定义如下成员:

Public static void Inject()//注入后要执行的函数

{

}

Public static string Desription//插件的描述

{

Get;

}

我本人为大家编写了两个插件,后面会讲到的。

另外,SuperSpy还提供了一个功能:

如果插件向SuperSpy的主窗口发送了一个ID号为2000,wParam为插件窗口句柄的消息,则SuperSpy会在探测到窗口后,向插件窗口发送ID号为2000,wParam为所探测的窗口句柄的消息。(你会注意到:在PropertyControl插件中,其本身并没有窗口探测功能,但是其可以利用SuperSpy的探测功能自动切换对应控件的属性;而在PropertyControlForWPF中,我并没有实现该功能,而是重写了一个窗口探测器)

 

二: PropertyControl

该插件专用于.NET 的WinForm程序,注入后,可以看到:

左侧窗口树上显示四项数据:

字段名,Name属性,控件类型,控件的CLR类型(用于自定义控件)

 

这里面非常重要的是字段名和Clr类型,因为有的程序经过了字符串混淆,破解时往往知道哪个按钮的单击事件中有重要代码,但是并不知道怎么在Reflector中找到该按钮,有了字段名,你可以通过类名,字段名准确的定位到该控件

Clr类型也有重要,因为有的人使用的控件是自定义的,你从名字上看不出来是什么控件,通过Clr类型就知道该控件是从何处派生出来的

 

 

 

在先中某个节点后,会在右例面板显示对应的属性,只要不是灰色,就说明你可以任意修改,就像你在写程序时,直接在属性窗口中修改一样!!!(这可是别人的程序哦),比如前面提到的“灰色按钮突破”,只需要设置Enabled为True即可,跟设计时用VisualStudio里的属性窗口完全一样!

另外,右击左例面板,可以选择“统一设置所有控件属性”,这样你可以设置全部控件的属性,比如Font,Visible等!

 

三:PropertyControlForWPF

 

 

 

由于我目前专门做WPF开发(多点触摸),所以做了一个面向WPF的插件。

探测时,你可以选择是基于逻辑树的探测,还是基于可视树的探测

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/CsToD/archive/2010/11/22/6026212.aspx

原创粉丝点击