鱼C论坛

 找回密码
 立即注册
查看: 83|回复: 2

如何找到dll 文件位置

[复制链接]
发表于 2024-4-17 11:07:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


问题描述:  OD中查看 内存布局, 如何确定内存布局中, 系统模块   kernel32.dll  在本机的具体文件目录, ( 直接本地搜索文件的话有好多目录都有kernel32.DLL)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-4-17 11:07:13 | 显示全部楼层
要确定系统模块 kernel32.dll 在本机的具体文件目录,可以使用Python中的ctypes库来实现。ctypes是一个强大的外部函数库调用模块,它允许Python程序直接调用DLL文件中的函数。

下面是一段使用ctypes库查找kernel32.dll文件位置的示例代码:

  1. import ctypes

  2. # 加载kernel32.dll
  3. kernel32 = ctypes.WinDLL('kernel32.dll')

  4. # 调用GetModuleHandleA函数获取kernel32.dll的句柄
  5. kernel32_handle = kernel32.GetModuleHandleA('kernel32.dll')

  6. # 创建存储文件路径的缓冲区
  7. buffer = ctypes.create_string_buffer(256)

  8. # 调用GetModuleFileNameA函数获取kernel32.dll的文件路径
  9. kernel32.GetModuleFileNameA(kernel32_handle, buffer, 256)

  10. # 输出文件路径
  11. print(buffer.value.decode('gbk'))
复制代码


通过上述代码,可以找到kernel32.dll在本机的具体文件路径,并将其打印出来。

需要注意的是,这里使用的是Windows操作系统下的相关函数和库,因此上述代码只适用于Windows环境。如果你使用的是其他操作系统,就需要针对不同的系统做相应的处理。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-4-17 11:18:58 | 显示全部楼层
本帖最后由 jackz007 于 2024-4-17 11:49 编辑

          和可执行文件一样,先找当前目录(exe 文件所在目录),再按照 PATH 环境变量顺序进行查找,找到为止。
  1. import os

  2. print()
  3. print(' ' * 8 + '请在 exe 文件所在目录运行\n')
  4. fn = input(' ' * 8 + '输入 dll 文件名:')
  5. if fn :
  6.     c = 0
  7.     if len(fn) > 4 and fn[-4 :] . lower() != '.dll' :
  8.         fn += '.dll'
  9.     kx = fn
  10.     if os . path . exists(kx) and os . path . isfile(kx):
  11.         c += 1
  12.     else :
  13.         for xs in os . getenv('PATH') . split(';') :
  14.             kx = xs + fn if xs[-1] == '\\' else xs + '\\' + fn
  15.             if os . path . exists(kx) and os . path . isfile(kx) :
  16.                 c += 1
  17.                 break
  18.     print(' ' * 8 + kx) if c else print(' ' * 8 + '[抱歉]:没有找到。')
复制代码

        在 exe 文件所在目录内运行此代码就可以知道究竟用的是哪一个 dll 文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 09:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表