mirror of
https://github.com/wh201906/Proxmark3GUI.git
synced 2026-06-30 23:34:27 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ff3a43a4a6 | |||
| 5a0f0d3e3e | |||
| d60f636881 |
@@ -0,0 +1,61 @@
|
|||||||
|
# Change Log
|
||||||
|
|
||||||
|
[中文](doc/CHANGELOG/CHANGELOG_zh_CN.md)
|
||||||
|
|
||||||
|
### V0.2.5
|
||||||
|
+ 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
|
||||||
|
|
||||||
|
### V0.2.2
|
||||||
|
+ Load command format from external json file
|
||||||
|
+ Fix bug [#20](https://github.com/wh201906/Proxmark3GUI/issues/20), [#21](https://github.com/wh201906/Proxmark3GUI/issues/21), [#22](https://github.com/wh201906/Proxmark3GUI/issues/22)
|
||||||
|
+ Support Iceman/RRG repo v4.13441
|
||||||
|
|
||||||
|
### V0.2.1
|
||||||
|
+ Optimize MIFARE Classic reading logic
|
||||||
|
+ Fix bug [#16](https://github.com/wh201906/Proxmark3GUI/issues/16)
|
||||||
|
+ Fix bug [#15](https://github.com/wh201906/Proxmark3GUI/issues/15) partially (the path can contain spaces now)
|
||||||
|
|
||||||
|
### V0.2
|
||||||
|
+ Use Dock widget for more flexible layout
|
||||||
|
+ Support basic LF commands
|
||||||
|
+ Fix a bug in RawCommand tab
|
||||||
|
|
||||||
|
### V0.1.4
|
||||||
|
+ Optimize performance
|
||||||
|
+ Optimize UI
|
||||||
|
+ Search available ports automatically
|
||||||
|
+ Add High-DPI support
|
||||||
|
+ Support configuring environment variables by script
|
||||||
|
(Useful when the client requires specific environment variables)
|
||||||
|
+ All functions are compatible with Iceman/RRG repo(tested on v4.9237)
|
||||||
|
+ Support specifying client working directory
|
||||||
|
+ Fix some bugs
|
||||||
|
|
||||||
|
### V0.1.3
|
||||||
|
+ Fix Trailer Decoder
|
||||||
|
+ Add feedback when writing selected blocks
|
||||||
|
|
||||||
|
### V0.1.2
|
||||||
|
+ Optimize read logic
|
||||||
|
+ Make UI Customizable
|
||||||
|
+ Save client path automatically
|
||||||
|
+ Add Trailer Decoder(Deprecated, plz use V0.1.3 or higher version)
|
||||||
|
+ Support read/write selected blocks
|
||||||
|
+ Support a few Iceman functions
|
||||||
|
+ Fix some bugs
|
||||||
|
|
||||||
|
### V0.1.1
|
||||||
|
+ Complete Mifare module(support simulate and sniff)
|
||||||
|
|
||||||
|
### V0.1
|
||||||
|
+ Able to deal with Mifare card and related files
|
||||||
|
|
||||||
|
### V0.0.1
|
||||||
|
+ a dumb version with a useless GUI and a serial choose box.
|
||||||
@@ -68,59 +68,5 @@ Great thanks to him.
|
|||||||
[2.Edit Mifare Classic data](doc/tutorial/Edit_Mifare_Classic_data/Edit_Mifare_Classic_data.md)(Proxmark3 hardware is not necessary)
|
[2.Edit Mifare Classic data](doc/tutorial/Edit_Mifare_Classic_data/Edit_Mifare_Classic_data.md)(Proxmark3 hardware is not necessary)
|
||||||
***
|
***
|
||||||
|
|
||||||
## Update Log:
|
## Change Log
|
||||||
|
[Change Log](CHANGELOG.md)
|
||||||
### 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
|
|
||||||
|
|
||||||
### V0.2.2
|
|
||||||
+ Load command format from external json file
|
|
||||||
+ Fix bug [#20](https://github.com/wh201906/Proxmark3GUI/issues/20), [#21](https://github.com/wh201906/Proxmark3GUI/issues/21), [#22](https://github.com/wh201906/Proxmark3GUI/issues/22)
|
|
||||||
+ Support Iceman/RRG repo v4.13441
|
|
||||||
|
|
||||||
### V0.2.1
|
|
||||||
+ Optimize MIFARE Classic reading logic
|
|
||||||
+ Fix bug [#16](https://github.com/wh201906/Proxmark3GUI/issues/16)
|
|
||||||
+ Fix bug [#15](https://github.com/wh201906/Proxmark3GUI/issues/15) partially (the path can contain spaces now)
|
|
||||||
|
|
||||||
### V0.2
|
|
||||||
+ Use Dock widget for more flexible layout
|
|
||||||
+ Support basic LF commands
|
|
||||||
+ Fix a bug in RawCommand tab
|
|
||||||
|
|
||||||
### V0.1.4
|
|
||||||
+ Optimize performance
|
|
||||||
+ Optimize UI
|
|
||||||
+ Search available ports automatically
|
|
||||||
+ Add High-DPI support
|
|
||||||
+ Support configuring environment variables by script
|
|
||||||
(Useful when the client requires specific environment variables)
|
|
||||||
+ All functions are compatible with Iceman/RRG repo(tested on v4.9237)
|
|
||||||
+ Support specifying client working directory
|
|
||||||
+ Fix some bugs
|
|
||||||
|
|
||||||
### V0.1.3
|
|
||||||
+ Fix Trailer Decoder
|
|
||||||
+ Add feedback when writing selected blocks
|
|
||||||
|
|
||||||
### V0.1.2
|
|
||||||
+ Optimize read logic
|
|
||||||
+ Make UI Customizable
|
|
||||||
+ Save client path automatically
|
|
||||||
+ Add Trailer Decoder(Deprecated, plz use V0.1.3 or higher version)
|
|
||||||
+ Support read/write selected blocks
|
|
||||||
+ Support a few Iceman functions
|
|
||||||
+ Fix some bugs
|
|
||||||
|
|
||||||
### V0.1.1
|
|
||||||
+ Complete Mifare module(support simulate and sniff)
|
|
||||||
|
|
||||||
### V0.1
|
|
||||||
+ Able to deal with Mifare card and related files
|
|
||||||
|
|
||||||
### V0.0.1
|
|
||||||
+ a dumb version with a useless GUI and a serial choose box.
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
/V*-*
|
||||||
|
/V*-*/
|
||||||
|
/32/
|
||||||
|
/64/
|
||||||
|
/client/
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Deploy helper
|
||||||
|
Just for generating Github release
|
||||||
|
Useless for general users
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
import os, sys, shutil
|
||||||
|
from win32api import GetFileVersionInfo
|
||||||
|
from json import load
|
||||||
|
from re import fullmatch, IGNORECASE
|
||||||
|
|
||||||
|
compressDirList = []
|
||||||
|
|
||||||
|
|
||||||
|
def getPEVersion(fname):
|
||||||
|
try:
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
os.chdir(sys.path[0])
|
||||||
|
print("Current Directory:", os.getcwd())
|
||||||
|
targetName = os.path.abspath(os.getcwd()).split('\\')[-2]
|
||||||
|
print("Target Name", targetName)
|
||||||
|
|
||||||
|
src32Dir = ""
|
||||||
|
src64Dir = ""
|
||||||
|
dirList = os.listdir("../")
|
||||||
|
|
||||||
|
for i in dirList:
|
||||||
|
if not os.path.isdir("../" + i):
|
||||||
|
continue
|
||||||
|
if not i.startswith("build"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if i.endswith("32_bit-Release"):
|
||||||
|
src32Dir = "../" + i
|
||||||
|
elif i.endswith("64_bit-Release"):
|
||||||
|
src64Dir = "../" + i
|
||||||
|
|
||||||
|
src32Path = src32Dir + "/release/" + targetName + ".exe"
|
||||||
|
src64Path = src64Dir + "/release/" + targetName + ".exe"
|
||||||
|
print("Target Files:")
|
||||||
|
print(src32Path)
|
||||||
|
print(src64Path)
|
||||||
|
|
||||||
|
ver32 = getPEVersion(src32Path)
|
||||||
|
ver64 = getPEVersion(src64Path)
|
||||||
|
print("Versions:")
|
||||||
|
print("win32:", ver32)
|
||||||
|
print("win64:", ver64)
|
||||||
|
if ver32 != ver64:
|
||||||
|
print("WARNING!")
|
||||||
|
print("Version names are not the same!")
|
||||||
|
dst32Dir = "./" + ver32 + "-win32"
|
||||||
|
dst64Dir = "./" + ver64 + "-win64"
|
||||||
|
dst32Path = dst32Dir + "/" + targetName + ".exe"
|
||||||
|
dst64Path = dst64Dir + "/" + targetName + ".exe"
|
||||||
|
|
||||||
|
if os.path.exists(dst32Dir) and os.path.exists(dst32Path):
|
||||||
|
print(dst32Path, "exists, replacing...")
|
||||||
|
os.remove(dst32Path)
|
||||||
|
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):
|
||||||
|
print(dst64Path, "exists, replacing...")
|
||||||
|
os.remove(dst64Path)
|
||||||
|
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"
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def generateClient(clientName):
|
||||||
|
global compressDirList
|
||||||
|
clientSrcDir = "./client/" + clientName
|
||||||
|
clientDstDir = "./" + ver64 + "-win64-" + clientName
|
||||||
|
clientDstGUIDir = clientDstDir + "/GUI"
|
||||||
|
|
||||||
|
if os.path.exists(clientDstDir) and os.path.exists(clientDstGUIDir):
|
||||||
|
print(clientDstGUIDir, "exists, replacing...")
|
||||||
|
shutil.rmtree(clientDstGUIDir)
|
||||||
|
elif not os.path.exists(clientDstDir):
|
||||||
|
print(clientDstDir, "doesn't exist, creating...")
|
||||||
|
shutil.copytree(clientSrcDir, clientDstDir)
|
||||||
|
shutil.copytree(dst64Dir, clientDstGUIDir)
|
||||||
|
if "official" in clientName:
|
||||||
|
shutil.copyfile("./client/GUIsettings_Official.ini",
|
||||||
|
clientDstGUIDir + "/GUIsettings.ini")
|
||||||
|
elif "rrg" in clientName:
|
||||||
|
shutil.copyfile("./client/GUIsettings_RRG.ini",
|
||||||
|
clientDstGUIDir + "/GUIsettings.ini")
|
||||||
|
compressDirList.append(clientDstDir)
|
||||||
|
|
||||||
|
|
||||||
|
for cl in clientList:
|
||||||
|
generateClient(cl)
|
||||||
|
|
||||||
|
use7z = input("Compress?(y/N)")
|
||||||
|
if fullmatch("yes|y", use7z, IGNORECASE):
|
||||||
|
print(compressDirList)
|
||||||
|
for it in compressDirList:
|
||||||
|
archivePath = it + ".7z"
|
||||||
|
|
||||||
|
if os.path.exists(archivePath):
|
||||||
|
print(archivePath, "exists, replacing...")
|
||||||
|
os.remove(archivePath)
|
||||||
|
os.system("7z a -t7z -mmt8 -mx9 " + archivePath + " " + it)
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# 更新日志
|
||||||
|
|
||||||
|
[English](../../CHANGELOG.md)
|
||||||
|
|
||||||
|
### V0.2.5
|
||||||
|
+ 修复 [#28](https://github.com/wh201906/Proxmark3GUI/issues/28)
|
||||||
|
|
||||||
|
### V0.2.4
|
||||||
|
+ 复制EM410x卡(一种常见的低频ID卡)
|
||||||
|
|
||||||
|
### V0.2.3
|
||||||
|
+ 修复 [#27](https://github.com/wh201906/Proxmark3GUI/issues/27)
|
||||||
|
+ 尝试支持中文启动路径
|
||||||
|
|
||||||
|
### V0.2.2
|
||||||
|
+ 从外部文件加载客户端命令格式
|
||||||
|
+ 修复 [#20](https://github.com/wh201906/Proxmark3GUI/issues/20), [#21](https://github.com/wh201906/Proxmark3GUI/issues/21), [#22](https://github.com/wh201906/Proxmark3GUI/issues/22)
|
||||||
|
+ 兼容冰人版客户端 v4.13441
|
||||||
|
|
||||||
|
### V0.2.1
|
||||||
|
+ 优化MIFARE Classic读卡逻辑
|
||||||
|
+ 修复 [#16](https://github.com/wh201906/Proxmark3GUI/issues/16) (配合新版RRG固件时无法读取扇区数据)
|
||||||
|
+ 修复 [#15](https://github.com/wh201906/Proxmark3GUI/issues/15) (路径中支持空格)
|
||||||
|
|
||||||
|
### V0.2
|
||||||
|
+ 使用浮动窗口,界面配置更加灵活
|
||||||
|
+ 支持部分低频命令
|
||||||
|
+ 修复原始命令选项卡中的一个Bug
|
||||||
|
|
||||||
|
### V0.1.4
|
||||||
|
+ 优化性能
|
||||||
|
+ 优化用户界面
|
||||||
|
+ 自动搜索可用端口
|
||||||
|
+ 支持高分屏
|
||||||
|
+ 可通过外部脚本配置环境变量
|
||||||
|
(在客户端需要配置环境变量时很有用)
|
||||||
|
+ 全功能兼容冰人版(在v4.9237上测试通过)
|
||||||
|
+ 支持指定客户端工作路径
|
||||||
|
+ 修复部分bug
|
||||||
|
|
||||||
|
### V0.1.3
|
||||||
|
+ 修复访问控制位解码器
|
||||||
|
+ 写多个块时显示写入结果
|
||||||
|
|
||||||
|
### V0.1.2
|
||||||
|
+ 优化读卡逻辑
|
||||||
|
+ UI自定义
|
||||||
|
+ 自动保存客户端路径
|
||||||
|
+ 添加访问控制位解码器(也可用于自己构造访问控制位)(有bug,请使用V0.1.3或更高版本)
|
||||||
|
+ 支持仅读写选中块
|
||||||
|
+ 支持部分冰人功能
|
||||||
|
+ 修复部分bug
|
||||||
|
|
||||||
|
### V0.1.1
|
||||||
|
+ 完成整个Mifare模块(支持模拟卡和嗅探功能)
|
||||||
|
|
||||||
|
### V0.1
|
||||||
|
+ 支持处理Mifare卡片及相关数据文件
|
||||||
|
|
||||||
|
### V0.0.1
|
||||||
|
+ 一个带串口选择框的实验版本
|
||||||
@@ -65,59 +65,6 @@ release页面中有含客户端的GUI。这个GUI也可以搭配你自己的客
|
|||||||
[1.快速上手](../tutorial/Quickstart/quickstart_zh_CN.md)
|
[1.快速上手](../tutorial/Quickstart/quickstart_zh_CN.md)
|
||||||
[2.编辑Mifare(IC)卡数据](../tutorial/Edit_Mifare_Classic_data/Edit_Mifare_Classic_data_zh_CN.md)(无需PM3硬件)
|
[2.编辑Mifare(IC)卡数据](../tutorial/Edit_Mifare_Classic_data/Edit_Mifare_Classic_data_zh_CN.md)(无需PM3硬件)
|
||||||
***
|
***
|
||||||
## 更新日志:
|
|
||||||
|
|
||||||
### V0.2.4
|
## 更新日志
|
||||||
+ 复制EM410x卡(一种常见的低频ID卡)
|
[更新日志](../CHANGELOG/CHANGELOG_zh_CN.md)
|
||||||
|
|
||||||
### V0.2.3
|
|
||||||
+ 修复 [#27](https://github.com/wh201906/Proxmark3GUI/issues/27)
|
|
||||||
+ 尝试支持中文启动路径
|
|
||||||
|
|
||||||
### V0.2.2
|
|
||||||
+ 从外部文件加载客户端命令格式
|
|
||||||
+ 修复 [#20](https://github.com/wh201906/Proxmark3GUI/issues/20), [#21](https://github.com/wh201906/Proxmark3GUI/issues/21), [#22](https://github.com/wh201906/Proxmark3GUI/issues/22)
|
|
||||||
+ 兼容冰人版客户端 v4.13441
|
|
||||||
|
|
||||||
### V0.2.1
|
|
||||||
+ 优化MIFARE Classic读卡逻辑
|
|
||||||
+ 修复 [#16](https://github.com/wh201906/Proxmark3GUI/issues/16) (配合新版RRG固件时无法读取扇区数据)
|
|
||||||
+ 修复 [#15](https://github.com/wh201906/Proxmark3GUI/issues/15) (路径中支持空格)
|
|
||||||
|
|
||||||
### V0.2
|
|
||||||
+ 使用浮动窗口,界面配置更加灵活
|
|
||||||
+ 支持部分低频命令
|
|
||||||
+ 修复原始命令选项卡中的一个Bug
|
|
||||||
|
|
||||||
### V0.1.4
|
|
||||||
+ 优化性能
|
|
||||||
+ 优化用户界面
|
|
||||||
+ 自动搜索可用端口
|
|
||||||
+ 支持高分屏
|
|
||||||
+ 可通过外部脚本配置环境变量
|
|
||||||
(在客户端需要配置环境变量时很有用)
|
|
||||||
+ 全功能兼容冰人版(在v4.9237上测试通过)
|
|
||||||
+ 支持指定客户端工作路径
|
|
||||||
+ 修复部分bug
|
|
||||||
|
|
||||||
### V0.1.3
|
|
||||||
+ 修复访问控制位解码器
|
|
||||||
+ 写多个块时显示写入结果
|
|
||||||
|
|
||||||
### V0.1.2
|
|
||||||
+ 优化读卡逻辑
|
|
||||||
+ UI自定义
|
|
||||||
+ 自动保存客户端路径
|
|
||||||
+ 添加访问控制位解码器(也可用于自己构造访问控制位)(有bug,请使用V0.1.3或更高版本)
|
|
||||||
+ 支持仅读写选中块
|
|
||||||
+ 支持部分冰人功能
|
|
||||||
+ 修复部分bug
|
|
||||||
|
|
||||||
### V0.1.1
|
|
||||||
+ 完成整个Mifare模块(支持模拟卡和嗅探功能)
|
|
||||||
|
|
||||||
### V0.1
|
|
||||||
+ 支持处理Mifare卡片及相关数据文件
|
|
||||||
|
|
||||||
### V0.0.1
|
|
||||||
+ 一个带串口选择框的实验版本
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ qnx: target.path = /tmp/$${TARGET}/bin
|
|||||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
VERSION = 0.2.4
|
VERSION = 0.2.5
|
||||||
QMAKE_TARGET_PRODUCT = "Proxmark3GUI"
|
QMAKE_TARGET_PRODUCT = "Proxmark3GUI"
|
||||||
QMAKE_TARGET_DESCRIPTION = "Proxmark3GUI"
|
QMAKE_TARGET_DESCRIPTION = "Proxmark3GUI"
|
||||||
QMAKE_TARGET_COMPANY = "wh201906"
|
QMAKE_TARGET_COMPANY = "wh201906"
|
||||||
|
|||||||
@@ -715,7 +715,7 @@ void MainWindow::on_MF_File_clearButton_clicked()
|
|||||||
mifare->data_clearKey();
|
mifare->data_clearKey();
|
||||||
mifare->data_syncWithKeyWidget();
|
mifare->data_syncWithKeyWidget();
|
||||||
}
|
}
|
||||||
else if(ui->MF_File_keyButton->isChecked())
|
else if(ui->MF_File_dataButton->isChecked())
|
||||||
{
|
{
|
||||||
mifare->data_clearData();
|
mifare->data_clearData();
|
||||||
mifare->data_syncWithDataWidget();
|
mifare->data_syncWithDataWidget();
|
||||||
|
|||||||
Reference in New Issue
Block a user