发布网友 发布时间:2022-06-13 19:42
共2个回答
热心网友 时间:2023-10-15 08:12
用web站点调用dll,然后在dll里封装实现数据,或者资源文件或者执行其他程序,比如网页图片等, dll注册到客户端,然后每次访问该网站都先检测是否有该dll已经注册,没有就再注册,有些asp网站木马就是这样实现的,首先获得服务器的WScript.Shell的权限,然后利用FSO判断DLL是否存在,shell调用regsvr32注册dll 。可以用vc编写ISAPI DLL,也可以在IIS里增加ISAPI映射调用。ActiveX DLL需要注册,不像C#有程序集,好象ASP只能调用ActiveX DLL,是不是它比较老的缘故。使用HTTP的GET方法将DLL从服务器端下载下来。热心网友 时间:2023-10-15 08:13
试图加载格式不正确的程序出现这种异常,通常是.NET应用程序的“目标平台”与非托管dll的平台不一样。一般,在使用VS开发.NET的应用程序和类库时,默认的目标平台为“AnyCPU”,即会在运行时可根据CPU类型自动选择X86或X64,拥有这样的能力是因为.NET编译后的程序集是基于IL的,在运行时,CLR才会将其JIT发射为X86或X64的机器码。而C或C++编译生成的dll就是机器码,所以,其平台的决策是在编译时决定的。通过编译选项的设置,咱们可以将C/C++项目编译为X86的dll或者X64的dll。所以,在调用了非托管dll的.NET项目中,也需要将其目标平台属性设为与非托管的dll的运行平台完全一致。通常遗留下来的非托管dll都是基于x86的,所以,在调用了这类非托管dll的.NET项目中,就将其目标平台属性设为“X86”。可根据“项目->属性->生成->目标平台”找到该设置: