SuppressIldasmAttribute 是最简单也是最常用的 "反反编译" 手段,它的作用就是"提醒" ildasm.exe 不要工作。但作为一个重要的反编译工具,我们当然不希望 ILDasm.exe 这么"聪明"。没办法,还是得自己动手,给ildasm.exe 当头一棒,打傻再说。
首先拿出 CFF Explorer 看看 ildasm.exe 的基本信息。
晕!居然是 Win32 Native Code,看来试图修改 IL 的老办法是没戏了。怎么办呢?既然是 native code,也就是说它没有办法用我们所熟悉的反射手段来检查 SuppressIldasmAttribute 特性。要得到结果,自然只能通过"SuppressIldasmAttribute" 这个字符串来检索该 PE 的资源了。如果将这个字符串改变一下,让它无法匹配,不是就可以绕过去了吗?呵呵~~~~ 试试看。这次要用的工具是 WinHex。
将字符串改成任意等长度字符,保存到另外的文件中。再拿一个添加了 SuppressIldasmAttribute 特性的程序集进行测试,结果证明成功打傻那小子~~~~~~~
修改前
修改后