[ 十仙庆寿 高清百度云 ,谁有,发下

------解决方案--------------------C#调用windowsAPI函数会吧?
那么你的dll导出函数后调用方法都一样吧。
只是要注意下参数的处理。
以调用user32.dll导出的MessageBoxA为例
[DllImport("user32.dll",&EntryPoint="MessageBoxA")]
static&extern&int&MsgBox(int&hWnd,&string&msg,&string&caption,&int&type);------解决方案--------------------[DllImport("XX.dll",&CallingConvention&=&CallingConvention.StdCall)]
&&&&&&&&public&static&extern&int&XXX(string&XXXX);
下面就就可以直接调用了&
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有.dll的导出文件,该怎么处理 - VC/MFC当前位置:& &&&.dll的导出文件,该怎么处理.dll的导出文件,该怎么处理&&网友分享于:&&浏览:9次.dll的导出文件我写了一个dll程序,现在要用了,可是又不知道该怎么做?------解决方案--------------------如果你的dll是这样定义的:
&C & __declspec(dllexport) int fun(int a, int b)
那么,使用时,先把lib文件引入工程,然后,把生成的dll放在你的工作目录下,然后,定义一个头文件,把库中的函数包含过来:
&C & __declspec(dllimport) int fun(int a, int b);
在a.cpp文件中调用就行了:
int q = fun(1,2);
------解决方案--------------------?
&dllapi.h &
工程中加入dllapi.lib
------解决方案--------------------在stdafx.h中加入
#ifdef _DEBUG
#pragma message( &正在联接AdoDbD.lib
类库(DEBUG版) ... &)
#pragma comment(lib,
&lib/AdoDbD.lib &)
//DEBUG版的lib库文
#pragma message( &正在联接AdoDb.lib
类库(Release版) ... &)
#pragma comment(lib,
&lib/AdoDb.lib &)
&..\adodb\adodb.h &
//此文件为DLL工程中包含了API定义的头文件夹如下面的样子
#ifdef MYDLL_EXPORTS
//在DLL的[project]-& [settings]-& [C/C++]中加入此宏名
#define MYDLL_API
__declspec(dllexport)
#define MYDLL_API
__declspec(dllimport)
MYDLL_API MyApiFun(...);
//这个函数可以为EXE作为API直接调用
&..\adodb\dllClass.h &
//此文件包含了可供EXE调用的DLL中可引用类的头文件
class AFX_EXT_CLASS CMyDllClass001
//这个类可以为EXE同EXE中的类一样调用
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有Private Declare Function add Lib &my.dll& (ByVal a As Long, ByVal b As Long) As LongPrivate Sub Form_Load()Dim c As Longc = add(3, 4)End Sub“找不到dll入口点 add in my.dll”?在dll中的代码:C/C++ code__declspec (dllexport) int __stdcall add(int a,int b){
return a+b;}这是为什么呢?[解决办法]路径问题[解决办法]你把my.dll放到C:\Windows\System32目录下[解决办法]Private Declare Function add Lib &d:\youdllpath\my.dll& (ByVal a As Long, ByVal b As Long) As Long[解决办法]编译后就应该没问题了[解决办法]找不到入口点,应该是找到文件了,但找不到调用的函数。1 检查你的 my.dll 文件是否正确。可以用 Dependencies Walker 工具查看是否有 add 函数接口。2 检查在 VB 中声明的函数名,与 DLL 中的函数名是否一致,包括大小写。怎么把小弟我的DB.CS文件生成DLL文件,然后,怎么在小弟我的程序中调用这个DLL的过程 - ASP.NET当前位置:& &&&怎么把小弟我的DB.CS文件生成DLL文件,然后,怎么在小怎么把小弟我的DB.CS文件生成DLL文件,然后,怎么在小弟我的程序中调用这个DLL的过程&&网友分享于:&&浏览:9次如何把我的DB.CS文件生成DLL文件,然后,如何在我的程序中调用这个DLL的过程如我的工程有
DB.CS & ..文件,现在我要把这些CS文件成生DLL
然后把这个DLL复制到更一个工程的BIN下面
后如何在这个工程中调用DB.CS里面的FormatHTML(string & myHTML)
PS:也就是把类生成DLL再调用这个类------解决方案--------------------在另一个工作中,引用-& 添加引用 .
然后调用这个类就可以了.
------解决方案--------------------建立一个类库项目
把这个CS文件放进去
编译项目后生成DLL
需要引用时
对着网站点右键 属性
进入引用 添加一个 选择到这个DLL
然后在代码里引入名称空间(假如有的话) 就是 using xxxxxx
然后就可以用这个DLL里的方法了
如果这个方法是静态的
直接 类.方法名 调用
否则需要先实例化 即 YourClass myClass = new YourClass();
再 myClass.FormatHTML(xxx);
------解决方案--------------------vengair()正解
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有请教如何防止DLL被非法调用
来源:博客园
【各位大侠,请教如何防止DLL被非法调用啊。 比如C/S的程序有很多DLL(比如:SampleDll.dll),如何才能防止客户自己开发一个程序来调用SampleDll.dll呢。 也就是说如何才能只允许我的EXE文件(比如:SampleExe.exe)才可以调用SampleDll.dll ??? 有人说用混淆器,可这根本不能解决问题,只是障眼法而已。 还请各位大哥们指点一下,当然最好是能给点代码啦,小弟在此谢过。】
Colin Han:
1. 使用Internal接口,然后使用InternalVisibleToAttribute。
InternalVisibleToAttribute可以指定Assembly的PublicKey,因此,即使他的Assembly也修改成你的名字,也无法调用其中的成员。
但是,这样做依然可以使用反射调用 :-(
2. 在你的类型的构造函数上添加校验逻辑
你可以在你的构造函数上添加校验逻辑,检查调用者是不是你的程序,一般可以使用PublicKey进行校验。大多数情况下,用户没有办法模拟你的PublicKey,除非你把它泄露出去了。
这里,你可以通过在构造函数中调用System.Reflection.Assembly.GetCallingAssembly()方法得到调用者的Assembly,通过GetName().PublicKey方法可以得到PublicKey进行校验。
如果你的API是通过静态函数暴露的,在每一个暴露的静态函数上使用同样的方法校验。
但是,这样做无法避免用户反编译你的代码,将这段校验逻辑摘除。
3. 使用混淆
使用IDE自带的Dotfuscator对Assembly进行混淆(注意,将Library和调用Assembly一起进行混淆)。如果你的程序足够复杂,这样已经可以初步确保用户反编译出来的代码没有办法进行修改和编译。基本可以保证你的产品的安全性。
如果还不放心安全性,可以采用deerchao的方案。
对于高手,不存在完全的反破解的方法。
你不知道C#的代码能反编译掉吗?。。代码都能看到,复制过来就行了
方法1:用ILMerge/SmartAssembly之类的工具把dll加包到exe里;
然后再混淆.
这样破解者比较难以找到具体的调用点.
方法2:dll里不声明public类/方法,而把exe需要使用的声明为然后给assebmly加一个InternalsVisibleTo属性.
这样破解者需要把它的exe文件名称做成和你的exe一样才能调用.
我个人认为如果楼主希望达到防止他人调用的效果有以下几个方法,可以分开考虑,当然如果你有时间做安全方面的开发,那么这些方法最好是综合在一起。
1、给Dll文件增加数字签名认证,发送有效的数字签名认证后才能调用。
2、选用好的混淆器进行混淆,混淆的目的是防止他人使用Dll查看器来查看Dll文件,并分析代码及组织结构后,从而调用。当然这也是只能相对阻止,不能被绝对阻止。
3、在注册表中注册您的Dll文件,增加一个键名和键值,键值不能是明文文本形式,而是加密的密文二进制流,这样在调用前必须判断DLL文件必须被注册,而且提供正确的注册键值或密钥,不过这样一来你的Exe文件或者其他调用此Dll文件的程序也必须使用其他安全方法被保护起来。
4、在Dll文件中先使用对称加密后再使用不对称加密算法两种方式进行调用用户身份判断,符合身份的用户才能调用其中的算法,在Dll文件的没法方法调用前都先判断用户身份。此方法同样需要将调用着与被调用着一起保护。
5、在Dll文件中判断某Exe文件或者调用此Dll文件的程序是否被保护,如果没有,则不能成功调用Dll文件。
6、将Dll文件打包到Exe文件中,使得Exe文件和Dll文件一同被保护。
7、尽量避免使用Public关键字,如网友deerchao所述。
8、其他一些关于安全方面的技巧,不过所有安全访问通信在内存中传输的信息,都必须是密文,否则某些内存读取器可以读取到信息,而且如果对方是汇编高手,也同样能找到你的安全方面的漏洞。
正如网友datasky所说,所有的安全都只能是相对安全,而没有绝对安全。Windows中的Dll文件都能被破解而找到漏洞所在,更何况是我们开发的Dll文件,怎么说也需要Windows操作系统支持,被破解是在所难免的事情,只是看破解的人是否有耐心、时间和精力像破解Windows的Dll文件一样,去破解你的Dll文件了。
当然对于某一个Dll文件来说组合使用的上述安全方法越多,性能就会越低,如同鱼和熊掌不能兼得,只要你找准平衡点,适当选用上述性能较好的、安全方法相对较优的,组合使用就可以了。
Jared.Nie:
真想用的话,可以破解DLL重新编译一下
但是确实有防止别人调用自己的dll 的方法
好像是生成dll时做
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

我要回帖

更多关于 网易云音乐网页版 的文章

 

随机推荐