gpt4 book ai didi

c++ - 是否可以在 C++ 中调用导出的 "private"方法

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:39 24 4
gpt4 key购买 nike

是否可以调用从 DLL 导出的类的私有(private)方法?
它会不会对想要使用它但不应该使用它的人隐藏?
谢谢:)

最佳答案

是的,这是可能的,但您需要使用肮脏的转换技巧或依赖半未定义的行为,但可以肯定的是,您可以调用导出的函数,无论它是私有(private)/公共(public)状态。

该语言不提供针对恶意攻击者的安全措施。它将帮助每个人遵守规则,但它不会防范那些试图破坏系统的人。

例如:

  • 使用 GetProcAddress() 获取函数的地址,将其转换为正确的成员函数类型,然后调用它。
  • 创建一个类的修改后的头文件,将所有内容声明为公共(public)的(或者只添加一个静态函数,void crowbar() ),然后根据它进行编译。 (未定义的行为,因为您违反了单一定义规则,但它可能会起作用...)

不要依赖 C++ private 关键字来保证安全。

关于c++ - 是否可以在 C++ 中调用导出的 "private"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com