解除ILDASM无法打开“受保护的模块”的限制
0x01 ildasm
ildasm是微软提供的IL反编译工具。可以反编译.Net的程序集。
但是在打开某些程序集时会提示“受保护的模块--无法反汇编”。
0x02 原因分析
这个限制是利用了微软官方提供的一个属性标注。
只要有这个属性标注的程序集,ildasm就会拒绝打开。
这实际上就是一种君子协定。
0x03 解决方法(二种)
0x031 解决方式一(patch掉属性检测的代码)
这里我们直接用IDA打开 ildasm.exe 进行反编译,选择加载调试符号。
因为我们已经知道了一个关键线索 SuppressIldasm 。
所以我们直接在文件中搜索这个字符串。
找到后我们看到有两处数据引用。
通过名称我们可以判断关键函数是第一处引用。
定位到这个函数,很明确,我只要修改这个函数,让它返回0即可。
按F2应用修改,查看结果。
最后将修改保存到input file。
到这里就结束了。我们再打开文件试试
ok,可以正常打开。
0x032解决方式二(不修改代码,直接修改字符串)
因为我们知道这个限制是一个君子约定,我们只要打破这个约定就好了。
这个方式很简单。跟上面一样用IDA打开,然后搜索 SuppressIldasm 。
找到这个字符串后,再直接随便修改这个字符串为其它的值即可。
按F2应用修改,查看结果。
最后将修改保存到input file。
到这里就结束了。我们再打开文件试试
ok,可以正常打开。
0x04 最后附上成品(版本net 4.6.1 tools)
大神啊!厉害啊! 方法和操作说的很简洁,学到了 谢谢分享谢谢分享 厉害,学习了,谢谢分享! 热心回复! 感谢分享,楼主辛苦 解除ILDASM无法打开“受保护的模块”的限制 [ 学习收藏 了。。。。 感谢楼主分享。
页:
[1]
2