小隐的博客

人生在世,笑饮一生
随笔 - 304, 文章 - 0, 评论 - 349, 阅读 - 50万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

为使用Sixxpack加壳的.net程序脱壳

Posted on   隐客  阅读(3981)  评论(1编辑  收藏  举报

今天看到一个程序,用万能的reflector 看了一下,竟然只有一个actmp.dll ,如何谷歌了一下,发现是用的一款叫Sixxpack进行了压缩和加壳

网上有人说非常安全,那个寒...

说一下脱壳的过程

一、用reflector 直接输出项目

二、打开项目,编译,会有一些类型的小错误,修正一下

三、修改一行代码

   Stream stream2 = new FileStream(Application.ExecutablePath.Substring(Application.ExecutablePath.LastIndexOf('\\') + 1), FileMode.Open, FileAccess.Read);

  改成:

  Stream stream2 = new FileStream(@"c:\hhh.exe", FileMode.Open, FileAccess.Read);  //这个路径指的是那个被加壳的程序

四、加一行代码 

  在这行之前:Assembly assembly = Assembly.Load(compressor.Decompress(inStream));

  加上:System.IO.File.WriteAllBytes(@"c:\test.exe", compressor.Decompress(inStream));要不要retrun,自己看着办

五、c:\test.exe 就是被脱壳的程序了。

结论:

1、该种方法就是将原程序写在固定程序的尾部,加了之后,是不会影响固定程序的运行的,好像N多年前搞VB的时候,玩过这种方法,包括现在很多flash文件的exe形式,也是这样的

2、固定文件的大小是固定,像上面的这个就是 internal static int orig = 0xa000; 

3、在加到尾部之前,使用了7-zip进行了压缩!(该代码可以好好用下)

4、上面的方法很烂!!!

5、要保护.net代码还是建议大家使用混淆名称和混淆流程的保护软件,reflector自己的对立软件就不错,真的是矛和盾啊!!

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
QQ交流
点击右上角即可分享
微信分享提示