当前位置: 首页 > news >正文

有实力高端网站设计地址3免费做网站

有实力高端网站设计地址,3免费做网站,生产公司简介模板,自己的网站打不开了一#xff1a;背景1. 讲故事前几天在调试物联柜终端上的一个bug时发现 app.config 中的数据库连接串是加密的#xff0c;因为调试中要切换数据库#xff0c;我需要将密文放到专门的小工具上解密#xff0c;改完连接串上的数据库名#xff0c;还得再加密贴到 app.config 中… 一背景1. 讲故事前几天在调试物联柜终端上的一个bug时发现 app.config 中的数据库连接串是加密的因为调试中要切换数据库我需要将密文放到专门的小工具上解密改完连接串上的数据库名还得再加密贴到 app.config 中烦的要死内容如下appSettings!-- 数据库连接字符串 --add keyOLEDBConnStr valueXfES27am6Muw48iB1GlMVqvUbq7/Pp9n4XbZJsDu19YDr/Zdb3m7KT6haD7f9HLj/ZEvIiZbmSU4O5L9g03Y5IUB6KLCZI7s3nDLwTICbXLf5quu/r8ZAIrgNnsNZdwoDfquRLQy5Cf2X8/MFDOcMNaZYMpTYeHsZoEERU/TP9t3n5QllJTihrmDFbiGHLqe1kfN3uB3g1kgs0oobIEfNPr09kQ/pFgzZi/kZCrK10PLZZ0pFj1YU5ReFqBsdBlecV3D2Zl3lx1Ibls24t7w //appSettings 改完bug之后我就想这玩意能防的了谁呢私以为搞这么麻烦也就防防君子像我这样的 晓人加不加密都是等于没加密照样给你脱库。。。????????????二使用 ILSpy 去脱库1. 从DAL/Repository层去反编译代码要想得到明文的数据库连接串可以从代码中反推比如从 DAL 或者 Repository 中找连接串字段 ConnectionString我这边的终端程序是用 wpf 写的采用的是经典的三层架构所以在 bin 下可以轻松找到如下图接下来用 ILSPy 反编译这个 dll。从上图中可以看出连接串的明文是存放在: OleDbHelper.ConnectionString 中的然后可以看到程序中定义了一个 Decrypt 方法专门用来解密连接串哈哈有了这个算法是不是就可以脱库啦如下代码所示class Program{static void Main(string[] args){var str XfES27am6Muw48iB1GlMVqvUbq7/Pp9n4XbZJsDu19YDr/Zdb3m7KT6haD7f9HLj/ZEvIiZbmSU4O5L9g03Y5IUB6KLCZI7s3nDLwTICbXLf5quu/r8ZAIrgNnsNZdwoDfquRLQy5Cf2X8/MFDOcMNaZYMpTYeHsZoEERU/TP9t3n5QllJTihrmDFbiGHLqe1kfN3uB3g1kgs0oobIEfNPr09kQ/pFgzZi/kZCrK10PLZZ0pFj1YU5ReFqBsdBlecV3D2Zl3lx1Ibls24t7w;Console.WriteLine(Decrypt(str));}public static string Decrypt(string str){if (!string.IsNullOrEmpty(str)){DESCryptoServiceProvider descsp new DESCryptoServiceProvider();byte[] key Encoding.Unicode.GetBytes(Oyea);byte[] data Convert.FromBase64String(str);MemoryStream MStream new MemoryStream();CryptoStream CStream new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);CStream.Write(data, 0, data.Length);CStream.FlushFinalBlock();return Encoding.Unicode.GetString(MStream.ToArray());}return ;}} 不过还好数据库也是在客户那边独立部署的不存在走外网的情况不然就玩大了。。。接下来我们来看看如何去防范。2. 加壳/混淆/加密狗现在市面上商业版和免费版都提供了给C#代码进行加密和混淆不过我没用过我想最多在反编译代码后阅读性上增加了一些障碍这也不过是时间问题罢了毕竟SqlConnectionSqlCommand 这些FCL的类你是没法混淆的我从这些类上反推可以很轻松的就能找到明文的 ConnectionString 所以这条路我觉得是走不通的。3. 将解密算法放在 server 端既然 解密算法 埋在客户端你都能挖出来那把它放在 server 端不就可以啦在程序启动的时候调用一下 webapi 进行解密这样你总没辙了吧 哈哈大家可以开动脑子想一想这种方法可行不可行诚然解密算法搬走了再用 ILSpy 去挖已经没有任何意义了但这里有一个重要突破点不管是用什么形式解密的最后的连接串明文都是存放在 OleDbHelper.ConnectionString 这个静态变量中对吧接下来的问题就是有没有办法把进程中的这个静态变量给挖出来你说的对就是抓程序的 dump文件 用 windbg 去挖。三使用 windbg 去脱库1. 思路要想挖出 OleDbHelper.ConnectionString其实也很简单在 CLR via C# 第四章中关于对象类型和类型对象的解读有这么一张图很经典。从上图中可以看到静态字段是在 Manager 类型对象 中实例字段都是在 Manager 对象 中对照这张图我只需要通过 windbg 找到 OleDbHelper 类型对象也就是所谓的 EEClass。2. windbg 挖矿实战使用 !name2ee 找到 Decrypt 方法描述符MethodDesc 0:000 !name2ee xxx.Utilities.dll xxx.Utilities.Database.OleDbHelper.Decrypt Module: 08ed7cdc Assembly: xxx.Utilities.dll Token: 060002aa MethodDesc: 08ed83b0 Name: xxx.Utilities.Database.OleDbHelper.Decrypt(System.String) JITTED Code Address: 048b6af0 上面的 MethodDesc: 08ed83b0 就是方法描述符的地址。使用 !dumpmd 导出方法描述符的详细信息找到 OleDbHelper类型对象 的 EEClass 地址 0:000 !dumpmd 08ed83b0 Method Name: xxx.Utilities.Database.OleDbHelper.Decrypt(System.String) Class: 08ecab30 MethodTable: 08ed8468 mdToken: 060002aa Module: 08ed7cdc IsJitted: yes CodeAddr: 048b6af0 Transparency: Critical 上面的 Class: 08ecab30 就是 OleDbHelper类型对象 在堆上的内存地址。使用 !dumpclass 导出 Class: 08ecab30 从而找到 OleDbHelper类的静态字段 0:000 !dumpclass 08ecab30 Class Name: xxx.Utilities.Database.OleDbHelper mdToken: 02000033 File: D:\code\A18001\Source\Main\TunnelClient\bin\Debug\xxx.Utilities.dll Parent Class: 795115b0 Module: 08ed7cdc Method Table: 08ed8468 Vtable Slots: 4 Total Method Slots: 6 Class Attributes: 100081 Abstract, Transparency: Critical NumInstanceFields: 0 NumStaticFields: 2MT Field Offset Type VT Attr Value Name 799bfd60 4000152 74 System.String 0 static 04c28270 ConnectionString 799bfd60 4000153 78 System.String 0 static 04c299e8 SecurityConnectionString 从上面导出信息中可以看到 OleDbHelper类中 有两个静态字段 ConnectionString 和 SecurityConnectionString。使用 !do 打印出两个静态字段看到没有上图中的两个紫色框框就是明文的 ConnectionString 哈怎么样????不????。四总结当认识到上面的两种脱库方式你应该就能想到其实你在程序中连接数据库这本身就是一种错操作系统都能给你盗版何况你这区区一个小软件个人觉得完全杜绝的方式那应该就是灭掉本地的sqlserver让所有的数据获取都由远端的 webapi 提供当然这又是在脱离业务聊技术啦????????????
http://www.pierceye.com/news/941647/

相关文章:

  • 网站统计分析注册公司步骤和所需材料
  • 网站开发的好处和弊端客户管理系统简称
  • 网站开发提供图片加载速度wordpress速度
  • 购物网站如何备案wordpress首页自定义
  • 企业手机网站建设提升用户体验的三个点无极领域付费网站
  • 网站设计常州网站开发年度总结
  • 免费注册网站网址做网站大概要
  • 注册网站会不会有问题做网站建设的注意事项
  • 小吃培训网站源码淮南市招标投标信息网
  • 做网站申请多少类商标网站开发的案例分析模板
  • 怎么进网站后台管理系统在线二维码制作生成器
  • seo网站关键词优化多少钱陕西省建设厅网站官网
  • 仿xss网站搭建建设网站费用吗
  • 钓鱼网页在线生成网站网站建设肆金手指排名7
  • idc网站备案家具网站建设方案
  • 互联网做网站怎么赚钱WordPress副标题不显示
  • 好的网站域名网站运营推广怎做
  • 巴适网站建设wordpress上传与安装包
  • 网站备案不关站wordpress网
  • 中国佛山手机网站建设十大互联网公司排名
  • 手把手指导做网站wordpress 熊掌号插件
  • 宁波网站建设方案报价湖州企业做网站
  • 优化 导航网站百度官网网站首页
  • 各大网站大全河北网站建设seo优化制作设计
  • 做照片的网站前端开发和后端开发
  • 谁能低价做网站支付接口泰州企业自助建站系统
  • 徐州 网站建设辽阳建设网站
  • PHP MySQL 网站开发实例单页应用网站
  • 制作网站的步骤关于企业网站建设的相关思考
  • 统计局网站建设情况ppt设计网站