欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

答复

答复

引用: 最初由 tankaiha 发布
多谢lccracker,一直想和你联系,你一直没上
你说的有的地方我也不明白,比如:单个程序文件如果没有了强名,就无法加载到CLR运行了,而整个程序就报废了,没法在CLR中运行起来。
单个程序文件(比如就一个文件的exe),直接用工具去除就可以运行啊。
还有,强制强命名?没接触过。除非程序中有代码进行检测,可这也是能patch的。
lccracker请和我联系,把QQ号发到dotnetreverseteam[at]126[.]com中。

根据.NET Framework环境的运行机制,程序员编程时可以给一组相关联的文件签发一个“集体强名称”,大概叫 Group Stronge Signature Name,用来保证这一系列存在调用关系的文件版本能够协调一致,同时可以拒绝不属于该程序集的外部代码调用其内部的未授权私有过程函数来达到非常规之目的。拥有强名的程序集在运行时,必须被加载到CLR中运行。只有具有强名的Assembly才能够被加载到CLR里面去,或者说,运行在CLR中的程序不能调用处在CLR之外的模块。对于单个文件,和这种程序集是不一样的。
强制强名是程序员人为加上了一个对程序进行强制性强名验证的 Method,具体忘了,大家可以去MSDN查查,使用强制验证强名后,通过注册表设定的忽略强名验证设置不再有效。同时加大了反向的难度。当然,这个应该是几个字节就能搞掉的功能。
上面这些不知能不能读明白,因为当时看的是大堆大堆的英文,很多东西都忘得差不多了,有的用汉语不知表达准不准确。其实这些应该都有中文资料,很早了,当时写给程序员学编程的。
还有,
引用: 最初由 tankaiha 发布
3、就是利用Patch系统文件的形式。这种形式不推荐,毕竟强命名还有判别版本差异及文件完整性的作用,整个Patch了不大方便。

Patch系统的方法只是去掉了因强名验证加载不到CLR的限制,版本识别机制不会被破坏。如果是商务性应用,机器不会装几个.NET的程序,文件完整性大可不必担心。至于被你破解的程序本身,完整不完整自己都知道。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功