热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

谈antiILdasm的原理以及anit框架API的可行性

今天收到maxtocode的群发邮件,提到对MaxToCode运行库兼容性进行了修正,即降低了运行库anti的强度。确实在兼容性和安全方面很难做到鱼与熊

今天收到 maxtocode 的群发邮件,提到对MaxToCode运行库兼容性进行了修正,即降低了运行库anti的强度。
确实在兼容性和安全方面很难做到鱼与熊掌兼得。anti得太多,程序的兼容性就成问题。codelib就是例子,可用性太差。

在maxtocode的邮件中仍然发现了如下两条描叙:
* 增加了对ILdasm以及使用API 访问源数据的反编译工具的反制功能
* 经测试,目前没有一种反编译工具可以完整的读取加密后的结构,更不用说加密后的代码了

其对该功能的描叙为:
*可以使微软提供的底层反编译器(ILdasm 2.0)无法工作。
*可以使引用框架API的反编译器无法工作
*但无法禁止反射的反编译程序。

其实anti ildasm这个功能最早是在 xenocode中发现的,当时是anti ildasm 1.1,这个东西应该算是Undocument的。
不过到了 net 2.0我们在 msdn文档中发现了:
“注意:此类在 .NET Framework 2.0 版中是新增的。
防止 MSIL 反汇编程序 (Ildasm.exe) 反汇编程序集。无法继承此类。
将 SuppressIldasmAttribute 属性应用于程序集或模块可防止使用 MSIL 反汇编程序 (Ildasm.exe) 反汇编程序集或模块。
此属性不防止使用反射查看程序集。
注意,SuppressIldasmAttribute 属性不阻止 MSIL 反汇编程序 (Ildasm.exe) 查看标头信息和元信息。 ”

anti ildasm的原理其实很简单maxtocode作者在分析xenocode时就介绍过了,基于一个“君子协定”,即ildasm会检查一个标记,如果发现了这个标记就会说是受保护的模块,不能编译。

谈谈ILDasm的功能限制与解除

By aiasted
From
http://www.cnblogs.com/aiasted/archive/2005/05/05/149639.html
OK,分析一下吧:经过短暂的分析,让我出了一身汗。。。这样的版权保护有还不如无,一定误导了很多朋友
这已经很明显了,ILDasm只用了一个标志去阻止"已有版权"的程序集,而您只需要修改一个机器指令就可以畅通无阻的反编译任何程序集,并修改其内容再次编译。

只是1.1时代这个标记是Undocument的,在2.0里面已经是document的了。可以肯定maxtocode能如其介绍的那样anti ildasm 2.0。
根据这个原理,我们只要patch ildasm修改其中的一个跳转就能让它继续工作了。实际上已经有人完成了这些工作。

ildasm是使用 框架 API的反编译工具。那么anti了ildasm 是否就等于 anti 了 框架 api?
我们只需要修改ildasm不让他判断那个标记,他就能正常工作了,显然框架 api仍然可以正常使用。
而第三方使用框架api的反编译工具是不会去判断那个标记的,也就是说它们不需要被patch就可以正常工作。

那么 anit 框架API 是否可行?
不过这个基本是不现实的,除非自己实现.Net的执行引擎或者今后.Net执行引擎有什么变化。
为什么呢?因为目前.Net的执行引擎也是使用的 框架 api。如果真的anti 了框架api,那么.Net执行引擎也不能幸免。

很显然目前来说框架api成了一个绿色通道,使用框架api的反编译工具是能够看到程序的完整结构的。如 修改版的ildasm,dis#等。


刚才又上maxtocode官方网站看了网页上仍然有这些信息。
如果说之前是无意误导,那么现在是不是故意误导呢?



推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
author-avatar
dongquchunlaizv_123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有