From ce973fda9684ca50d782f301c8c97a69d5b72769 Mon Sep 17 00:00:00 2001 From: wh201906 Date: Fri, 25 Nov 2022 01:10:37 +0800 Subject: [PATCH] V0.2.6 Update deploy/deploy.py --- CHANGELOG.md | 17 ++++++-- deploy/deploy.py | 67 +++++++++++++++++++++----------- doc/CHANGELOG/CHANGELOG_zh_CN.md | 11 ++++++ src/Proxmark3GUI.pro | 2 +- 4 files changed, 71 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 698e40f..9b55da5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,15 +2,26 @@ [中文](doc/CHANGELOG/CHANGELOG_zh_CN.md) +### V0.2.6 ++ Add support for Iceman/RRG repo v4.15864 [#37](https://github.com/wh201906/Proxmark3GUI/issues/37) ++ Optimize mifare classic block writing logic ++ Fix the default lf config ++ Add feedback for the GUI failing to start the client ++ Add feedback for the client failing to connect to PM3 hardware ++ Detect PM3 hardware when searching serial ports ++ Remove extra empty lines in raw command output ++ Use embedded config files ++ Remove the wait time between performing nested attack then switching to staticnested attack + ### V0.2.5 -+ Fix bug [#28](https://github.com/wh201906/Proxmark3GUI/issues/28) ++ Fix bug [#28](https://github.com/wh201906/Proxmark3GUI/issues/28) ### V0.2.4 + Clone EM410x card to T55xx card ### V0.2.3 -+ Fix bug [#27](https://github.com/wh201906/Proxmark3GUI/issues/27) -+ Try to support Non-ASCII path ++ Fix bug [#27](https://github.com/wh201906/Proxmark3GUI/issues/27) ++ Try to support Non-ASCII path ### V0.2.2 + Load command format from external json file diff --git a/deploy/deploy.py b/deploy/deploy.py index 44ced91..f11e277 100644 --- a/deploy/deploy.py +++ b/deploy/deploy.py @@ -1,17 +1,19 @@ import os, sys, shutil from win32api import GetFileVersionInfo from json import load -from re import fullmatch, IGNORECASE +from re import fullmatch, sub, IGNORECASE compressDirList = [] def getPEVersion(fname): try: - fileInfo = GetFileVersionInfo(fname, '\\') - version = "V%d.%d.%d" % (fileInfo['FileVersionMS'] / 65536, - fileInfo['FileVersionMS'] % 65536, - fileInfo['FileVersionLS'] / 65536) + fileInfo = GetFileVersionInfo(fname, "\\") + version = "V%d.%d.%d" % ( + fileInfo["FileVersionMS"] / 65536, + fileInfo["FileVersionMS"] % 65536, + fileInfo["FileVersionLS"] / 65536, + ) except Exception: print("Cannot get version number of", fname) return version @@ -19,7 +21,7 @@ def getPEVersion(fname): os.chdir(sys.path[0]) print("Current Directory:", os.getcwd()) -targetName = os.path.abspath(os.getcwd()).split('\\')[-2] +targetName = os.path.abspath(os.getcwd()).split("\\")[-2] print("Target Name", targetName) src32Dir = "" @@ -63,11 +65,6 @@ elif not os.path.exists(dst32Dir): print(dst32Dir, "doesn't exist, creating...") shutil.copytree("./32", dst32Dir) shutil.copyfile(src32Path, dst32Path) -configPath = dst32Dir + "/config" -if os.path.exists(configPath): - print(configPath, "exists, replacing...") - shutil.rmtree(configPath) -shutil.copytree("../config", configPath) compressDirList.append(dst32Dir) if os.path.exists(dst64Dir) and os.path.exists(dst64Path): @@ -77,19 +74,23 @@ elif not os.path.exists(dst64Dir): print(dst64Dir, "doesn't exist, creating...") shutil.copytree("./64", dst64Dir) shutil.copyfile(src64Path, dst64Path) -configPath = dst64Dir + "/config" -if os.path.exists(configPath): - print(configPath, "exists, replacing...") - shutil.rmtree(configPath) -shutil.copytree("../config", configPath) compressDirList.append(dst64Dir) # TODO: GUI+client clientList = [ - "official-v3.1.0", "rrg_other-v4.13441", "rrg_other-v4.14434", - "rrg_other-v4.14831" + "official-v3.1.0", + "rrg_other-v4.13441", + "rrg_other-v4.14434", + "rrg_other-v4.14831", + "rrg_other-v4.15864", ] +configList = [] +for config in os.listdir("../config"): + configPath = os.path.join("../config", config) + if os.path.isfile(configPath) and config.endswith(".json"): + configList.append(config) + def generateClient(clientName): global compressDirList @@ -105,12 +106,34 @@ def generateClient(clientName): shutil.copytree(clientSrcDir, clientDstDir) shutil.copytree(dst64Dir, clientDstGUIDir) if "official" in clientName: - shutil.copyfile("./client/GUIsettings_Official.ini", - clientDstGUIDir + "/GUIsettings.ini") + shutil.copyfile( + "./client/GUIsettings_Official.ini", clientDstGUIDir + "/GUIsettings.ini" + ) elif "rrg" in clientName: - shutil.copyfile("./client/GUIsettings_RRG.ini", - clientDstGUIDir + "/GUIsettings.ini") + shutil.copyfile( + "./client/GUIsettings_RRG.ini", clientDstGUIDir + "/GUIsettings.ini" + ) + # Use exactly matched configFile if possible + version = clientName[clientName.find("v") :] + for config in configList: + if version in config: + print("Find matched config file", config) + with open( + clientDstGUIDir + "/GUIsettings.ini", "r", encoding="utf-8" + ) as f: + data = f.read() + data = sub( + "configFile=:/config/.+\\.json", + "configFile=:/config/" + config, + data, + ) + with open( + clientDstGUIDir + "/GUIsettings.ini", "w", encoding="utf-8" + ) as f: + f.write(data) + compressDirList.append(clientDstDir) + return clientDstDir for cl in clientList: diff --git a/doc/CHANGELOG/CHANGELOG_zh_CN.md b/doc/CHANGELOG/CHANGELOG_zh_CN.md index f71b335..8e660a4 100644 --- a/doc/CHANGELOG/CHANGELOG_zh_CN.md +++ b/doc/CHANGELOG/CHANGELOG_zh_CN.md @@ -2,6 +2,17 @@ [English](../../CHANGELOG.md) +### V0.2.6 ++ 支持冰人版客户端 v4.15864 [#37](https://github.com/wh201906/Proxmark3GUI/issues/37) ++ 优化Mifare Classic卡写卡逻辑 ++ 修复lf config默认配置 ++ 添加客户端无法启动的提示 ++ 添加PM3硬件连接失败的提示 ++ 为PM3对应串口添加提示,并自动选中 ++ 修复原始指令框中有多余空行的问题 ++ 内嵌不同客户端的配置文件 ++ 去除从nested attack切换到staticnested attack的等待时间 + ### V0.2.5 + 修复 [#28](https://github.com/wh201906/Proxmark3GUI/issues/28) diff --git a/src/Proxmark3GUI.pro b/src/Proxmark3GUI.pro index 92374cc..761d1fa 100644 --- a/src/Proxmark3GUI.pro +++ b/src/Proxmark3GUI.pro @@ -59,7 +59,7 @@ qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -VERSION = 0.2.5 +VERSION = 0.2.6 QMAKE_TARGET_PRODUCT = "Proxmark3GUI" QMAKE_TARGET_DESCRIPTION = "Proxmark3GUI" QMAKE_TARGET_COMPANY = "wh201906"