首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我尝试在运行时从psapi.dll (windows)链接函数时,GetModuleFileNameExA将无法正常工作

当你尝试在运行时从psapi.dll (windows)链接函数时,GetModuleFileNameExA将无法正常工作。GetModuleFileNameExA是一个Windows API函数,用于获取指定进程中加载的模块的文件名。它的参数包括进程句柄、模块句柄和存储文件名的缓冲区。

然而,当你在运行时尝试链接psapi.dll并调用GetModuleFileNameExA函数时,可能会遇到以下问题:

  1. 缺少依赖:psapi.dll是一个动态链接库,如果你的系统中没有安装该库或者版本不匹配,就无法正常链接。在这种情况下,你需要确保psapi.dll已正确安装,并且可以在系统路径或应用程序路径中找到。
  2. 函数签名不匹配:GetModuleFileNameExA函数的参数可能与你在代码中使用的参数不匹配。你需要确保传递正确的参数类型和数量,并且按照函数的预期方式使用它们。
  3. 权限问题:如果你尝试获取其他进程的模块文件名,你需要具有足够的权限。确保你的应用程序以管理员权限运行,或者使用适当的访问权限来打开目标进程。
  4. 调用顺序错误:在调用GetModuleFileNameExA之前,你需要先打开目标进程并获取其句柄。确保你按照正确的顺序执行这些步骤,以确保函数能够正常工作。

总结起来,当你尝试在运行时从psapi.dll链接函数时,GetModuleFileNameExA无法正常工作可能是由于缺少依赖、函数签名不匹配、权限问题或调用顺序错误所致。你需要仔细检查这些方面,并确保你的代码正确处理这些问题。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(移动推送、移动分析等):https://cloud.tencent.com/product/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云游戏多媒体引擎(GME):https://cloud.tencent.com/product/gme
  • 腾讯云视频处理(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云音视频通信(TRTC):https://cloud.tencent.com/product/trtc
  • 腾讯云云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rust用起来真香,1Password工程副总裁这样说

我们的 Windows 团队是这项工作的先行者,现在的 Windows 版 1Password 7 大约 70% 的代码是用 Rust 编写的。...该工具的输出会自动处理序列化 / 反序列化过程,这意味着我们的客户端开发人员在与 Rust 库交互可以继续使用他们选择的语言工作,并且避免了通过外部函数接口(FFI)解析 JSON 的麻烦。...WebAssembly 作为一个函数库来说非常出色,但尝试在 WASM 中支持整个运行时一直是一个挑战。...当我们开始尝试探索基于 Rust 的解决方案所能提供的优势,我们做了大量实验。...当你的实验顺利进行时,请尝试重新思考一下你以前使用其他语言工作方式,看一看你的代码是否可以 Rust 的理念中受益。

56030

android 模拟器 haxm,Android模拟器不使用HAXM

我遇到HAXM问题.在我使用Windows 7之前,一切都很好,但升级到Win8.1 Pro后,当我AVD屏幕启动模拟器,我看不到haxm启动消息....HAXM安装并正常工作,我安装了x86的图像,我的设备使用它但仍然无法在启动窗口中看到Emulator正在使用haxm的确认消息. 这是情况; >我的处理器支持vt....(V1.1.0) >当我在cmd中输入“sc query intelhaxm”,它看起来正在运行....>尝试创建一堆不同配置的新设备. 我尝试过在互联网上找到的所有解决方案,我错过了什么?为什么我看不到haxm在模拟器启动窗口中工作的确认消息?...1276984.html 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153981.html原文链接:https://javaforall.cn

2.1K20
  • 白加黑免杀制作(详细)

    ,但是当我真正尝试的时候才发现很多问题,如: 网上关于如何编写 dll 的资料不全或太过片面 在 dll 的 dllmain 函数中执行 shellcode 导致死锁 如何在 dll 中截取主线程直接上线...使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才 DLL 中取出。dll 文件和 exe 文件一样都是 PE 文件。 1....静态链接库(.lib) 在编译动态链接库(.dll)还会输出相应的静态链接库(.lib): lib 文件中包含一些索引信息,记录了 dll 中函数的入口和位置,lib 用于在开发编译使用,dll 则在运行时使用...(1)静态查找 一种方法是通过静态调用的特点去查找, exe 移动到另一个位置,执行时会提示找不到 dll: 另一种方法是通过 PE 查看器去查找, exe 直接安装位置拖入 Dependencies...当我黑 dll 放回原程序文件夹后,执行 exe 导出函数被调用成功弹出窗口: 发现叉掉弹窗后 bilibili 还是能被正常打开,唯一的问题是视频无法播放: 在导出函数中随便写一个加载器,切换 Release

    5.8K71

    什么是dll_dll文件怎么打开编辑

    Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。...使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才DLL中取出。另外,使用DLL文件还可以减小程序的体积。...可以在运行时各个模块加载到主程序中(如果安装了相应模块)。 因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求才加载。...例如,如果发生下列操作之一,则该程序可能无法运行: 依赖 DLL 升级到新版本。 修复了依赖 DLL。 依赖 DLL 被其早期版本覆盖。 计算机中删除了依赖 DLL。...因此,当程序安装操作尝试删除或更新被定义为系统 DLL 的 DLL Windows 文件保护寻找有效的数字签名。

    1.8K10

    深入浅出链接库 | 静态库与动态库

    前言 不管是在 Windows 下开发,还是在 Linux 下开发,我们都会经常性的使用一些库文件,这些库文件的特点就是,我们可以看到接口的原型并通过这些接口来调用这个函数的功能,但是我们无法查看这个功能的实现...也正因为如此,使用静态库生成的可执行文件是可以独立运行的,因为他不再需要外部的内容,而动态库编译生成的可执行文件就无法单独运行,因为他在运行时,才会去链接所引用的外部地址。 1....动态库是在运行时加载到内存的共享库段,这样,如果很多程序都要用到静态库的时候,就会节省大量内存,因为它不像静态库那样加载到代码段,而是是在运行时载入内存的共享库段,当多个程序要用到同一个动态库,所有程序可以共享这个共享库段的指令和数据...动态链接的实现是这样的,在编译首先由静态链接所有的目标文件链接为一个可执行文件,等到程序运行时会将要用到的动态库加载到内存的共享库段,由动态链接器完成可执行文件和动态库文件的链接工作,可以理解为按需载入内存...也就是说,动态链接库要编译为与位置无关的代码,这样只有在运行时才直到代码的位置。

    34010

    php中self与static的区别

    ; } } 当我们调用Mercedes::model(),猜猜结果是什么? 可能你觉得结果会是: I am a Mercedes! 但实际输出是: I am a Car!...简单来说,延迟静态绑定意味着,当我们用static关键字调用一个继承方法,它将在运行时绑定调用类(calling class)。...在上面的例子中,如果我们使用延迟静态绑定(static),意味当我们调用“Mercedes::model();”,class Mercedes中的getModel方法将会被调用。...php 5.3以下的版本无法使用延迟静态绑定 注意,php 5.3之前的版本无法使用延迟静态绑定。如果尝试在php 5.3以下的版本运行上面的例子,将会报错。...php中的self和static 现在我们例子中的self用static替换,可以看到,两者的区别在于:self引用的是当前类(current class)而static允许函数调用在运行时绑定调用类

    56820

    分享 3 个 你可能会用上的 JavaScript 类

    如果您返回一个原语,该类正常工作。...这也是实现 mixin 的一种方法,基类开始并在运行时或预先扩展它。 这实际上是在 JavaScript 中引入类之前我们用来扩展类的方式。该类只是构造函数和原型工作的语法糖。...我曾经认为利用这些东西不好,但是,当我冒险进入元编程世界,寻找可以利用的空白成为一种习惯。 我把这些技巧分享给你,希望有一天它们对你有用。...image.png 当然,这只是解决此类问题的一种方法,我们也可以尝试插件模式。我想说明的是用多个东西扩展一个类的能力。 这也是实现 mixin 的一种方法,基类开始并在运行时或预先扩展它。...我曾经认为利用这些东西不好,但是,当我冒险进入元编程世界,寻找可以利用的空白成为一种习惯。 我把这些技巧分享给你,希望有一天它们对你有用。

    36230

    详解DLL远线程注入技术

    [gklumzpmqq.png] 简单来说,动态链接库里面其实就是一个一个的函数Windows也是一个应用程序,它被分割成了许许多多的动态链接库。...比较大的应用程序都由很多模块(动态链接库)组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。下图为微信应用程序中所调用的动态链接库。...[mlky3957rv.jpeg] Windows 系统平台上提供了一种完全不同的较有效的编程和运行环境,你可以独立的程序模块创建为较小的 DLL 文件,并可对它们单独编译和测试。...在运行时,只有当 EXE 程序确实要调用这些 DLL 模块的情况下,系统才会将它们装载到内存空间中。不用的时候,系统将它们给内存中卸载掉。...[fj2hopad14.png] 然后在dllmain.cpp中写我们的代码,我们的代码很简单,直接写上一个alert函数,功能是:当我们的病毒DLL文件被应用程序加载,直接弹出一个弹窗。

    1.1K10

    Windows权限提升之AppLocker绕过

    前言 在这篇文章中,我们讨论 AppLocker 绕过的主题,这可以被视为 Windows 权限升级的一步,因为 AppLocker 会填充我们执行传输到受害者的任何文件的所有尝试。...当我们发现自己无法在受害者上执行任何工具,我们会预感 AppLocker 已启用。从那里,我们枚举并确认 AppLocker 确实已安装并按照默认规则运行。...需要注意的是,当 ADS 执行文件,它会打开一个新窗口来运行程序。如果我们在反向 shell 中工作,这将是一个问题,因为我们看不到 PEAS 的输出。...当我们检查 C:\Program Files ,我们看到有一个名为“Program”的非默认文件夹,因此我们将从这里开始。 首先,我们需要检查该文件夹的权限。...icacls "C:\Program Files\Program" 不幸的是,我们发现我们没有这个文件夹的写权限,我们无法在此处复制可执行文件。

    45050

    一文搞懂 Python 的模块和包,在实战中的最佳实践

    你可以在此文件中,导入其他模块,定义 变量、函数、类 等,进行一些预定义的工作,然后在用 import 导入包或包里的模块,被导入的包下的初始化文件会被自动调用执行。...当我项目根目录的 main.py 主程序运行时,一切正常。可是,通常情况下,对于每个自己写的模块,我们都希望能够单独运行它,进行局部的模块测试,而无须依赖主程序。...这是因为 Python 脚本在运行时,会默认脚本所在的当前目录加入 sys.path 中,以便于在其中查找你要导入的模块,而当我用 python spider/realtime/overview.py...既然执行模块脚本,脚本程序无法以绝对导入的方式,引用父级目录中的模块,那么我用相对导入的方式,是否可以解决? 于是,我代码调整为相对导入:from .. import config。...__ 字符串,则相对导入无法从中分析出父级包的信息,自然会报上面的错误:“尝试从未知的父包中进行相对导入”,了然。

    1.6K41

    go1.18新特性(翻译)

    翻译成人话,使用泛型的代码在1.18版本运行正常,但在以后的版本中可能会出bug,我们不计划做出此类变更。然而,由于我们今天无法预见的原因,在未来的版本中破坏1.18程序也是可能的。...Go 1.18编译器现在rune量表达式(如'1'<<32)作为参数传递给预声明函数print和println如果溢出能够正常检查出来,这与用户定义函数的预期的行为一致。...windows windows/arm和windows/arm64接口现在支持非协作式抢占,将该功能引入所有四个windows接口,有望解决在调用长时间阻塞的Win32函数遇到的细微错误。...还要注意,模糊引擎在运行时会将扩展测试覆盖范围的数据写入$GOCACHE/fuzz缓存目录。目前,可能写入fuzz缓存的文件数或总字节数没有限制,因此它可能会占用大量存储空间(可能是几GB)。...因此,大多数代码库更快地链接,需要更少的内存来链接,并生成更小的二进制文件。处理Go二进制文件的工具应该使用Go 1.18的debug/gosym包来透明地处理新旧二进制文件。

    1.5K10

    解决module = loader.load_module(fullname) ImportError: DLL load failed: 找不到指定的模块。

    这个错误通常是由于无法找到依赖的动态链接库(DLL)文件引起的。本篇文章介绍一些解决这个问题的方法。1. 检查环境变量首先,我们需要检查操作系统的环境变量,确保所需的DLL文件所在的路径已正确配置。...与静态链接库(Static Link Library,简称LIB)不同,动态链接库在程序运行时才被加载并链接到内存中,以供程序调用。1....动态链接库的特点动态链接库具有以下几个特点:共享性: 动态链接库可以同时被多个程序共享使用,节省了磁盘空间和内存资源。动态加载: 程序在运行时才加载动态链接库,而不是在编译。...代码重用: 动态链接库可以包含一组函数和方法,供多个程序共享调用。通过使用动态链接库,开发人员可以常用的代码模块抽象成库,实现代码的重用,提高开发效率。...例如,通过Windows API动态链接库,程序可以调用Windows操作系统提供的各种功能和服务。3.

    1.3K60

    DLL代理加载shellcod用于免杀,维权等等

    在启动,应用程序(A )需要使用名为“ GetFunkyData()”(C)的第三方函数来获取数据,GetFunkyData()存在于名为“ DataFunctions.dll”(B)的动态链接库中,...该库位于工作环境中。...应用程序(A)尝试按其名称加载库“ DataFunctions.dll”,以尝试执行“ GetFunkyData()”(C)。由于该函数存在于库(B)中,因此执行该函数,并且应用程序正常运行。...在启动,应用程序(A)需要使用名为“ GetFunkyData()”(D)的第三方函数来获取数据,GetFunkyData()存在于动态链接库中,该动态链接库位于工作目录中,名为“ DataFunctions_Original.dll...在运行时不安全地加载少量DLL ,可执行流必须是可劫持的,但我们不希望超过1-3个DLL放到目标上以使我们的攻击才能顺利进行。

    2.7K10

    3 个可能有用的奇怪 JavaScript 类

    this.make = make; this.model = model; return { different: true } } } 这仅仅意味着当我们实例化类...如果您返回一个原语,该类正常工作。...3 、运行时的多个类扩展(mixins) 在 OOP 中,您可以使一个类扩展另一个类,并且您必须在代码执行之前这样做。对于一些非常具体的问题,我在代码中一直在探索的一件事是在运行时扩展类的想法。...这也是实现 mixin 的一种方法,基类开始并在运行时或预先扩展它。 这实际上是在 JavaScript 中引入类之前我们用来扩展类的方式。 该类只是构造函数和原型工作的语法糖。...我曾经认为利用这些东西不好,但是,当我冒险进入元编程世界,寻找可以利用的空白成为一种习惯。 我把这些技巧分享给你,希望有一天它们对你有用。

    34320

    【专业技术第五讲】动态链接库及其用法

    例如,如果发生下列操作之一,则该程序可能无法运行: 依赖 DLL 升级到新版本。 修复了依赖 DLL。 依赖 DLL 被其早期版本覆盖。 计算机中删除了依赖 DLL。...如果没有强制实现向后兼容性,则该程序可能无法成功运行。 入口点 在创建 DLL ,可以有选择地指定入口点函数。...当进程或线程将它们自身附加到 DLL 或者将它们自身 DLL 分离调用入口点函数。您可以使用入口点函数根据 DLL 的需要来初始化数据结构或者销毁数据结构。...如果您使用的是运行时动态链接,则只有个别 DLL 不会加载。 入口点函数只应执行简单的初始化任务,不应调用任何其他 DLL 加载函数或终止函数。...在运行时动态链接中,您应使用与以下代码类似的代码来调用 SampleDLL.dll导出 DLL 函数。 //...

    1K70

    Python 源码混淆与加密

    但是在运行一个单独的脚本,该脚本是不会被编译为 pyc 文件的,这是由于 Python 的解释器认为只有导入的包才会被不断复用,才有编译的价值。...它能够在运行时刻保护 Python 脚本的二进制代码不被泄露,设置加密后 Python 源代码的有效期限,绑定加密后的 Python 源代码到硬盘、网卡等硬件设备。...所谓分片保护,就是单独加密每一个函数在运行脚本的时候,只有当前调用的函数被解密,其他函数都没有解密。而一旦函数执行完成,就又会重新加密。这种方式相对于混淆来说,效果明显要好的多。...pyconcrete 可以源码文件夹下所有 py/pyc 文件通过 AES128 加密为 pye 文件,该文件无法正常的 Pyhon 解释器解释,需要使用 pyconcrete 程序加载运行。...使用 pyconcrete 加密的源码在运行时会调用 _pyconcrete.pyd 文件进行解密,该文件内存储了用于解密源码的密钥。

    5.6K20

    总结到目前为止发现的所有EDR绕过方法

    如果我们对shellcode进行加密并在运行时对其进行解密以将其写入到远程进程中,则可以调用writeProcessMemory,该函数在幕后有时会调用NtWriteVirtualMemory。...当程序调用该函数首先执行AV/EDR附加代码,例如在NtWriteVirtualMemory的情况下,将对字节进行分析,然后shell写入远程进程。...这里使用的技术的目标是在运行时不从ntdll.dll加载任何函数,而是直接使用相应的汇编代码来调用它们。通过反汇编ntdll.dll文件,可以获取其中包含的每个函数的汇编代码。...通过为所有OS版本嵌入所有不同的汇编代码版本,可以在运行时检查基础操作系统,并为所需的Windows API函数选择正确的汇编代码。...通过使用此方法,AV / EDR系统可以修补Windows库文件(如NTDLL.dll)的内存副本 与P / Invoke相比,D / Invoke在运行时手动加载Windows API函数,并使用指向其在内存中位置的指针来调用该函数

    8.9K31

    笔记·Python装饰器

    输出: 'hi White_mu' # 我们甚至可以一个函数赋值给一个变量,比如 hi = hello # 我们尝试运行下这个 print(hi('White_mu')) # output: 'hi...time.sleep(1) print('函数运行结束') waitting() 装饰器传参 当我们的函数需要传递参数,上面的例子可能就不适用了,这时我们可以使用以下方法: import time...White_mu 函数运行结束 函数运行完毕,运行时间为: 0.002000093460083008 这是传入一个参数的例子,接下来我们尝试传入多个参数 def count_time(fun):...当我类作为一个装饰器,工作流程: 通过__init__()方法初始化类 通过__call__()方法调用真正的装饰方法 class zhuangshiqi: ''' 一个简简单单的装饰器...希望函数能够正常运行~ 开始运行函数 hello!

    18550

    Java异常处理只有Try-Catch吗?

    如果你不记得它,则 Java 中的异常会指出意外或意外事件,该异常在程序执行期间(即在运行时)发生,这会破坏程序指令的正常流程。Java为我们提供了上述 try-catch 捕获异常的机制。...当我尝试检索绝对超出范围的值(索引= 6),Java 抛出 ArrayIndexOutOfBoundsException。 这表明我们尝试调用的索引为负数,大于或等于数组的大小。...通常,这是由于 Java 程序无法执行任何操作来错误中恢复,例如:错误表明严重的问题,而合理的应用程序甚至不应尝试捕获。...因此,我们必须正常处理异常。 try-with-resources 与可关闭的资源一起使用,避免在 finally 块内关闭资源 。...你可以使用链接函数 Option 来使您的代码更具功能性: repository.insert(bmw).andThen(car -> { System.out.println("Car is

    1.3K10
    领券