我想通过手动重命名最小化的变量、参数和函数名称来对 JavaScript 程序进行逆向工程。但是,将我的逆向工程代码更新到更新版本将非常困难,因为:
- 最小化的变量名每次都是随机的,这使得很难看到两个版本之间发生了什么变化
- 即使变量名是静态的,我也必须跟踪哪个变量意味着什么,这非常困难,因为变量名不是全局唯一的,而是每个范围的
有没有什么工具可以:
- 自动将变量重命名为唯一名称以跟踪其作用域
- 能够通过查看代码结构发现两个版本之间的差异但忽略变量名称的变化,并在不与旧变量冲突的情况下为新变量分配名称
- 根据映射文件自动重命名这些变量,例如
var584 -> readPacket, var585 -> writePacket, ... - 自动转换最小化的语句,例如
condition && statement;toif (!condition) { statement; }和!0totrue