加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

反编译过程中常用的正则

发布时间:2020-12-14 01:53:11 所属栏目:百科 来源:网络整理
导读:get、set属性 在.NET的编译过程中get、set属性转化为get_func()、set_func(xxx)方法。 因此 对于反编译出来的代码,逐个替换可能很慢,可以采用下面正则表达式分别进行查找替换: 对于get访问器: .get_{[^()]+}() 替换为 .1 对于set访问器: .set_{

  get、set属性

在.NET的编译过程中get、set属性转化为get_func()、set_func(xxx)方法。

因此对于反编译出来的代码,逐个替换可能很慢,可以采用下面正则表达式分别进行查找替换:

对于get访问器:
.get_{[^()]+}()       替换为   .1

对于set访问器:

.set_{[^(]+}({[^)]+})   替换为   .1 = 2

如果上面的无法正常使用也可以使用:

对于get访问器:
get_{[a-z]*}()         替换为   1

对于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 -=

  说明

上述正则本人亲测可行,但为了您的利益,请在操作前进行相应备份。

内容原创,转载请保留原文链接~

  更多

正则表达式入门教程

反编译过程中可能遇到的问题


作者:Cosmic_Spy
出处:http://www.cnblogs.com/Interkey/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读