大神们,聊一聊混淆、加壳、加密的方案如何?分不多了,后面再加分吧!

神马都能聊 2015-06-06 02:07:12
大神们,聊一聊混淆、加壳、加密的方案,小弟现在在找.NET混淆、加壳、加密的方案,不知道选什么工具或者技术合适了,经过一天的了解,现在感觉基本上都可以逆向恢复,然后用工具反编译,真的是如此吗?请各位不要吝啬文字,指点一下。

另,崇尚开源的大神啊,请您嘴下留情,我现在不是不想开源啊,谢谢~!
...全文
588 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
神马都能聊 2015-06-08
  • 打赏
  • 举报
回复
引用 19 楼 Z65443344 的回复:
对于专业破解软件的人来说(不是用一些小软件来破解的见习黑客) 哪怕你已经混淆成啥软件都破解不了了 人家直接看汇编语言也能猜个大概 有可能直接修改机器码就给你破解了 也可能大部分功能人家自己实现,把你最核心的部分提出来就足够了
这个道理我也明白,只是竞争对手很快就反编译直接拿现成的,这会给公司带来风险,给竞争对手减少成本,于是才有了现在的混淆和加密需求。 另外,现很多客户没有接入互联网,不能完全采用云存储,基础的核心数据不能放在云端,要放在客户端,所以才有了这种防止破解的需求。。。
於黾 2015-06-08
  • 打赏
  • 举报
回复
对于专业破解软件的人来说(不是用一些小软件来破解的见习黑客) 哪怕你已经混淆成啥软件都破解不了了 人家直接看汇编语言也能猜个大概 有可能直接修改机器码就给你破解了 也可能大部分功能人家自己实现,把你最核心的部分提出来就足够了
於黾 2015-06-08
  • 打赏
  • 举报
回复
引用 16 楼 linkiforward 的回复:
.NET Reflector,代码混淆这个我试过,就是把几个没有关系的DLL和自己写的DLL混在一起,但是运行的时候不影响功能。混淆过后再反编译仔细看还是能把源码凑出来的
是的. 所谓混淆工具,其实就跟门锁的功能一样 门锁的功能就是让人能打开,而不是谁都打不开.谁都打不开就不叫锁了. 既然至少有一种办法能够打开,那么就能再找另一种办法来打开它. 只不过打开的过程肯定比不上直接拿钥匙开效率高罢了. 计算机软件也一样,混淆是为了一般人不认识,但是最终还是必须让计算机能认识. 专业人士还是能认出来.
超级小小 2015-06-08
  • 打赏
  • 举报
回复
不然关键部分就用C++写,C#调用。
福惜 2015-06-08
  • 打赏
  • 举报
回复
.NET Reflector,代码混淆这个我试过,就是把几个没有关系的DLL和自己写的DLL混在一起,但是运行的时候不影响功能。混淆过后再反编译仔细看还是能把源码凑出来的
於黾 2015-06-08
  • 打赏
  • 举报
回复
这世界上,没有打不开的锁,也没有破解不了的密码 你做程序不是为了让谁都不认识,而是为了让计算机能认识,能按照你写的代码去执行 既然有东西能认识这代码,那么就能反编译成人能认识的代码 除非你混淆完,计算机都不认识它是个可执行文件了
lkhuge 2015-06-08
  • 打赏
  • 举报
回复
建议你比较重要的部分混淆 这样有利于性能 要知道即使混淆后也是可以反向出来的 那只是时间问题
於黾 2015-06-08
  • 打赏
  • 举报
回复
其实真正实用性的产品里 想破解的人破解不了,给他源码他都看不懂 能破解的人根本不愿意去破解你的东西,除非你市场份额达到一定程度了,否则破解了也卖不出去,破解它干啥
於黾 2015-06-08
  • 打赏
  • 举报
回复
微软自己的windows,office,VS,都被破解了,还有啥破解不了的 问题就是你做出来的东西值得不值得别人费力破解而已了 你自我感觉良好,但是很可能你直接把源码给别人别人都懒得看
神马都能聊 2015-06-08
  • 打赏
  • 举报
回复
引用 7 楼 wyd1520 的回复:
[quote=引用 3 楼 AisaC 的回复:] [quote=引用 1 楼 wyd1520 的回复:] Xenocode 这工具如果混EXE的,他就返不了。那个返编译工具打不开这个混的东西 还有国产的叫MaxCode也是一样的。 还有拿MS自家的那个混。你多加一些拉圾代码进去,他也一样,方法里面的代码都看不到。别说返编了。
微软自带的那个我用的4.9的版本测试的,也可以逆向,然后再反编译就没问题了。。。[/quote] 逆向所有的都可逆,关键是他们逆出来的(有些方法是逆不出来)根本是无法阅读的。一堆的goto。 [/quote] 哎,再看看吧,目前还没有好的思路可以“藏”起来。谢谢
神马都能聊 2015-06-08
  • 打赏
  • 举报
回复
引用 6 楼 lili20090907 的回复:
.net 好像已经开源了,绝对的加密已经不可能,你可以用微软自带的工具。另外多加一个垃圾混淆代码,对DLL进行加密,这样就差不多了,而且现在软件方面很多大佬都慢慢的开始拥抱开源,所以不必如此纠结加密了
微软自带的那个工具有点弱,鉴于眼前的形式,绝对是不能开源啊。
神马都能聊 2015-06-08
  • 打赏
  • 举报
回复
引用 5 楼 lovelj2012 的回复:
微软.net都开源了,还整什么加壳、混淆啊?! 最初哥也准备整混淆,后来找了几个工具,效果感觉都不是很理想,而且砖家讲不保证不会产生副作用(对你的程序运行产生影响),后来就放弃了。 你想吧,=你的代码有人费事破解,你本身的技术力量或者说你公司在市场的地位,那可不是小打小闹的东东了,到那个时候你找付费混淆的软件都成。
谢谢关注
  • 打赏
  • 举报
回复
引用 20 楼 AisaC 的回复:
另外,现很多客户没有接入互联网,不能完全采用云存储,基础的核心数据不能放在云端,要放在客户端,所以才有了这种防止破解的需求。。。
没有接入互联网,也没有内部网(城域网)吗? 数据放在客户端,那就是单机啦。这样就算是有1千个客户,也不如别人有了核心技术之后只找一个大客户(而且这种客户每年都会给许多其它项目)。 而且如果一旦是后者,这几年的趋势也会是把过去花上千万人民币去铺设和运维的光纤城域网逐步改为拥抱互联网的架构的。
於黾 2015-06-08
  • 打赏
  • 举报
回复
另外,现很多客户没有接入互联网 真心不知道你们是在做啥子 没接入互联网,一般都是工业领域应用,这些一般都需要根据不同的环境定制业务的,想直接拿来用?每个用户需求都不太一样,咋用
於黾 2015-06-08
  • 打赏
  • 举报
回复
就像市面上那些游戏一样,技术有什么难度?没有难度. 难点和卖点在于玩法思路,任务设计,世界,造型的新颖. 免费安装,道具收费,VIP收费.
於黾 2015-06-08
  • 打赏
  • 举报
回复
所以现在的软件都倾向于免费,开源 赚的是广告费和周边产品,卖的是服务而不是软件本身
xuzuning 2015-06-08
  • 打赏
  • 举报
回复
混淆的代码最终还是要运行的,所以混淆后的代码中是带有反编码的算法的。只是增加了破解的难度。要是你的程序写的足够臭,让人没有反编译的欲望,那么不混淆也是没关系的 混淆代码的算法是不能讨论的,大家都知道了,混淆还有什么意义
本拉灯 2015-06-07
  • 打赏
  • 举报
回复
引用 3 楼 AisaC 的回复:
[quote=引用 1 楼 wyd1520 的回复:] Xenocode 这工具如果混EXE的,他就返不了。那个返编译工具打不开这个混的东西 还有国产的叫MaxCode也是一样的。 还有拿MS自家的那个混。你多加一些拉圾代码进去,他也一样,方法里面的代码都看不到。别说返编了。
微软自带的那个我用的4.9的版本测试的,也可以逆向,然后再反编译就没问题了。。。[/quote] 逆向所有的都可逆,关键是他们逆出来的(有些方法是逆不出来)根本是无法阅读的。一堆的goto。
lili20090907 2015-06-07
  • 打赏
  • 举报
回复
.net 好像已经开源了,绝对的加密已经不可能,你可以用微软自带的工具。另外多加一个垃圾混淆代码,对DLL进行加密,这样就差不多了,而且现在软件方面很多大佬都慢慢的开始拥抱开源,所以不必如此纠结加密了
江南小鱼 2015-06-07
  • 打赏
  • 举报
回复
微软.net都开源了,还整什么加壳、混淆啊?! 最初哥也准备整混淆,后来找了几个工具,效果感觉都不是很理想,而且砖家讲不保证不会产生副作用(对你的程序运行产生影响),后来就放弃了。 你想吧,=你的代码有人费事破解,你本身的技术力量或者说你公司在市场的地位,那可不是小打小闹的东东了,到那个时候你找付费混淆的软件都成。
加载更多回复(5)
作用:           静态/黑月编译后会生存同名的txt文件,内含 子程序名称,代码起始偏移,代码结束偏移;           根据以上文件,可以实现不在源码中做标记的情况下,进行发布版本的异常定位!           支持加壳定位,前提是子程序中的代码没有被加密混淆,如压缩壳与没有进行虚拟/变异处理的VMP壳等.           支持 易语言 模块中的子程序.           目前支持易语言5.90,因为是动态定位特征码,所以理论上相邻版本也可以用.           奉上源码与demo. 以文本形式输出是为了直观调试,易友们也可以修改成输出二进制文件或更友好的格式. 偏移相对于映像基址.如果是EXE一般为0x00400000,DLL不固定 ------------------------------------------------------------------------------------------------------------------------------------------------------- 前几天我在论坛上下载了个异常通知辅助模块(作者东灿,修改者QIQI) 配合工具效果还可以. 就是得添加一大堆代码来定位错误的函数名,不仅影响执行效率,还容易担心软件会被小白破解 正所谓不怕贼偷就怕贼惦记,所以我还是放弃使用他了. 这时候我就萌生出能不能写个把子程序名称和所在内存地址导出的插件. 也没花多少时间,在参考了小色开源的WonderWall插件后我终于确定了可行性! 第二天初版就写好了,经过几天的修改现在已经兼容黑月与静态编译. 本来想先发支持库,等我自己体验下,没得修改了再开源.主要是没有时间,干脆直接开源了.希望大神能完善完善. 现在可以支持定位到错误的子程序名以及调用者的子程序名.我相信还有进步空间,多敲几行代码可以定位到行号什么的. 我也不知道网上有没有类似这样的插件,但起码我没见过. 插件源码,成品以及demo源码

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧