sixxpack破解的文章!【转】
星期天闲着没事玩游戏,玩游戏不能无外挂。于是百度了半天,找到了一个,看介绍貌似不错,就下载了下来。一看,竟然是用.net写的,下意识地Reflector了一下。发现竟是一个叫actmp的程序集。如图:
{
usingSystem;
usingSystem.IO;
usingSystem.Reflection;
usingSystem.Windows.Forms;
internalclassstub
{
internalstaticintorig =0x8000;//加密程序集的偏移量
[STAThread]
privatestaticvoidMain(string[] args)
{
try
{
AppDomain.CurrentDomain.AssemblyResolve +=newResolveEventHandler(stub.myResolveEventHandler);//程序集解析失败的后路
}
catch(Exception)
{
}
object[] parameters =newobject[] { args };//参数,如果有,就传给解压出来的程序集
MemoryStream inStream =newMemoryStream();//构造一个内存流
Stream stream2 =newFileStream(Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf('//') +1), FileMode.Open, FileAccess.Read);//打开一个文件流,指向正在运行的这个文件
stream2.Position =orig;//当前流的位置设置为加密程序集的偏移量
byte[] buffer =newbyte[stream2.Length -orig];//一个缓冲字节数组,长度为加密程序集的长度,用来存储加密程序集
stream2.Read(buffer, 0, Convert.ToInt32(buffer.Length));//把加密程序集读取到缓冲数组里
inStream.Write(buffer, 0, buffer.Length);//把加密程序集从缓冲数组里写到内存流里
inStream.Seek(0L, SeekOrigin.Begin);//把当前流的位置放到开始处
Compressor compressor =newCompressor();
Assembly assembly =Assembly.Load(compressor.Decompress(inStream));//把内存流中的数据解压出来,并加载到一个程序集
try
{
assembly.EntryPoint.Invoke(null, parameters);//执行这个程序集的入口方法,并传给参数
}
catch
{
assembly.EntryPoint.Invoke(null, null);//没有参数的话就不传
}
}
privatestaticAssembly myResolveEventHandler(objectsender, ResolveEventArgs args)
{
stringpath =args.Name.ToString().Trim().Split(newchar[] { ','})[0].ToString().Trim();
if(path.IndexOf(".") >=0)
{
path =path.Replace(".", "_") +".dll";
}
else
{
path ="_"+path +".dll";
}
MemoryStream inStream =newMemoryStream();
Stream stream2 =newFileStream(path, FileMode.Open, FileAccess.Read);
byte[] buffer =newbyte[stream2.Length];
stream2.Read(buffer, 0, Convert.ToInt32(buffer.Length));
inStream.Write(buffer, 0, buffer.Length);
inStream.Seek(0L, SeekOrigin.Begin);
Compressor compressor =newCompressor();
returnAssembly.Load(compressor.Decompress(inStream));
}
}
}
private void btnDecompress_Click(object sender, EventArgs e)
try
{
Assembly assembly =Assembly.LoadFile(txtAssemblyPath.Text);//加载指定程序集
if(assembly !=null)
{
if(assembly.FullName.Contains("actmp,"))//看看是不是Sixxpack压缩过的程序集
{
Type compressorClass =assembly.GetType("Sixxpack.Compressor");//得到Compressor方法的类型
MethodInfo DecompressInfo =compressorClass.GetMethod("Decompress");//Decompress方法,供后面使用
intorig =Convert.ToInt32(assembly.GetType("Sixxpack.stub").GetField("orig", BindingFlags.NonPublic |BindingFlags.Static).GetValue(null));//压缩后的程序集的偏移量,我虽然强烈怀疑就是0x8000,为了保险起见,还是反射出来吧。
#region这段照抄Main方法的内容
MemoryStream inStream =newMemoryStream();
Stream stream2 =assembly.GetFiles()[0];//这么写就可以了
stream2.Position =orig;
byte[] buffer =newbyte[stream2.Length -orig];
stream2.Read(buffer, 0, Convert.ToInt32(buffer.Length));
inStream.Write(buffer, 0, buffer.Length);
inStream.Seek(0L, SeekOrigin.Begin);
#endregion
byte[] data =(byte[])DecompressInfo.Invoke(Activator.CreateInstance(compressorClass), newobject[] { inStream });//调用Decompress方法,获得原始程序集的数据
if(sfdAssembly.ShowDialog() ==DialogResult.OK)
{
sfdAssembly.OpenFile().Write(data, 0, data.Length);//把数据保存到指定文件,OK,完工!
}
MessageBox.Show("文件解压成功!", "恭喜", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("未找到正确的程序集!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
else
{
MessageBox.Show("该文件没有程序集!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
转载于:https://www.cnblogs.com/zhangzhu/p/3230396.html
sixxpack破解的文章!【转】相关推荐
- CSDN不支持idea破解版文章的发布
现在CSDN已经不支持关于idea破解文章的发布了.不仅如此,知乎,码云也都不支持了. 对你有帮助的话不妨点个赞再走吧
- android黑科技系列——静态分析技术来破解Apk
一.前言 从这篇文章开始我们开始我们的破解之路,之前的几篇文章中我们是如何讲解怎么加固我们的Apk,防止被别人破解,那么现在我们要开始破解我们的Apk,针对于之前的加密方式采用相对应的破解技术,And ...
- 《YES!B/S!》博客文章导读索引(20080612更新)
这里是广告哦 写在前面 为了方便大家的查询.阅读,特将本博客中,比较有阅读价值的原创文章,进行了分类整理.小弟才疏,文章中难免有些不合理甚至错误的地方,请大家不吝斧正,不胜感激. 此索引非实时更新(最 ...
- ArcGIS Server9.3+ArcGIS Desktop9.3破解安装(for microsoft .net)
操作系统:windwos server 2008 enterprise edition 安装文件:ArcGIS Server 9.3 ArcGIS Desktop 9.3 ...
- 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解
From: http://softbbs.zol.com.cn/1/32_7991.html 每天都能看到有不少网友在回复论坛之前发布的一篇破解WiFi密码的帖子,并伴随各种疑问.今天流云就为大家准备 ...
- 《俪影2046》v2.09 完美破解
[文章标题]: <俪影2046>v2.09 完美破解 [文章作者]: ccrack [作者邮箱]: ccrack@126.com [作者主页]: http://blog.csdn.net/ ...
- Python暴力破解教程: Zip加密文件, pdf加密书籍在线爆破!
点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明 ...
- 应用软件之xx文库破解器
应用软件工具之xx文库破解器 文章目录 应用软件工具之xx文库破解器 前言 一.XX文ku下载器 二.小ye下载 前言 在阅读某文库的时候常常需要付费才能读取,现在弄一个工具帮助大家如何不需要付费即可 ...
- Altium designer 10安装破解以及出现缺少mfc71.dll文件的情况处理
AD10破解文件百度网盘:https://pan.baidu.com/s/1OZnZ0DOsSj0a8255AwVuMA 提取码:yi03 文件mfc71.dll百度网盘:https://pan.ba ...
最新文章
- android x86 三星,三星主刀 X86架构Android4.X手机CES见
- Automation Test in Maya Plugin Development
- 在matlab中将处理结果输出为shp文件
- Linux线程-互斥锁pthread_mutex_t
- Qt翻译相关类之QDataStream
- Java中List详解
- java定义一个getsize方法,long getSize()
- python 多线程入门试验
- springboot api文档_SpringCloud/SpringBoot - 自动生成API文档
- UIView的autoresizingMask属性
- Dubbo与Spring Cloud
- 一条数据的HBase之旅,简明HBase入门教程2:数据模型
- LBRY:美SEC对我们的指控将威胁到整个加密货币行业
- 【修真院web小课堂】如何理解html结构的语义化
- 使用Navicat备份指定数据库表
- VUE_v-lazy懒加载
- Android开发指南
- 激光测距仪工作模式及维保——TFN BKD系列双目激光测距仪
- [转载]Office文档在线编辑的实现之二
- 什么是UML,UML类图
热门文章
- 二、SpringMVC 注解式开发学习笔记
- python网络爬虫系列(五)——数据提取 jsonpath模块
- 九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)
- LeetCode 840. 矩阵中的幻方(数学)
- python增加子类的参数_python 子类向父类传递关键字参数
- python中流程图_python用graphviz画流程图
- jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...
- websocket 带头部信息请求 header_关于websocket跨域的一个奇怪问题
- 智能支付稳定性测试实战
- 领域应用 | 推荐算法不够精准?让知识图谱来解决