反编译过程中常用的正则
get、set属性 在.NET的编译过程中get、set属性转化为get_func()、set_func(xxx)方法。 因此对于反编译出来的代码,逐个替换可能很慢,可以采用下面正则表达式分别进行查找替换: 对于get访问器: 对于set访问器: .set_{[^(]+}({[^)]+}) 替换为 .1 = 2 如果上面的无法正常使用也可以使用: 对于get访问器: 对于set访问器: set_{[a-z]*}( 替换为 1 = ( 然后再修复个别被误换的地方。 本文地址:http://www.cnblogs.com/Interkey/p/link_1.html 索引器 对于***.get_Item(num) 可以通过.get_Item({[a-z]+}) 替换为 [1] 对于***.get_Item(0) 可以通过.get_Item({[0-9]+}) 替换为 [1] 对于***.get_Item() 其实也就是一个get访问器,所以不需要额外处理。 上述两种的通用正则为: .get_Item({[a-z|0-9]+}) 替换为 [1] 注意: 不能使用.get_Item({[a-z|0-9]*}), 虽然它能处理***.get_Item(num)、***.get_Item(0)、***.get_Item()三种情况,但它将***.get_Item()作为索引器而非属性来处理而出错!
事件的订阅与取消 对于事件的订阅可以使用 .add_{[a-z]+} 替换为 .1 += 同样,对于事件的取消订阅可以使用 .remove_{[a-z]+} 替换为 .1 -=
说明 上述正则本人亲测可行,但为了您的利益,请在操作前进行相应备份。 内容原创,转载请保留原文链接~
更多 正则表达式入门教程 反编译过程中可能遇到的问题 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |