商业化的混淆还是复杂的,入门级的混淆反编译后不用修改可以直接再编译,这时你可以把不想要的验证检查把去掉,但有些商业化的混淆让你完全不能用纯技术性的手段来解决,你必须人工阅读编译后的代码,甚至反编译后都很难在短时间内看懂,以前我看过 Sybase 一个产品的 jar 反编译之后方法名几乎都是 if else 之类的,除了它引用的别人提供的接口内的方法名之后全都改得面目全非(自己定义的接口也把方法名自动全改了),而且人家不仅仅是改名,很多时间它是把本来不同名的方法改成了重载的方法,所以经常看到一个类里面的方法名仅仅重复的几个,比如都是方法名只有 if/else 之类的几个的,但参数都不同。