Wi-Fi 화이트리스트를 제거하고 수정된 BIOS를 다시 eeprom으로 플래시하기 위해 Thinkpad의 BIOS를 수정했습니다. 이렇게 하려면 다음과 같은 도구를 사용해야 합니다.Thinkpad-uefi-플래그부팅할 수 있도록 이미지에 서명합니다. Thinkpad-uefi-sign에는 pycryptodome이 필요합니다. 나는 그것을 사용하여 설치했다.
apt install python3-pycryptodome
하지만 여전히 작동하지 않고 오류가 발생합니다.
ModuleNotFoundError: No module named 'Crypto'
thinkpad-uefi-sign/verify.py를 실행하면. 저는 최신 패키지와 Python 3.11.5가 포함된 Debian Testing Trixie를 사용하고 있습니다.
내가 시도한 또 다른 것은 다음을 사용하여 설치하는 것입니다.
pip install pycryptodome
그러나 이는 패키지를 손상시킬 수 있다는 경고를 제공하고 apt install python-xyz를 사용하여 패키지를 설치할 수 있습니다. 그런 다음 python3-full을 설치하고 python3 -m venv /path/to/venv를 사용하여 venv(가상 환경)를 설정했습니다. 다음 명령을 사용하여 venv에 pycryptodom을 설치했습니다.
/path/to/venv/bin/pip3 install pycryptodome
그런 다음 thinkpad-uefi-sign/verify.py 스크립트를 실행합니다.
/path/to/venv/bin/python3 thinkpad-uefi-sign/verify.py Bios_Modded.bin
여전히 같은 오류가 발생합니다. 그 후 venv에서 pip3을 사용하여 pycryptodomex, Crypto 및 pycrypto를 설치하려고 시도했지만 프로그램을 실행할 때 여전히 오류가 발생했습니다. 나는 또한 다음 답변을 시도해 보았습니다.이 다른 기사, 그러나 별로 도움이 되지 않았습니다. 저도 MacBook을 사용해 보았는데 어떤 이유에서인지 작동하는 것 같으니 이는 포장 관련 문제일 수 있습니다. 마무리하는 것이 도움이 될 수 있습니다. 여기에 명령과 전체 출력이 있습니다.
$ ./python3_venv_with_pycryptodome/bin/python3 thinkpad-uefi-sign/verify.py Bios_Modded.bin
Traceback (most recent call last):
File "/home/witherslayer/Sowa/ThkpX1CG2_UEFIs/workflow/thinkpad-uefi-sign/verify.py", line 19, in <module>
from Crypto.PublicKey import RSA
ModuleNotFoundError: No module named 'Crypto'
답변1
Panki의 의견에 따르면 Python venv를 활성화한 후 서명된 소프트웨어를 실행할 수 있었습니다. 다음 명령을 사용하여 bash에 대해 이 작업을 수행합니다.
$ source <venv>/bin/activate
~에서파이썬 문서.
답변2
이 라이브러리에는 3.4.1부터 다음과 같은 기능이 있습니다.
3.4.1(2016년 2월 21일)
새로운 기능
Cryptodome
(대신 ) 패키지 아래에 라이브러리를 설치하는 옵션이 추가되었습니다Crypto
.
실제로 소스에 명시된 대로 이전 PyCrypto 라이브러리를 설치하거나 사용하는 경우 이전 PyCrypto 라이브러리와의 충돌을 피해야 합니다.
누구나:
기존 PyCrypto 라이브러리를 거의 즉시 대체합니다.
You install it with:: pip install pycryptodome In this case, all modules are installed under the `Crypto` package. You can test everything is right with:: pip install pycryptodome-test-vectors python -m Crypto.SelfTest
PyCrypto와 PyCryptodom을 모두 갖는 것을 피해야 합니다.서로 간섭하므로 두 가지를 동시에 설치하십시오. 따라서 전체 애플리케이션이
virtualenv
.
또는:
이전 PyCrypto와 독립된 라이브러리입니다.
다음 명령을 사용하여 설치할 수 있습니다.
pip install pycryptodomex You can test everything is right with:: pip install pycryptodome-test-vectors python -m Cryptodome.SelfTest
이 경우,
Cryptodome
모든 모듈은 이 패키지 아래에 설치됩니다 . 기존 PyCrypto와 PyCryptodom은 공존할 수 있습니다.
aa 배포자로서 Debian은 잠재적인 충돌을 피하기 위해 이 옵션을 선택했습니다(이전 PyCrypto를 전혀 제공하지 않더라도):
touch .separate_namespace
use_separate_namespace = os.path.isfile(".separate_namespace")
other_project = "pycryptodomex" other_root = "Cryptodome"
if use_separate_namespace: project_name, other_project = other_project, project_name package_root, other_root = other_root, package_root
마지막 Crypto
으로 (venv 없이) 데비안 패키징 라이브러리를 사용할 수도 있습니다.Cryptodome
sign.py
그리고verify.py
.