cod*_*ike 4 .net c# vb.net decompiler
当使用像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
Run Code Online (Sandbox Code Playgroud)
实际上会进行库调用以进行比较,并在反编译为C#时显示如下:
if (Operators.CompareString(a, b, false) == 0) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |