wangleo
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2003-08-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1337回复:2

SYS文件的导出和动态加载

楼主#
更多 发布于:2002-02-23 14:20
我已经在一个sys1里面导出了几个函数,这个sys1就是那几个函数的实现者,不做其它任何事情。

如何在另外一个sys2里面把sys1动态加载并得到sys1导出函数的地址?
wangleo
驱动牛犊
驱动牛犊
  • 注册日期2002-01-23
  • 最后登录2003-08-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-02-23 16:37
行了,解决了。用Ldr系列函数可以解决。用ice跟了一下:

NTSTATUS NTAPI
LdrLoadDll(
    IN PWSTR DllPath OPTIONAL,
    IN PULONG DllCharacteristics OPTIONAL,
    IN PUNICODE_STRING DllName,
    OUT PVOID *DllHandle
);

NTSTATUS NTAPI
LdrUnloadDll(
    IN PVOID DllHandle
);

NTSTATUS NTAPI
LdrGetProcedureAddress(
    IN HINSTANCE hInstance,
    IN PSTRING ProcedureName,
    IN ULONG Reserved,
    OUT PVOID* ProcAddr
);

我不太明白为什么load的时候用UNICODE_STRING,而GetProcAddr的时候用STRING,NT就是那么设计的?

fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2002-02-27 17:02
那你怎么用的啊?这好像DDK里面没有声明哦
游客

返回顶部