问题描述
首先,我想稍微解释一下我的情况:我必须维护一个基于普通WinAPI的旧软件产品(具有25年以上的历史)。困难在于,我们没有相应的代码,原始的作者公司早已不复存在(RIP @ 1997),但是他们给我们留下了插件API,有些语句像我们可以随意使用它。因此,我们进行了一些x86逆向工程,并编写了许多插件代码,从理论上讲一切都很好。该应用程序仍然可以完美地完成其工作。除了一个小问题,它甚至在Windows 10上也能完美地完成工作:
一旦用户尝试将其数据保存到用户文档文件夹中,应用程序有时(并非总是如此)将无权在此处创建和写入/覆盖文件。我们已经跟踪到了一些旧的fopen
,fwrite
,fprintf
调用,当启用Windows 10 Defender勒索软件保护时,这些调用将被阻止。
例如
mov ecx,[esp+3Ch+access]
push ecx
lea edx,[esi+eax+400h]
push edx
call _fopen
或
push offset SomeDataOffset
push eax
push edx
push offset FormatOffset
push ebx
call _fprintf
(还有更多。)
问题是我不想告诉用户以管理员模式运行该应用程序以(也许?)绕过它,因为在某些情况下,甚至无法做到这一点。而且我什至不确定这是否有效。因此,我最好的选择是一些替换代码,该代码可以对系统/用户进行某种提升或一般性的请求权限,然后再将数据写入该目录/文件。
问题是,我该怎么办?我知道如何替换该代码,但不能替换为 。
TL; DR
是否有任何 magical WinAPI或任何函数/代码,可以让我请求权限(可能带有用户的系统弹出窗口)来写入特定的文件路径? (但是不需要管理员权限)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)