-
-
[讨论]DotNet Framework Strong Name Signature 强名称去除问题
-
发表于:
2006-8-8 00:04
7629
-
[讨论]DotNet Framework Strong Name Signature 强名称去除问题
因为.Net程序Assembly使用现有工具很容易反编译为MSIL,然后经过修改可以
重新生成Assembly(.exe, .dll)。
所以看到的教程都是通过 [Assembly --> 反编译为MSIL --> 去除PublicKey --> 重新
编译为Assembly] 的流程破解掉原.Net程序的强命名保护。
方法如此简单,仿佛千篇一律,好像.Net程序真的没什么破解可钻研。
可是,我最近几天发现,这个方法只对只有单个单独文件的软件有效。
看过和找过的各种案例(英文居多)在商业级强命名软件面前都成了纸
上谈兵,基本没有用途和参考价值。
商业级.Net软件几乎没有一个是单个文件发行的,而且部分有本地化代码。
对于有多个文件的.Net程序,一般是一个*.exe和几个*.dll,往往由于其中某
个或几个文件不能由反编译出来的MSIL文件编译回去,而导致“所向披靡”的
[Assembly --> 反编译为MSIL --> 去除PublicKey --> 重新编译为Assembly]
流程失效。因为,强命名的程序集,必须全部重新编译才能正常运行。
很多人误认为破解了强命名程序中的某个.exe或.dll,只需编译时自行给他弄
个Key进行一下强命名就可以,事实上,如果这样做,程序根本无法运行。
不幸的是我研究的这个程序正好有一个.dll是编译不回去的。我试验了将软件中
所有Assembly文件的强命名[Strong Name]清除,无效,软件仍是无法运行。
希望在这个方面有经验的大侠给予指点,希望大家多多交流,我会将我这短时
间来的试验心得和副产品(意外收获)在本贴中陆续发上来。
---------------------------------------
FucKiNi 2006.08.08.00:30
.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)