混淆只是关于混淆非公共变量/成员的名称吗?如果是这样,是否有可能编写一个应用程序,至少将这些名称更改为可读性更强的名称,例如"variable1"等,然后提取整个代码仍然可以编译?
混淆只是关于混淆非公共变量/成员的名称吗?如果是这样,是否有可能编写一个应用程序,至少将这些名称更改为可读性更强的名称,例如"variable1"等,然后提取整个代码仍然可以编译?
这肯定是一个混淆器的起点。虽然有些混淆器也会加密字符串等技巧,使反编译汇编变得非常困难。
当然,由于运行时需要在所有这些之后运行程序集,所以有决心的黑客可能会反向工程化它 :)
混淆是指将有意义的名称(如accountBalance
)更改为无意义的名称(如a1
)。
应用程序显然仍然可以正常工作,但理解其中的算法会更加困难。
这取决于使用的混淆技术。更改变量名称仅是问题的一部分。大量的混淆工具同时执行某种程序流混淆,这将进一步复杂化代码理解。最终,混淆后的IL在大多数编程语言中不容易(如果有)表达。
即使重命名变量和字段也不会对您有太大帮助,因为拥有许多variable1、variable2等变量名称并不能帮助您理解所阅读的内容。