.net的程序这么轻松就破解了,请问还怎么加密呢?

qaz952727 2014-06-18 10:48:14
前些天朋友教了我两招破解的方法,其实也就是下载一些工具去脱壳和反混淆,然后就可以看到源代码。就这样,我很轻松的破解了几个.net的程序,包括同行的一些的软件,几乎不费什么劲。现在问题来了,这么轻松就可以看到源码了,那我还能怎么去加密软件呢?有的人一个软件写了半年却被人几分钟破解出来了,那岂不是徒劳,虽然我知道软件无法做到绝对安全,但是也要做到相对安全吧,起码不会让我这种新手破解得了。
还有一直听说用网络验证安全,但我想了下,好像也不安全,比如:客户端(用户),向服务端发送登陆的用户名和密码,服务端接收后进行验证,然后返回信息给客户端,客户端根据返回的信息进行相应的操作,比如是否存在此用户、用户级别、到期时间等等,然后跳到不同的功能界面,显示出不同的级别之类的。问题就在这里,客户端接收服务端的信息一般是用一个类、结构之类的存在本地的数据来接收吧?要是破解的人直接修改这个类的信息呢?或者直接把登陆的If else之类的判断逻辑给删除掉,这样不就能跳过验证吗?那网络验证岂不是多余?
在此,求各位大神支支招啊,给小弟解答一下疑问,谢谢!!!
...全文
3114 57 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
靳秋鑫 2015-09-20
  • 打赏
  • 举报
回复
引用 28 楼 overown 的回复:
很多类型的程序其实是不怕破解的 不是说技术上无法破解,而是破解永远无法保证是100%把一个软件破解掉 比如说ERP软件,可以在程序中设置很多很多个破解检查点,通过各种方法来检查自身是否被破解 有的检查点检查到破解以后会进行提示或者直接阻止程序使用 而有检查点则作为暗桩隐藏起来,等到软件使用个一年半载,让它莫名其妙出现一些故障,比如莫名其妙的给员工加工资;莫名其妙的库存没了或多了, 很多类型的程序甚至游戏都可以这样 比如前段时间出的游戏<英雄萨姆>,如果是破解版,游戏并不会不让你进入,而是安排一个打不死的大怪物把玩家虐了一遍又一遍 你可以再想象一下,如果破解版的愤怒小鸟 里面随机出现一些怎么打都打不破的墙会怎么样 你可以把这样的声明写在程序里面 你再来看看谁会破解你的软件,破解了又有谁会去用
哈哈,这个好
hxm20003 2014-07-27
  • 打赏
  • 举报
回复
主要逻辑一般都会放在放在服务端,如果真的要求比较高的话,在弄点随机逻辑放在相应的程序里面,增加盗版的复杂程度。
qpp_2575406355 2014-07-27
  • 打赏
  • 举报
回复
使对称算法对文件进行加密 protected void Button1_Click(object sender, EventArgs e) { string myFile = TextBox1.Text; string myPassword = TextBox2.Text; string myEnFile = TextBox3.Text; try { byte[] myIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; byte[] myKey = System.Text.Encoding.UTF8.GetBytes(myPassword); FileStream myInStream = new FileStream(myFile, FileMode.Open, FileAccess.Read); FileStream myOutStream = new FileStream(myEnFile, FileMode.OpenOrCreate, FileAccess.Write); myOutStream.SetLength(0); byte[] myBytes = new byte[100]; long myInLength = 0; long myLength = myInStream.Length; DES myProvider = new DESCryptoServiceProvider();//指定DES CryptoStream myCryptoStream = new CryptoStream(myOutStream, myProvider.CreateEncryptor(myKey, myIV), CryptoStreamMode.Write); while (myInLength < myLength) { int mylen = myInStream.Read(myBytes, 0, 100); myCryptoStream.Write(myBytes, 0, mylen); myInLength += mylen; } myCryptoStream.Close(); myInStream.Close(); myOutStream.Close(); Response.Write("<script>alert('加密文件成功!');</script>"); } catch (Exception ex) { Response.Write("<script>alert('" + ex.Message + "');</script>"); } }
qaz952727 2014-07-25
  • 打赏
  • 举报
回复
引用 38 楼 mytudousi 的回复:
哎,楼主就问了一个才C#写的程序怎么加密,不被别人反编译出来,一群人在讨论破解的意义...这让楼主情何以堪...
的确,我也没说要保证不被反编译出来,只是不想让人轻松就破解掉而已,而回答就像:被小偷偷了东西不去追,反而下次绕路走,这就是逃避问题。清远有个瓜农几千吨的冬瓜没人买,难不成你告诉他不要种冬瓜了,扔了,种西瓜好,讲一堆人生大道理,而不是告诉他怎么卖掉。 贴子我是6月18号发的,到现在一个多月了,其间请教过一些老鸟,答案很简单,就是使用XX工具加密,仅此而已,就可以解决问题了,至于上面那些说拿到IL代码还破解不了的话,只能说你一点也不懂破解吧。 还有既然是商业软件,加密也很正常,那些整天说你这软件技术含量怎么的,算法怎么的。我觉得整天较真技术那真的变成程序猿了。赚钱靠的是思维,不是技术,有的人没什么技术却赚很多,有的技术牛人拿着1万几K的工资就开始沾沾自喜了 哎,感觉CSDN越来越水了
wwwspider001 2014-06-25
  • 打赏
  • 举报
回复
不担心破解的,是因为他没有什么东西可被破解的 这么多回复,也就一两个人懂点,其他都是瞎扯淡(包括我)
Justin-Liu 2014-06-24
  • 打赏
  • 举报
回复
有的人就那样,不用理会 破解没什么意义的,一个是可破解的东西都没什么大的技术含量 再者真正的产品都是混淆过了的,根本反编译不回来了 还有就是网络上限制,即时破解了源代码又如何,自己掌握授权服务
月季爱好者 2014-06-24
  • 打赏
  • 举报
回复
ultraedit 就是楼主的模板
Code従業員 2014-06-24
  • 打赏
  • 举报
回复
世界上最痛苦的事情就是去看别人写的代码,加啥密嘛? 想看就拿去,又不是什么国家机密。 天下文章一大抄,知识也是在这样的环境下流通的。 很多彪悍的代码都是开源的,这样不但很快的占领开发者市场,还能彰显气度,万利无一害。 终上所述:从来不担心破解。
  • 打赏
  • 举报
回复
那个《加密和解密第三版》貌似有这方面的讲解,我当年不打算从事.net就没仔细看,你可以去拜读一下,说不定有用
Trouble___Maker 2014-06-22
  • 打赏
  • 举报
回复
求破解工具!
mwp 2014-06-21
  • 打赏
  • 举报
回复
软件防盗必须是在线模式,把软件部分核心功能放到服务端,如果是离线软件必须结合加密狗硬件设备。
TryToday 2014-06-21
  • 打赏
  • 举报
回复
1 maxtocode加壳 2 Dotfuscator 混淆 3 多加一些暗桩,在特殊情况才触发 4 用非对称加密算法验证 5 部分功能放在web服务端 6 部分功能放在加密狗内 目前想到的就这么多
  • 打赏
  • 举报
回复
引用 楼主 qaz952727 的回复:
还有一直听说用网络验证安全,但我想了下,好像也不安全,比如:客户端(用户),向服务端发送登陆的用户名和密码,服务端接收后进行验证,然后返回信息给客户端,客户端根据返回的信息进行相应的操作,比如是否存在此用户、用户级别、到期时间等等,然后跳到不同的功能界面,显示出不同的级别之类的。问题就在这里,客户端接收服务端的信息一般是用一个类、结构之类的存在本地的数据来接收吧?要是破解的人直接修改这个类的信息呢?或者直接把登陆的If else之类的判断逻辑给删除掉,这样不就能跳过验证吗?那网络验证岂不是多余?
可能你只是见过办公室内使用的小国产OA软件。这类软件骗骗国营单位还差不多。真正的c/s程序就好像QQ那样的,人家服务器跟客户端是可以独立的系统,服务器的会不会有什么“安全”问题跟客户端程序没有关系。
  • 打赏
  • 举报
回复
每个人都可以想想,如果你曾经去参加过一个比较大、比较正规的产品开发,就算把svn上几百兆的东西都下载到你的电脑上,主要是有所有的源代码,和所有必要的文档(多余的垃圾文档很少),让你读,你有多大本事读懂? 而网络软件基本上都是服务器端部署在专业的电信机房,给你源代码你也没有部署和修改的权限的。你必须循序设计好的业务逻辑、从客户端访问。 反过来就知道了,整天操心这个的人,大多都是缺少产品应有的完备性,原本就没有什么东西可拿出的(或者靠关系卖点软件,而不是靠软件技术)。你最好还是先找个大点的公司团队、或者具有抽象成熟度的、不断持续更新版本的产品去做何学习。
  • 打赏
  • 举报
回复
你半年能写什么?
mytudousi 2014-06-20
  • 打赏
  • 举报
回复
哎,楼主就问了一个才C#写的程序怎么加密,不被别人反编译出来,一群人在讨论破解的意义...这让楼主情何以堪...
虚空土豆 2014-06-20
  • 打赏
  • 举报
回复
现在软件卖的主要还是服务了,服务卖的好了,源码神马被破解了倒是没啥危险。一但用户依赖上了你的软件服务,基本就上瘾了
luozhuang 2014-06-20
  • 打赏
  • 举报
回复
引用 5 楼 diaodiaop 的回复:
怎么简单就破解么? dev控件你去破解吧 然后你能大赚 对了 vs跟sql 客户端工具好像也是winform开发的.. 这个你也破解吧.. 然后开发一套VS2018 改个名字. 弄上你的QQ你多威风..
VS SQL其核心还是C++。。。我不确定界面是不是,但绝大多数都是本机代码。 LZ一天到晚防止别人破解,倒不如用心去好好设计一个程序。一般定制软件客户就那么几个,破解别人也不会有需求去用的。 想加壳我可以帮忙
adamTY 2014-06-20
  • 打赏
  • 举报
回复
正所谓 道高一尺,魔高一丈,破解与反破解永远在较量。然而,纵观历史,我们从未发现有哪个是靠着破解别人的软件发家致富的,因为任何一个头脑清醒的买家都不会花钱去买一个偷盗而来的软件,任何一个有远见的公司也不会聘请一个性格有缺陷,良知有问题的人留在公司。一个破解高手尽管你才华再横溢,也不可能得到社会公众的认同,因为大家只会把你当做夜壶,需要的时候拿来用一用,不需要的时候恨不得把你踢得远远的。
cliffyanT 2014-06-20
  • 打赏
  • 举报
回复
唉,真真的验证实在服务器端的,如果你的验证在客户端,那这程序写的也太死了,客户端最多做个验证看输入的数据是否符合输入要求而已!唉!
加载更多回复(37)
Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或商业用途。使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对 Excel 文档进行各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换等。Free Spire.XLS for .NET 是 Spire.XLS for .NET 的免费版本,无需购买即可用于个人或商业用途。使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对 Excel 文档进行各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换等。 主要功能如下: 1.100% 独立的 .NET 组件,无需 Microsoft Office Automation 2.强大的,高质量的 Excel 文件转换功能。支持将 Excel 文档快速高效地转换为多种常见的格式,如 XML,Text,PDF 和图片等。 3.使用全面的工作簿设计器创建 Excel 报表。支持开发人员新建 Excel 工作簿,从文件流或文件夹加载工作簿。还可以将工作薄保存到磁盘, 文件流或 Web Response,同时提供了多种安全功能,包括 Excel 加密/解密,单元格隐藏/取消隐藏,工作表锁定/解锁。 4.自由操作工作表。允许开发人员使用 C#、VB.NET 或 ASP.NET 来创建、添加、删除、重命名、编辑和移动工作表,开发人员还可以在多个充满数据的工作表之间进行复制、调换和合并操作。这个专业的 .NET Excel 类库嵌入了很多灵活显示工作表的选项,包括分页符,缩放设置,冻结窗口,页眉/页脚,打印 Excel 文件,打印页面尺寸和打印区域等。 5.在运行时轻松操作单元格和 Excel 计算引擎。开发人员可以在运行时使用 C#、VB.NET 或 ASP.NET 轻松地操作 Excel 单元格,计算公式值。该高速、可扩展的 Excel 计算引擎与 Excel 97-2003/2007/2010 等兼容。同时该组件支持设置单元格样式,如单元格的合并/拆分,文字环绕/取消环绕,文本排列和旋转、边框、锁定/解除等。字体格式,如设置字体类型、大小、颜色、粗体、斜体、删除线、下划线等等。条件格式,文本搜索和替换,过滤和数据验证等操作都可以轻松的应用到单元格中。 6.图表、数据和其它元素。提供了一组丰富的图表,如饼状图,条形图,柱形图,折线图和雷达图等。此外,它支持使用 C#、VB.NET 或 ASP.NET 在数据库和 Excel 之间进行数据传输,支持超链接和模板,支持创建和获取数据透视表。
Free Spire.XLS for .NET 是e-iceblue公司开发的一款支持对所有Excel格式类型文件进行操作的.NET 控件。它适用于任何类型的应用程序比如ASP.NET Web应用程序或者Windows桌面应用程序。Spire.XLS for .NET允许开发人员创建和管理Excel,而不需要安装Microsoft Excel或者Microsoft Office。相比Microsoft,Spire.XLS for .NET对于开发人员来说是一个更好的选择 - 自动化,安全,稳定,可扩展性延伸,速度快,价格便宜和功能强大。 通过使用Free Spire.XLS for .NET,开发人员可以快速方便的查看,生成,读写以及自定义编辑Excel文件。Spire.XLS for .NET支持Excel 97-2003, Excel 2007, Excel 2010 and Excel 2013。它还支持C#, VB.NET, ASP.NET和 ASP.NET MVC编程语言 作为一款专业,强大,方便易用的控件,Spire.XLS for .NET有一下主要功能: 新建Excel文件,编辑已有的Excel文件,多种保存Excel方式,设置Excel文件属性,文件打印设置,合并,拆分或者拷贝单元格,支持对Excel文件加锁或者加密保护。 Spire.XLS for .NET支持把数据从数据库导出到Excel工作表,或者把数据从Excel数据导入到数据库。 Spire.XLS for .NET 提供强大的功能为开发者设置单元格格式。这次格式化数字,文字缩进,定位调整,设置单元格边线,单元格填充以及保护等。 开发人员可以轻松的利用Spire.XLS for .NET向Excel文件里面写入内容,包括超过530多种的公式,70多种表格,支持插入图片,不同类型的文字,链接,注释甚至VBA等。 Spire.XLS for .NET 还允许开发人员将Excel文件转换成PDF, HTML, CSV, Text, XML以及图片格式。 注:下载包含有Spire.xls.dll文件以及部分Demo, 你可以调用DLL并参照Demo提供的代码处理Excel文档。

111,088

社区成员

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

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

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