宪兵不安全代码检测
任何熟悉 Gendarme 的人都知道是否可以创建一个检测 C# 不安全代码的规则?
Anyone familiar with Gendarme know if it's possible to create a rule that detects C# unsafe code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这是可能的,而且相当容易做到。
不安全代码不会直接标记在元数据上。但是,您可以查看 IL 指令和类型(本地、参数和返回值)来查找需要“不安全”C# 关键字的构造(编译代码时)。
一本关于 ILasm 的优秀参考书会有很大帮助。因此,需要针对大型项目(有可用的源)测试您的规则,以确保您不会错过任何案例。
Yes, this would be possible and fairly easy to do so.
Unsafe code is not directly marked on the metadata. However you can look at the IL instructions and types (local, parameters and return values) to find construct that requires the 'unsafe' C# keyword (when compiling code).
A good reference book on ILasm would help a lot. So would testing your rule against huge projects (with source available) to ensure you're not missing any case.