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

反编译的DLL – 帮助判断它是C#还是VB.NET的线索?

发布时间:2020-12-14 02:13:09 所属栏目:Windows 来源:网络整理
导读:当使用像DotPeek这样的东西来反编译DLL时,如何判断它最初是用VB.Net还是C#编码的? 我认为没有简单的方法可以告诉你,但是在某些反编译代码中可能会有告诉标记(即线索)? 解决方法 您可以查找对Microsoft.VisualBasic库的引用.如果存在,则代码很可能是使用VB
当使用像DotPeek这样的东西来反编译DLL时,如何判断它最初是用VB.Net还是C#编码的?

我认为没有简单的方法可以告诉你,但是在某些反编译代码中可能会有告诉标记(即线索)?

解决方法

您可以查找对Microsoft.VisualBasic库的引用.如果存在,则代码很可能是使用VB生成的.该库有时也包含在C#项目中,但这并不常见.如果参考不存在,那肯定不是VB.

(嗯,使用命令行编译器和特殊的编译器开关可以在没有库的情况下编译VB,但这种情况非常罕见.)

您还可以检查VisualBasic库的使用频率.在常规的VB程序中,它会经常使用,但在C#程序中,它通常只用于某些特定的任务,而这些任务在其他库中是不可用的,比如DateDiff调用.

任何VB特定的命令,如CInt或Mid将显示为对VisualBasic库的调用,甚至在字符串上使用时,=运算符将使用该库.此代码(其中a和b是字符串):

If a = b Then

实际上会进行库调用以进行比较,并在反编译为C#时显示如下:

if (Operators.CompareString(a,b,false) == 0) {

(编辑:李大同)

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

    推荐文章
      热点阅读