我现在有个未知的DLL文件。想得到它的里的函数和参数及其类型。
绝不是。NET 写的。用。NET 的反编译工具无法得到。
谢谢了!(函数(参数1 类型1,)返回类型)

解决方案 »

  1.   

    反射可以帮你获取
    参考
    http://blog.sina.com.cn/s/blog_5ea9354f0100cxeu.html
      

  2.   

    C#用DllImport起码得知道入口点函数名和类型
    不然无能为力
    试试反编译那个dll 
      

  3.   

    DirectShow组件在“C:\WINDOWS\system32”目录下的Quartz.dll动态库中,要使C#代码引用COM对象和接口,必须将COM类型库转换为.NET框架元数据,从而有效地创建一个可以从任何托管语言调用的托管包装。在转换过程中需要使用FrameWork SDK自带的TlbImp命令工具,该命令工具在“ C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\TlbImp.exe”目录下(取决于Visual Studio 2005的安装路径)。该命令的使用方法为: 
    TlbImp C:\WINDOWS\system32\quartz.dll out:C:\WINDOWS\system32\quartzDriectShow.dll 
    在DOS命令下执行转换成功。 
      

  4.   

    使用工具DEPENDS.EXE
    查看DLL的方法
      

  5.   

    该工具在Visual Stdio工具中
    可以查看DLL中的函数信息
      

  6.   

    一个小型工具dllexp
    支持标准dll和com的查看ls提供的tlbexp也可以
      

  7.   

    另外:微软vs官方提供的 dumpbin.exe和DEPENDS.EXE 也可以查看dll函数申明信息
      

  8.   

    ps:有关互操作方面的资料,你可以去
    http://interop123.com/ 找,博主那本书还算可以(呵呵,无意打广告,只是那本书当作案头字典还算不错)
      

  9.   

    要是可以随便查看,传统的dll还有什么安全可言
      

  10.   

    主要是因为这个DLL可能是DELPHI写的。不是。NET 的DLL。不能直接打开。
    函数的名字我可以用其它软件得到。这个是可以的。主要是里面的参数和参数类型。
    以及它的返回类型不知道怎么弄出来。
      

  11.   

    比如我的DLL叫ABC.DLL.里面有两个函数。a b int a(string x,int y);
    string b(int x,datetime y);我可以用软件查看到ABC。DLL里有两个函数A,B。但是它的返回类型INT STRING 都无法得到。
    里面的参数想得到那就更难了。
      

  12.   

    如果不是.NET的写的非托管的DLL  可以分析下PE结构... 具体参数..不知道怎么获取的参考http://blog.csdn.net/zgke/archive/2008/09/20/2955560.aspx
      

  13.   

    2楼和楼上的都提到了反射。
    .NET中的反射。不知道这个行不行。小弟先去看一下。先谢谢一下各位。
    不过如果有一个软件直接打开这个DLL文件就能得我要的东西。那就非常好了。
      

  14.   

    还不行么,可以把dll发过来我试一下么。
      

  15.   

    我想问下 我的用.net写的dll我怎么打开0.........谢谢
      

  16.   

    。NET的东西如果没加密处理的话。太简单了。就用上面有朋友说的那个软件可以的。
    REFL
      

  17.   

    这位朋友,我照你的方法试了下。但是打开。NET 写的东西可以正常看到里面的东西。但是前面说了我这个不是。NET的。用反射打开就出错。请帮忙再看看。谢谢各位了
      

  18.   

    我就是用的反射。重要的是我的那个DLL不是用。NET写的。所以反射对它无效。