反编译过程中常用的正则
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()作为索引器而非属性来处理而出错!
本文地址:http://www.cnblogs.com/Interkey/p/link_1.html
事件的订阅与取消
对于事件的订阅可以使用
\.add_{[a-zA-Z]+} 替换为 \.\1 +=
同样,对于事件的取消订阅可以使用
\.remove_{[a-zA-Z]+} 替换为 \.\1 -=
本文地址:http://www.cnblogs.com/Interkey/p/link_1.html
说明
上述正则本人在Visual Studio 2010中亲测可行,但为了您的利益,请在操作前进行相应备份。
内容原创,转载请保留原文链接~
本文地址:http://www.cnblogs.com/Interkey/p/link_1.html
欢迎加群:.NET反编译|破解 群号:183569712(请输入验证信息:博客园).
更多
作者:Cosmic_Spy
出处:http://www.cnblogs.com/Interkey/
有兴趣可以加群【.NET破解|反编译】请注明:博客园,谢谢~
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则肯定是你抄我的。
posted on 2014-03-22 23:11 Cosmic_Spy 阅读(1718) 评论(2) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗