无法定位程序输入点 StrCpyNW 于动态链接库 - shell32.dll 解决方案

 

=======================================================

        无法定位程序输入点 StrCpyNW 于动态链接库 ****.dll 上。

=======================================================

 

 

        经常情况下,用一些旧版本编译器开发的程序在新的操作系统上不能正常运行。

例如,用 VC6.0 开发的在 XP 上可以正常运行的程序,现在在 Win7/ Win10 执行不了,经常出现类似下列错误:

 

 

     鉴于笔者已经遇到过至少三次此类情况了, 特简要撰写此文。

     究其原因,是因为 Win XP, Win7, Win10 下各个操作系统的 shell32.dll 模块导出接口差异很大

     如果依赖于该 DLL,则一些早期开发的程序在新版本操作系统上将出现此类错误。反之同理。

 

     如果手头有源码,当然可以选择重新编译整个程序来解决。

     否则,可以尝试下列解决方案:

 

    (1)首先找到依赖于 shell32.dll 的模块,建议下载 ExStudPE Visual Tools 分析查看,下载地址:

           https://github.com/tankaishuai/ExStudPE_Visual_Tools

          用该工具打开目标模块,例如 笔者的问题模块 ExtractText2.dll :

         

可见其依赖了一个 StrCpyNW 接口,在 XP 下没问题,但在 Win10 上,该接口不存在,故而无法运行。

(PS:有人可能会想直接把XP的 shell32.dll 挪过来用,遗憾的是这样是无法加载成功的。)

 

 

(2)选择【Shell32.dll】下【Name】项,右键,【跳转至选取RVA】:

 

 

 

(3)菜单【选择】->【修改文件数据】:

 

 

(4)修改如下:

 

 

 

将 32 换成 41,点击【确定】。(即是将 shell32.dll 换成 shell3a.dll )

 

 

(5)菜单【文件】->【保存全部数据】,将修改的模块存盘保存,并替换为原来的文件。

 

 

(6)下载 win32exts.dll ,github 下载地址:

        https://github.com/tankaishuai/win32exts_for_Lua

      【注】win32exts.dll 实现了 Win XP ~ Win10 下各个操作系统的 shell32.dll 的全部接口。

 

    并将 win32exts.dll 重命名为 shell3a.dll 放于目标程序同级目录下即可。

    修改完成。尝试运行下,大功告成!!!

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
sqlcipher-shell32.exe 是一个用于访问和管理 SQLCipher 数据库的命令行工具。SQLCipher 是一个开源的 SQLite 扩展,它提供了对 SQLite 数据库的加密功能,保护您的敏感数据免受未经授权的访问。 通过 sqlcipher-shell32.exe,您可以在命令行界面中执行各种 SQLCipher 数据库相关的操作,包括创建数据库、创建表、插入数据、查询数据、更新数据、删除数据等。 要使用 sqlcipher-shell32.exe,您需要按照以下步骤进行操作: 1. 在您的计算机上安装 SQLCipher。您可以从 SQLCipher 的官方网站或者其他可信的下载源获取安装包,并按照指南进行安装。 2. 打开命令提示符或者终端窗口,进入 sqlcipher-shell32.exe 的安装目录。 3. 运行 sqlcipher-shell32.exe 命令,启动 sqlcipher-shell32 工具。 4. 在 sqlcipher-shell32 工具中,可以使用 ".open" 命令打开一个已存在的 SQLCipher 数据库文件,或者使用 ".new" 命令创建一个新的数据库。 5. 使用 SQL 语句执行各种操作,如创建表、插入数据、查询数据等。要执行 SQL 语句,只需在 sqlcipher-shell32 工具中输入对应的命令,然后按下回车键执行。 6. 在操作完成后,可以使用 ".quit" 命令退出 sqlcipher-shell32 工具。 总之,sqlcipher-shell32.exe 是 SQLCipher 的一个命令行工具,通过它可以访问和管理 SQLCipher 数据库。您可以使用它来执行 SQL 语句,并对数据库进行各种操作。使用它前需要先安装 SQLCipher,并按照指南进行配置和使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值