我一直在尝试通过在更可靠和自动化的系统中使用他们的 DLL 来构建我自己的 Nvidia 环绕功能实现。我对此很陌生;我当了一段时间的程序员,但我从来没有需要做任何这样的逆向工程,所以如果我非常愚蠢,请道歉。
到目前为止,我已经管理了以下内容:
- 找到与我想在 NVCPL.dll 中执行的操作相关的导出函数的名称和地址。
- 找到唯一一个似乎加载到该 DLL (nvcplui.exe) 副本中的 exe。
- 使用 API 监视器,我发现一个 DLL 函数的实例在似乎是正确的时间被调用。
- 在 nvcpl.dll 的程序集中放置断点,同时通过 x64_dbg 附加到 nvcplui.exe
我被困的地方:
当我使用 API 监视器时,我似乎无法捕捉到对我正在查看的函数 (NvCplApiDisableSpan) 的任何直接调用,我只在 wndproc 调用之前在堆栈中找到它。此外,我在该函数中及其周围放置的断点永远不会被触发。
我目前的想法是我需要“查看”被调用函数的程序集,这样我才能进入下一步,弄清楚如何正确地调整对该函数的调用。
我认为该函数可能是由不同的进程调用的,是由 nvcplui.exe 触发的,但根据 procexp,情况并非如此;nvcplui.exe 是唯一使用该 dll 的进程。
您对我的任何建议将不胜感激;我并不反对做功课,但如果不拿到 IDA 的副本,我就看不到前进的道路,但是,这有点超出我的预算。