Compare commits
No commits in common. "dev" and "v1.7.0" have entirely different histories.
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -197,7 +196,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
public Sector(byte[] uid)
|
public Sector(byte[] uid)
|
||||||
{
|
{
|
||||||
if (uid.Length != 4) { throw new Exception(Resources.不恰当的4字节UID长度); }
|
if (uid.Length != 4) { throw new Exception("不恰当的4字节UID长度"); }
|
||||||
this._isSector0 = true;
|
this._isSector0 = true;
|
||||||
this.Wipe();
|
this.Wipe();
|
||||||
byte bcc = (byte)(uid[0] ^ uid[1] ^ uid[2] ^ uid[3]);
|
byte bcc = (byte)(uid[0] ^ uid[1] ^ uid[2] ^ uid[3]);
|
||||||
@ -241,7 +240,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
public string Info(int sec)
|
public string Info(int sec)
|
||||||
{
|
{
|
||||||
string info = Resources.扇区 + sec.ToString();
|
string info = "扇区" + sec.ToString();
|
||||||
if (Enumerable.SequenceEqual(
|
if (Enumerable.SequenceEqual(
|
||||||
new byte[16] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
new byte[16] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
||||||
this._sector[0]) &&
|
this._sector[0]) &&
|
||||||
@ -252,15 +251,15 @@ namespace MifareOneTool
|
|||||||
new byte[16] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
new byte[16] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
|
||||||
this._sector[2]))
|
this._sector[2]))
|
||||||
{
|
{
|
||||||
info += Resources._空扇区;
|
info += " 空扇区";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
info += Resources._有数据;
|
info += " 有数据";
|
||||||
}
|
}
|
||||||
if (this.Verify() != 0x00)
|
if (this.Verify() != 0x00)
|
||||||
{
|
{
|
||||||
info += Resources._有错误;
|
info += " 有错误";
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
@ -334,7 +333,7 @@ namespace MifareOneTool
|
|||||||
public S50(byte[] uid)
|
public S50(byte[] uid)
|
||||||
{
|
{
|
||||||
_sectors.Capacity = 16;
|
_sectors.Capacity = 16;
|
||||||
if (uid.Length != 4) { throw new Exception(Resources.不恰当的4字节UID长度); }
|
if (uid.Length != 4) { throw new Exception("不恰当的4字节UID长度"); }
|
||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
if (i == 0) { _sectors.Add(new Sector(uid)); }
|
if (i == 0) { _sectors.Add(new Sector(uid)); }
|
||||||
@ -366,17 +365,17 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
public void LoadFromMfd(string file)
|
public void LoadFromMfd(string file)
|
||||||
{
|
{
|
||||||
if (!File.Exists(file)) { throw new IOException(Resources.加载的文件不存在); }
|
if (!File.Exists(file)) { throw new IOException("加载的文件不存在。"); }
|
||||||
if (new FileInfo(file).Length != 1024) { throw new IOException(Resources.加载的S50卡文件大小异常); }
|
if (new FileInfo(file).Length != 1024) { throw new IOException("加载的S50卡文件大小异常。"); }
|
||||||
byte[] loadByte = File.ReadAllBytes(file);
|
byte[] loadByte = File.ReadAllBytes(file);
|
||||||
this.Wipe();
|
this.Wipe();
|
||||||
this.SectorsRaw = (byte[])loadByte;
|
this.SectorsRaw = (byte[])loadByte;
|
||||||
}
|
}
|
||||||
public void LoadFromMctTxt(string file)
|
public void LoadFromMctTxt(string file)
|
||||||
{
|
{
|
||||||
if (!File.Exists(file)) { throw new IOException(Resources.加载的文件不存在); }
|
if (!File.Exists(file)) { throw new IOException("加载的文件不存在。"); }
|
||||||
long fileLength=new FileInfo(file).Length;
|
long fileLength=new FileInfo(file).Length;
|
||||||
if (fileLength < 2200 || fileLength > 2400) { throw new IOException(Resources.加载的S50卡文件大小异常); }
|
if (fileLength < 2200 || fileLength > 2400) { throw new IOException("加载的S50卡文件大小异常。"); }
|
||||||
List<string> lines = new List<string>(File.ReadAllLines(file));
|
List<string> lines = new List<string>(File.ReadAllLines(file));
|
||||||
List<string> invaild = new List<string>();
|
List<string> invaild = new List<string>();
|
||||||
foreach (string line in lines)
|
foreach (string line in lines)
|
||||||
@ -392,7 +391,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
if (lines.Count != 64)
|
if (lines.Count != 64)
|
||||||
{
|
{
|
||||||
throw new Exception(Resources.文件内不是含有64个块数据_可能不完整或不兼容);
|
throw new Exception("文件内不是含有64个块数据,可能不完整或不兼容。");
|
||||||
}
|
}
|
||||||
this.Wipe();
|
this.Wipe();
|
||||||
for (int i = 0; i < lines.Count; i++)
|
for (int i = 0; i < lines.Count; i++)
|
||||||
@ -410,7 +409,7 @@ namespace MifareOneTool
|
|||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
sb.AppendLine(Resources._Sector + i.ToString());
|
sb.AppendLine("+Sector: " + i.ToString());
|
||||||
for (int j = 0; j < 4; j++)
|
for (int j = 0; j < 4; j++)
|
||||||
{
|
{
|
||||||
sb.AppendLine(Utils.Hex2Str(this._sectors[i].Block[j]));
|
sb.AppendLine(Utils.Hex2Str(this._sectors[i].Block[j]));
|
||||||
|
|||||||
1996
MifareOneTool/Form1.Designer.cs
generated
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -14,7 +13,6 @@ using System.Text.RegularExpressions;
|
|||||||
using Microsoft.VisualBasic;
|
using Microsoft.VisualBasic;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Globalization;
|
|
||||||
|
|
||||||
namespace MifareOneTool
|
namespace MifareOneTool
|
||||||
{
|
{
|
||||||
@ -22,8 +20,6 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
public Form1()
|
public Form1()
|
||||||
{
|
{
|
||||||
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(Properties.Settings.Default.Language);
|
|
||||||
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(Properties.Settings.Default.Language);
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,8 +29,8 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonListDev_Click(object sender, EventArgs e)
|
private void buttonListDev_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
||||||
Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
if (Properties.Settings.Default.NewScan)
|
if (Properties.Settings.Default.NewScan)
|
||||||
{ File.Delete("libnfc.conf"); }
|
{ File.Delete("libnfc.conf"); }
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
@ -51,7 +47,7 @@ namespace MifareOneTool
|
|||||||
cfg += "device.name = \"NFC-Device\"\n";
|
cfg += "device.name = \"NFC-Device\"\n";
|
||||||
cfg += "device.connstring = \"" + devstr + "\"";
|
cfg += "device.connstring = \"" + devstr + "\"";
|
||||||
File.WriteAllText("libnfc.conf", cfg);
|
File.WriteAllText("libnfc.conf", cfg);
|
||||||
curDevice.Text = Resources.设备串口 + devstr.Replace("pn532_uart:", "").Replace(":115200", "");
|
curDevice.Text = "设备串口:" + devstr.Replace("pn532_uart:", "").Replace(":115200", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
void default_rpt(object sender, ProgressChangedEventArgs e)
|
void default_rpt(object sender, ProgressChangedEventArgs e)
|
||||||
@ -60,7 +56,7 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
logAppend((string)e.UserState);
|
logAppend((string)e.UserState);
|
||||||
logAppend("");
|
logAppend("");
|
||||||
Text = Resources.MifareOne_Tool_运行完毕;
|
Text = "MifareOne Tool - 运行完毕";
|
||||||
}
|
}
|
||||||
else if (e.ProgressPercentage == 101)
|
else if (e.ProgressPercentage == 101)
|
||||||
{
|
{
|
||||||
@ -76,12 +72,12 @@ namespace MifareOneTool
|
|||||||
File.Delete(filename);
|
File.Delete(filename);
|
||||||
}
|
}
|
||||||
File.Move(omfd, filename);
|
File.Move(omfd, filename);
|
||||||
logAppend(Resources._已自动保存 + filename + "##");
|
logAppend("##已自动保存-" + filename + "##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
File.Delete(omfd);
|
File.Delete(omfd);
|
||||||
logAppend(Resources._缓存文件异常);
|
logAppend("##缓存文件异常##");
|
||||||
}
|
}
|
||||||
lastuid = "";
|
lastuid = "";
|
||||||
}
|
}
|
||||||
@ -90,9 +86,9 @@ namespace MifareOneTool
|
|||||||
SaveFileDialog ofd = new SaveFileDialog();
|
SaveFileDialog ofd = new SaveFileDialog();
|
||||||
ofd.AddExtension = true;
|
ofd.AddExtension = true;
|
||||||
//ofd.DefaultExt = ".mfd";
|
//ofd.DefaultExt = ".mfd";
|
||||||
ofd.Title = Resources.请选择MFD文件保存位置及文件名;
|
ofd.Title = "请选择MFD文件保存位置及文件名";
|
||||||
ofd.OverwritePrompt = true;
|
ofd.OverwritePrompt = true;
|
||||||
ofd.Filter = Resources.DUMP文件_dump_MFD文件_mfd;
|
ofd.Filter = "DUMP文件|*.dump|MFD文件|*.mfd";
|
||||||
if (File.Exists(omfd) && new FileInfo(omfd).Length > 1)
|
if (File.Exists(omfd) && new FileInfo(omfd).Length > 1)
|
||||||
{
|
{
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
@ -102,36 +98,36 @@ namespace MifareOneTool
|
|||||||
File.Delete(ofd.FileName);
|
File.Delete(ofd.FileName);
|
||||||
}
|
}
|
||||||
File.Move(omfd, ofd.FileName);
|
File.Move(omfd, ofd.FileName);
|
||||||
logAppend(Resources._已保存 + ofd.FileName + "##");
|
logAppend("##已保存-" + ofd.FileName + "##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
File.Delete(omfd);
|
File.Delete(omfd);
|
||||||
logAppend(Resources._未保存);
|
logAppend("##未保存##");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
File.Delete(omfd);
|
File.Delete(omfd);
|
||||||
logAppend(Resources._缓存文件异常);
|
logAppend("##缓存文件异常##");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
omfd = "";
|
omfd = "";
|
||||||
logAppend("");
|
logAppend("");
|
||||||
Text = Resources.MifareOne_Tool_运行完毕;
|
Text = "MifareOne Tool - 运行完毕";
|
||||||
}
|
}
|
||||||
else if (e.ProgressPercentage == 102)
|
else if (e.ProgressPercentage == 102)
|
||||||
{
|
{
|
||||||
logAppend((string)e.UserState);
|
logAppend((string)e.UserState);
|
||||||
logAppend(Resources._Nonce收集完毕);
|
logAppend("##Nonce收集完毕##");
|
||||||
logAppend(Resources.您可以上传到云计算服务节点进行计算);
|
logAppend("您可以上传到云计算服务节点进行计算。");
|
||||||
logAppend("");
|
logAppend("");
|
||||||
|
|
||||||
Text = Resources.MifareOne_Tool_运行完毕;
|
Text = "MifareOne Tool - 运行完毕";
|
||||||
}
|
}
|
||||||
else if (e.ProgressPercentage == 103)
|
else if (e.ProgressPercentage == 103)
|
||||||
{
|
{
|
||||||
logAppend(Resources.识别了以下设备);
|
logAppend("识别了以下设备:");
|
||||||
List<string> myReaders = (List<string>)(e.UserState);
|
List<string> myReaders = (List<string>)(e.UserState);
|
||||||
foreach (string reader in myReaders)
|
foreach (string reader in myReaders)
|
||||||
{
|
{
|
||||||
@ -139,7 +135,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
if (myReaders.Count > 0)
|
if (myReaders.Count > 0)
|
||||||
{
|
{
|
||||||
logAppend(Resources.将自动选择首个设备 + myReaders.First());
|
logAppend("将自动选择首个设备:" + myReaders.First());
|
||||||
writeConfig(myReaders.First());
|
writeConfig(myReaders.First());
|
||||||
SetDeviceCombo.Items.Clear();
|
SetDeviceCombo.Items.Clear();
|
||||||
SetDeviceCombo.Items.AddRange(myReaders.ToArray());
|
SetDeviceCombo.Items.AddRange(myReaders.ToArray());
|
||||||
@ -147,8 +143,8 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logAppend(Resources.没有发现任何有效的NFC设备);
|
logAppend("没有发现任何有效的NFC设备。");
|
||||||
logAppend(Resources.请检查接线是否正确_驱动是否正常安装_设备电源是否已经打开_);
|
logAppend("请检查接线是否正确/驱动是否正常安装/设备电源是否已经打开(对于具有电源开关的型号)。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -175,7 +171,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行检测设备); running = true;
|
b.ReportProgress(0, "开始执行检测设备……"); running = true;
|
||||||
List<string> myReader = new List<string>();
|
List<string> myReader = new List<string>();
|
||||||
process.OutputDataReceived += (s, _e) =>
|
process.OutputDataReceived += (s, _e) =>
|
||||||
{
|
{
|
||||||
@ -200,13 +196,13 @@ namespace MifareOneTool
|
|||||||
lprocess = false;
|
lprocess = false;
|
||||||
running = false;
|
running = false;
|
||||||
b.ReportProgress(103, myReader);
|
b.ReportProgress(103, myReader);
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Form1_Load(object sender, EventArgs e)
|
private void Form1_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
logAppend(Resources._软件版本 + Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
logAppend("#软件版本 " + Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
||||||
localVersionLabel.Text = Resources.本地版本 + Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
localVersionLabel.Text = "本地版本 " + Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||||
Directory.CreateDirectory("auto_keys");
|
Directory.CreateDirectory("auto_keys");
|
||||||
checkBoxAutoABN.Checked = Properties.Settings.Default.AutoABN;
|
checkBoxAutoABN.Checked = Properties.Settings.Default.AutoABN;
|
||||||
checkBoxWriteProtect.Checked = Properties.Settings.Default.WriteCheck;
|
checkBoxWriteProtect.Checked = Properties.Settings.Default.WriteCheck;
|
||||||
@ -232,7 +228,7 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
if (line.StartsWith("device.connstring = \"pn532_uart:"))
|
if (line.StartsWith("device.connstring = \"pn532_uart:"))
|
||||||
{
|
{
|
||||||
curDevice.Text = Resources.设备串口 + line.Replace("device.connstring = \"pn532_uart:", "").Replace(":115200\"", "");
|
curDevice.Text = "设备串口:" + line.Replace("device.connstring = \"pn532_uart:", "").Replace(":115200\"", "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,7 +237,7 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonScanCard_Click(object sender, EventArgs e)
|
private void buttonScanCard_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
bgw.DoWork += new DoWorkEventHandler(list_tag);
|
bgw.DoWork += new DoWorkEventHandler(list_tag);
|
||||||
bgw.WorkerReportsProgress = true;
|
bgw.WorkerReportsProgress = true;
|
||||||
@ -260,7 +256,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0,Resources.开始执行扫描卡片);
|
b.ReportProgress(0,"开始执行扫描卡片……");
|
||||||
running = true;
|
running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
@ -269,7 +265,7 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
string omfd = "";
|
string omfd = "";
|
||||||
@ -304,14 +300,14 @@ namespace MifareOneTool
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (uid.Length < 8) { return; }
|
if (uid.Length < 8) { return; }
|
||||||
logAppend(Resources.正在检索是否存在key_mfd);
|
logAppend("正在检索是否存在key.mfd…");
|
||||||
List<string> files = Directory.EnumerateFiles("auto_keys", "*.mfd").ToList<string>();
|
List<string> files = Directory.EnumerateFiles("auto_keys", "*.mfd").ToList<string>();
|
||||||
files.Reverse();//保证拿到最新的
|
files.Reverse();//保证拿到最新的
|
||||||
for (int i = 0; i < files.Count; i++)
|
for (int i = 0; i < files.Count; i++)
|
||||||
{
|
{
|
||||||
if (files[i].StartsWith("auto_keys\\" + uid))
|
if (files[i].StartsWith("auto_keys\\" + uid))
|
||||||
{
|
{
|
||||||
logAppend(Resources.已找到_K + files[i]);
|
logAppend("已找到!K=" + files[i]);
|
||||||
keymfd = files[i];
|
keymfd = files[i];
|
||||||
buttonSelectKey.Text = "K=" + files[i];
|
buttonSelectKey.Text = "K=" + files[i];
|
||||||
return;
|
return;
|
||||||
@ -324,7 +320,7 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonMfRead_Click(object sender, EventArgs e)
|
private void buttonMfRead_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "MfRead.tmp";
|
string rmfd = "MfRead.tmp";
|
||||||
string kt = "A";
|
string kt = "A";
|
||||||
string nn = "";
|
string nn = "";
|
||||||
@ -341,11 +337,11 @@ namespace MifareOneTool
|
|||||||
if (checkBoxAutoABN.Checked && keymfd != "")
|
if (checkBoxAutoABN.Checked && keymfd != "")
|
||||||
{
|
{
|
||||||
kt = "C";
|
kt = "C";
|
||||||
logAppend(Resources.正在使用智能KeyABN);
|
logAppend("正在使用智能KeyABN…");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (MessageBox.Show(Resources.使用KeyA_是_或KeyB_否_还是不使用_用于全新白卡_, "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
|
switch (MessageBox.Show("使用KeyA(是)或KeyB(否),还是不使用(用于全新白卡)(取消)?", "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
|
||||||
{
|
{
|
||||||
case DialogResult.No:
|
case DialogResult.No:
|
||||||
kt = "B";
|
kt = "B";
|
||||||
@ -382,7 +378,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行读取卡片); running = true;
|
b.ReportProgress(0, "开始执行读取卡片……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -392,11 +388,11 @@ namespace MifareOneTool
|
|||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == 0)
|
if (process.ExitCode == 0)
|
||||||
{
|
{
|
||||||
b.ReportProgress(101, Resources._运行完毕);
|
b.ReportProgress(101, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
File.Delete(args[0]);
|
File.Delete(args[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -414,8 +410,8 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_DUMP文件_dump;
|
ofd.Filter = "MFD文件|*.mfd|DUMP文件|*.dump";
|
||||||
ofd.Title = Resources.请选择一个包含目标卡密钥的MFD文件_通常是已经破解出的该卡;
|
ofd.Title = "请选择一个包含目标卡密钥的MFD文件(通常是已经破解出的该卡的MFD文件)";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -425,7 +421,7 @@ namespace MifareOneTool
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
keymfd = "";
|
keymfd = "";
|
||||||
buttonSelectKey.Text = Resources.选择key_mfd;
|
buttonSelectKey.Text = "选择key.mfd";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,7 +436,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ioe.Message, Resources.打开出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (card.Verify()[16] == 0x00)
|
if (card.Verify()[16] == 0x00)
|
||||||
@ -455,12 +451,12 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonMfWrite_Click(object sender, EventArgs e)
|
private void buttonMfWrite_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "";
|
string rmfd = "";
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_dump;
|
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
||||||
ofd.Title = Resources.请选择需要写入的MFD文件;
|
ofd.Title = "请选择需要写入的MFD文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -470,17 +466,17 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!writecheck(rmfd)) { MessageBox.Show(Resources.将要写入的文件存在错误_请用高级模式中的Hex工具打开查看, Resources.错误, MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
|
if (!writecheck(rmfd)) { MessageBox.Show("将要写入的文件存在错误,请用高级模式中的Hex工具打开查看。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
|
||||||
string kt = "A";
|
string kt = "A";
|
||||||
string nn = "";
|
string nn = "";
|
||||||
if (checkBoxAutoABN.Checked && keymfd != "")
|
if (checkBoxAutoABN.Checked && keymfd != "")
|
||||||
{
|
{
|
||||||
kt = "C";
|
kt = "C";
|
||||||
logAppend(Resources.正在使用智能KeyABN);
|
logAppend("正在使用智能KeyABN…");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (MessageBox.Show(Resources.使用KeyA_是_或KeyB_否_还是不使用_用于全新白卡_, Resources.KeyA_B_N, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
|
switch (MessageBox.Show("使用KeyA(是)或KeyB(否),还是不使用(用于全新白卡)(取消)?", "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
|
||||||
{
|
{
|
||||||
case DialogResult.No:
|
case DialogResult.No:
|
||||||
kt = "B";
|
kt = "B";
|
||||||
@ -515,7 +511,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行写入M1卡片); running = true;
|
b.ReportProgress(0, "开始执行写入M1卡片……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -523,17 +519,17 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonMfoc_Click(object sender, EventArgs e)
|
private void buttonMfoc_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "Mfoc.tmp";
|
string rmfd = "Mfoc.tmp";
|
||||||
string key = "";
|
string key = "";
|
||||||
if (Control.ModifierKeys == Keys.Control)
|
if (Control.ModifierKeys == Keys.Control)
|
||||||
{
|
{
|
||||||
string[] ks = Interaction.InputBox(Resources.请输入已知的Key_以英文半角逗号分隔, Resources.请输入已知Key, Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(',');
|
string[] ks = Interaction.InputBox("请输入已知的Key,以英文半角逗号分隔。", "请输入已知Key", Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(',');
|
||||||
if (ks.Length > 0)
|
if (ks.Length > 0)
|
||||||
{
|
{
|
||||||
Properties.Settings.Default.LastTryKey = string.Join(",", ks);
|
Properties.Settings.Default.LastTryKey = string.Join(",", ks);
|
||||||
@ -572,7 +568,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行MFOC解密); running = true;
|
b.ReportProgress(0, "开始执行MFOC解密……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -582,18 +578,18 @@ namespace MifareOneTool
|
|||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == 0)
|
if (process.ExitCode == 0)
|
||||||
{
|
{
|
||||||
b.ReportProgress(101, Resources._运行完毕);
|
b.ReportProgress(101, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
File.Delete(args[0]);
|
File.Delete(args[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonUidReset_Click(object sender, EventArgs e)
|
private void buttonUidReset_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
bgw.DoWork += new DoWorkEventHandler(reset_uid);
|
bgw.DoWork += new DoWorkEventHandler(reset_uid);
|
||||||
bgw.WorkerReportsProgress = true;
|
bgw.WorkerReportsProgress = true;
|
||||||
@ -627,7 +623,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行重置UID卡片卡号); running = true;
|
b.ReportProgress(0, "开始执行重置UID卡片卡号……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -635,13 +631,13 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonUidFormat_Click(object sender, EventArgs e)
|
private void buttonUidFormat_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
if (MessageBox.Show(Resources.该操作将会清空UID卡内全部数据_清空后不可恢复_请确认是否, Resources.危险操作警告, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
|
if (MessageBox.Show("该操作将会清空UID卡内全部数据!!!\n清空后不可恢复!请确认是否要继续操作?", "危险操作警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
|
||||||
{ return; }
|
{ return; }
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
bgw.DoWork += new DoWorkEventHandler(format_uid);
|
bgw.DoWork += new DoWorkEventHandler(format_uid);
|
||||||
@ -665,7 +661,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行UID卡片全格); running = true;
|
b.ReportProgress(0, "开始执行UID卡片全格……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -673,12 +669,12 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonBmfRead_Click(object sender, EventArgs e)
|
private void buttonBmfRead_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "BmfRead.tmp";
|
string rmfd = "BmfRead.tmp";
|
||||||
if (checkBoxAutoSave.Checked)
|
if (checkBoxAutoSave.Checked)
|
||||||
{
|
{
|
||||||
@ -705,7 +701,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行UID卡片读取); running = true;
|
b.ReportProgress(0, "开始执行UID卡片读取……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -715,23 +711,23 @@ namespace MifareOneTool
|
|||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == 0)
|
if (process.ExitCode == 0)
|
||||||
{
|
{
|
||||||
b.ReportProgress(101, Resources._运行完毕);
|
b.ReportProgress(101, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
File.Delete(args[0]);
|
File.Delete(args[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonBmfWrite_Click(object sender, EventArgs e)
|
private void buttonBmfWrite_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "";
|
string rmfd = "";
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
||||||
ofd.Title = Resources.请选择需要写入的MFD文件;
|
ofd.Title = "请选择需要写入的MFD文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -765,7 +761,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行UID卡片写入); running = true;
|
b.ReportProgress(0, "开始执行UID卡片写入……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -773,7 +769,7 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonConClr_Click(object sender, EventArgs e)
|
private void buttonConClr_Click(object sender, EventArgs e)
|
||||||
@ -785,22 +781,22 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
string logtext = richTextBox1.Text;
|
string logtext = richTextBox1.Text;
|
||||||
File.WriteAllText("m1t.log", logtext, Encoding.UTF8);
|
File.WriteAllText("m1t.log", logtext, Encoding.UTF8);
|
||||||
MessageBox.Show(Resources.终端内容已保存至m1t_log文件, Resources.Information, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show("终端内容已保存至m1t.log文件", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void buttonUidWrite_Click(object sender, EventArgs e)
|
private void buttonUidWrite_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
byte[] buid = new byte[4];
|
byte[] buid = new byte[4];
|
||||||
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
|
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
|
||||||
rng.GetNonZeroBytes(buid);
|
rng.GetNonZeroBytes(buid);
|
||||||
string uid = Interaction.InputBox(Resources.请输入需要写入的UID卡号_共8位十六进制数_如E44A3B, Resources.请输入UID号, hex(buid), -1, -1).Trim();
|
string uid = Interaction.InputBox("请输入需要写入的UID卡号,共8位十六进制数,如E44A3BF1。", "请输入UID号", hex(buid), -1, -1).Trim();
|
||||||
string pat = "[0-9A-Fa-f]{8}";
|
string pat = "[0-9A-Fa-f]{8}";
|
||||||
if (!Regex.IsMatch(uid, pat))
|
if (!Regex.IsMatch(uid, pat))
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.输入的UID号不合法, "InputError", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show("输入的UID号不合法", "InputError", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
@ -822,7 +818,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行UID卡片设定卡号); running = true;
|
b.ReportProgress(0, "开始执行UID卡片设定卡号……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -830,13 +826,13 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonMfcuk_Click(object sender, EventArgs e)
|
private void buttonMfcuk_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
||||||
Text = Resources.MifareOne_Tool_运行中;
|
Text = "MifareOne Tool - 运行中";
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
bgw.DoWork += new DoWorkEventHandler(Mfcuk);
|
bgw.DoWork += new DoWorkEventHandler(Mfcuk);
|
||||||
bgw.WorkerReportsProgress = true;
|
bgw.WorkerReportsProgress = true;
|
||||||
@ -846,29 +842,29 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
void Mfcuk(object sender, DoWorkEventArgs e)
|
void Mfcuk(object sender, DoWorkEventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
||||||
ProcessStartInfo psi = new ProcessStartInfo("cmd");
|
ProcessStartInfo psi = new ProcessStartInfo("cmd");
|
||||||
psi.Arguments = "/k mfcuk.exe -v 3 -C -R -1 -s 250 -S 250";
|
psi.Arguments = "/k mfcuk.exe -v 3 -C -R -1 -s 250 -S 250";
|
||||||
psi.WorkingDirectory = "nfc-bin";
|
psi.WorkingDirectory = "nfc-bin";
|
||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行全加密卡片爆破);
|
b.ReportProgress(0, "开始执行全加密卡片爆破……");
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cuidKeyOver = false;
|
bool cuidKeyOver = false;
|
||||||
|
|
||||||
private void buttonCmfWrite_Click(object sender, EventArgs e)
|
private void buttonCmfWrite_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "";
|
string rmfd = "";
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_dump;
|
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
||||||
ofd.Title = Resources.请选择需要写入的MFD文件;
|
ofd.Title = "请选择需要写入的MFD文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -878,7 +874,7 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!writecheck(rmfd)) { MessageBox.Show(Resources.将要写入的文件存在错误_请用高级模式中的Hex工具打开查看, Resources.错误, MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
|
if (!writecheck(rmfd)) { MessageBox.Show("将要写入的文件存在错误,请用高级模式中的Hex工具打开查看。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
|
||||||
if (keymfd == "" && Properties.Settings.Default.CuidKeyOver)
|
if (keymfd == "" && Properties.Settings.Default.CuidKeyOver)
|
||||||
{
|
{
|
||||||
cuidKeyOver = true;
|
cuidKeyOver = true;
|
||||||
@ -886,18 +882,18 @@ namespace MifareOneTool
|
|||||||
S50 empty = new S50(Utils.Hex2Block(uid, 4));
|
S50 empty = new S50(Utils.Hex2Block(uid, 4));
|
||||||
empty.ExportToMfd("cuid_empty.kmf");
|
empty.ExportToMfd("cuid_empty.kmf");
|
||||||
keymfd = "cuid_empty.kmf";
|
keymfd = "cuid_empty.kmf";
|
||||||
logAppend(Resources.已启用CUID空卡写入补丁);
|
logAppend("已启用CUID空卡写入补丁");
|
||||||
}
|
}
|
||||||
string kt = "A";
|
string kt = "A";
|
||||||
string nn = "";
|
string nn = "";
|
||||||
if (checkBoxAutoABN.Checked && keymfd != "")
|
if (checkBoxAutoABN.Checked && keymfd != "")
|
||||||
{
|
{
|
||||||
kt = "C";
|
kt = "C";
|
||||||
logAppend(Resources.正在使用智能KeyABN);
|
logAppend("正在使用智能KeyABN…");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (MessageBox.Show(Resources.使用KeyA_是_或KeyB_否_还是不使用_用于全新白卡_, "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
|
switch (MessageBox.Show("使用KeyA(是)或KeyB(否),还是不使用(用于全新白卡)(取消)?", "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
|
||||||
{
|
{
|
||||||
case DialogResult.No:
|
case DialogResult.No:
|
||||||
kt = "B";
|
kt = "B";
|
||||||
@ -932,7 +928,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行CUID_FUID卡片写入); running = true;
|
b.ReportProgress(0, "开始执行CUID/FUID卡片写入……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -946,7 +942,7 @@ namespace MifareOneTool
|
|||||||
cuidKeyOver = false;
|
cuidKeyOver = false;
|
||||||
File.Delete("cuid_empty.kmf");
|
File.Delete("cuid_empty.kmf");
|
||||||
}
|
}
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonKill_Click(object sender, EventArgs e)
|
private void buttonKill_Click(object sender, EventArgs e)
|
||||||
@ -956,16 +952,16 @@ namespace MifareOneTool
|
|||||||
if (process.HasExited == false)
|
if (process.HasExited == false)
|
||||||
{
|
{
|
||||||
process.Kill();
|
process.Kill();
|
||||||
Form1.ActiveForm.Text = Resources.MifareOne_Tool_已终止;
|
Form1.ActiveForm.Text = "MifareOne Tool - 已终止";
|
||||||
logAppend(Resources._程序已被强制停止);
|
logAppend("##程序已被强制停止##");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonLockUfuid_Click(object sender, EventArgs e)
|
private void buttonLockUfuid_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
if (MessageBox.Show(Resources.该操作将会锁死UFUID卡片_锁死后不可恢复_无法再次更改0, Resources.危险操作警告, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
|
if (MessageBox.Show("该操作将会锁死UFUID卡片!!!\n锁死后不可恢复!无法再次更改0块!请确认是否要继续操作?", "危险操作警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
|
||||||
{ return; }
|
{ return; }
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
bgw.DoWork += new DoWorkEventHandler(lock_ufuid);
|
bgw.DoWork += new DoWorkEventHandler(lock_ufuid);
|
||||||
@ -989,7 +985,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行UFUID卡片锁定); running = true;
|
b.ReportProgress(0, "开始执行UFUID卡片锁定……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -997,23 +993,23 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonMfFormat_Click(object sender, EventArgs e)
|
private void buttonMfFormat_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
||||||
if (keymfd == "") { MessageBox.Show(Resources.未选择有效key_mfd, Resources.无密钥, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (keymfd == "") { MessageBox.Show("未选择有效key.mfd。", "无密钥", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = keymfd;
|
string rmfd = keymfd;
|
||||||
string kt = "A";
|
string kt = "A";
|
||||||
if (checkBoxAutoABN.Checked && keymfd != "")
|
if (checkBoxAutoABN.Checked && keymfd != "")
|
||||||
{
|
{
|
||||||
kt = "C";
|
kt = "C";
|
||||||
logAppend(Resources.正在使用智能KeyABN);
|
logAppend("正在使用智能KeyABN…");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (MessageBox.Show(Resources.使用KeyA_是_或KeyB_否, "KeyA/B", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
|
switch (MessageBox.Show("使用KeyA(是)或KeyB(否)?", "KeyA/B", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
|
||||||
{
|
{
|
||||||
case DialogResult.No:
|
case DialogResult.No:
|
||||||
kt = "B";
|
kt = "B";
|
||||||
@ -1041,7 +1037,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行格式化M1卡片); running = true;
|
b.ReportProgress(0, "开始执行格式化M1卡片……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -1049,7 +1045,7 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonEMfoc_Click(object sender, EventArgs e)
|
private void buttonEMfoc_Click(object sender, EventArgs e)
|
||||||
@ -1069,10 +1065,10 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonECmfoc_Click(object sender, EventArgs e)
|
private void buttonECmfoc_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "Mfoc.tmp";
|
string rmfd = "Mfoc.tmp";
|
||||||
string key = "";
|
string key = "";
|
||||||
string[] ks = Interaction.InputBox(Resources.请输入已知的Key_以英文半角逗号分隔, Resources.请输入已知Key, "FFFFFFFFFFFF", -1, -1).Trim().Split(',');
|
string[] ks = Interaction.InputBox("请输入已知的Key,以英文半角逗号分隔。", "请输入已知Key", "FFFFFFFFFFFF", -1, -1).Trim().Split(',');
|
||||||
if (ks.Length > 0)
|
if (ks.Length > 0)
|
||||||
{
|
{
|
||||||
foreach (string k in ks)
|
foreach (string k in ks)
|
||||||
@ -1129,48 +1125,48 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonEnAcr122u_Click(object sender, EventArgs e)
|
private void buttonEnAcr122u_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
if (MessageBox.Show(Resources.同时打开ACR122U支持可能会引起操作速度下降_请确认是否, Resources.提示信息, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
|
if (MessageBox.Show("同时打开ACR122U支持可能会引起操作速度下降。\n请确认是否要继续操作?", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
|
||||||
{ Text = "MifareOne Tool"; return; }
|
{ Text = "MifareOne Tool"; return; }
|
||||||
lprocess = true;
|
lprocess = true;
|
||||||
if (File.Exists("nfc-bin/libnfc(PN532Only).dll"))
|
if (File.Exists("nfc-bin/libnfc(PN532Only).dll"))
|
||||||
{
|
{
|
||||||
logAppend(Resources.ACR122U支持已经打开过);
|
logAppend("ACR122U支持已经打开过。");
|
||||||
}
|
}
|
||||||
if (File.Exists("nfc-bin/libnfc(ACR122U).dll"))
|
if (File.Exists("nfc-bin/libnfc(ACR122U).dll"))
|
||||||
{
|
{
|
||||||
logAppend(Resources.正在打开ACR122U支持);
|
logAppend("正在打开ACR122U支持……");
|
||||||
File.Move("nfc-bin/libnfc.dll", "nfc-bin/libnfc(PN532Only).dll");
|
File.Move("nfc-bin/libnfc.dll", "nfc-bin/libnfc(PN532Only).dll");
|
||||||
File.Move("nfc-bin/libnfc(ACR122U).dll", "nfc-bin/libnfc.dll");
|
File.Move("nfc-bin/libnfc(ACR122U).dll", "nfc-bin/libnfc.dll");
|
||||||
logAppend(Resources.已打开);
|
logAppend("已打开。");
|
||||||
}
|
}
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
Text = Resources.MifareOne_Tool_运行完毕;
|
Text = "MifareOne Tool - 运行完毕";
|
||||||
logAppend(Resources._运行完毕);
|
logAppend("##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (running)
|
if (running)
|
||||||
{
|
{
|
||||||
statusLabel.Text = Resources.运行中;
|
statusLabel.Text = "运行中";
|
||||||
if (process.HasExited == false)
|
if (process.HasExited == false)
|
||||||
{
|
{
|
||||||
DateTime now = DateTime.Now;
|
DateTime now = DateTime.Now;
|
||||||
TimeSpan runtime = now - process.StartTime;
|
TimeSpan runtime = now - process.StartTime;
|
||||||
runTimeLabel.Text = Resources.运行时间 + ((int)runtime.TotalSeconds).ToString() + Resources.秒;
|
runTimeLabel.Text = "运行时间:" + ((int)runtime.TotalSeconds).ToString() + "秒";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { statusLabel.Text = Resources.空闲; }
|
else { statusLabel.Text = "空闲"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonCheckEncrypt_Click(object sender, EventArgs e)
|
private void buttonCheckEncrypt_Click(object sender, EventArgs e)
|
||||||
{//其实这个mfdetect就是个mfoc阉割版。。只检测不破解而已,所以-f -k什么的可以加上,测试自己的key
|
{//其实这个mfdetect就是个mfoc阉割版。。只检测不破解而已,所以-f -k什么的可以加上,测试自己的key
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string key = "";
|
string key = "";
|
||||||
if (Control.ModifierKeys == Keys.Control)
|
if (Control.ModifierKeys == Keys.Control)
|
||||||
{
|
{
|
||||||
string[] ks = Interaction.InputBox(Resources.请输入已知的Key_以英文半角逗号分隔, Resources.请输入已知Key, Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(',');
|
string[] ks = Interaction.InputBox("请输入已知的Key,以英文半角逗号分隔。", "请输入已知Key", Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(',');
|
||||||
if (ks.Length > 0)
|
if (ks.Length > 0)
|
||||||
{
|
{
|
||||||
Properties.Settings.Default.LastTryKey = string.Join(",", ks);
|
Properties.Settings.Default.LastTryKey = string.Join(",", ks);
|
||||||
@ -1203,7 +1199,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行检测卡片加密); running = true;
|
b.ReportProgress(0, "开始执行检测卡片加密……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -1214,11 +1210,11 @@ namespace MifareOneTool
|
|||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == 0)
|
if (process.ExitCode == 0)
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1246,10 +1242,10 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonnKeysMfoc_Click(object sender, EventArgs e)
|
private void buttonnKeysMfoc_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string rmfd = "Mfoc.tmp";
|
string rmfd = "Mfoc.tmp";
|
||||||
string key = "";
|
string key = "";
|
||||||
string[] ks = Interaction.InputBox(Resources.请输入已知的Key_以英文半角逗号分隔, Resources.请输入已知Key, Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(',');
|
string[] ks = Interaction.InputBox("请输入已知的Key,以英文半角逗号分隔。", "请输入已知Key", Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(',');
|
||||||
if (ks.Length > 0)
|
if (ks.Length > 0)
|
||||||
{
|
{
|
||||||
Properties.Settings.Default.LastTryKey = string.Join(",", ks);
|
Properties.Settings.Default.LastTryKey = string.Join(",", ks);
|
||||||
@ -1276,7 +1272,7 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonDictMfoc_Click(object sender, EventArgs e)
|
private void buttonDictMfoc_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
string cmd_mode = "/k";
|
string cmd_mode = "/k";
|
||||||
//if (Control.ModifierKeys == Keys.Control)
|
//if (Control.ModifierKeys == Keys.Control)
|
||||||
//{
|
//{
|
||||||
@ -1285,8 +1281,8 @@ namespace MifareOneTool
|
|||||||
string filename = "";
|
string filename = "";
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.密钥字典文件_dic;
|
ofd.Filter = "密钥字典文件|*.dic";
|
||||||
ofd.Title = Resources.请选择需要打开的密钥字典文件;
|
ofd.Title = "请选择需要打开的密钥字典文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -1294,7 +1290,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Text = Resources.MifareOne_Tool_已取消;
|
Text = "MifareOne Tool - 已取消";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string rmfd = "Mfoc.tmp";
|
string rmfd = "Mfoc.tmp";
|
||||||
@ -1326,16 +1322,16 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行字典模式MFOC解密); running = true;
|
b.ReportProgress(0, "开始执行字典模式MFOC解密……"); running = true;
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == -1073741510) //Why this
|
if (process.ExitCode == -1073741510) //Why this
|
||||||
{
|
{
|
||||||
b.ReportProgress(101, Resources._运行完毕);
|
b.ReportProgress(101, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
File.Delete(args[0]);
|
File.Delete(args[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1362,7 +1358,7 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonHardNested_Click(object sender, EventArgs e)
|
private void buttonHardNested_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
|
||||||
FormHardNes fhn = new FormHardNes();
|
FormHardNes fhn = new FormHardNes();
|
||||||
if (fhn.ShowDialog() == DialogResult.Yes)
|
if (fhn.ShowDialog() == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
@ -1383,7 +1379,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Text = Resources.MifareOne_Tool_已取消;
|
Text = "MifareOne Tool - 已取消";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void Hardnest(object sender, DoWorkEventArgs e)
|
void Hardnest(object sender, DoWorkEventArgs e)
|
||||||
@ -1402,7 +1398,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行HardNested解密强化卡); running = true;
|
b.ReportProgress(0, "开始执行HardNested解密强化卡……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -1412,18 +1408,18 @@ namespace MifareOneTool
|
|||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == 0)
|
if (process.ExitCode == 0)
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CollectNonce(object sender, DoWorkEventArgs e)
|
void CollectNonce(object sender, DoWorkEventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { return; }
|
if (lprocess) { return; }
|
||||||
ProcessStartInfo psi = new ProcessStartInfo(Resources.nfc_bin_collect_exe);
|
ProcessStartInfo psi = new ProcessStartInfo("nfc-bin/collect.exe");
|
||||||
psi.Arguments = (string)e.Argument;
|
psi.Arguments = (string)e.Argument;
|
||||||
psi.CreateNoWindow = true;
|
psi.CreateNoWindow = true;
|
||||||
psi.UseShellExecute = false;
|
psi.UseShellExecute = false;
|
||||||
@ -1432,7 +1428,7 @@ namespace MifareOneTool
|
|||||||
lprocess = true;
|
lprocess = true;
|
||||||
BackgroundWorker b = (BackgroundWorker)sender;
|
BackgroundWorker b = (BackgroundWorker)sender;
|
||||||
process = Process.Start(psi);
|
process = Process.Start(psi);
|
||||||
b.ReportProgress(0, Resources.开始执行HardNested收集数据); running = true;
|
b.ReportProgress(0, "开始执行HardNested收集数据……"); running = true;
|
||||||
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.OutputDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
process.ErrorDataReceived += (s, _e) => b.ReportProgress(0, _e.Data);
|
||||||
//StreamReader stderr = process.StandardError;
|
//StreamReader stderr = process.StandardError;
|
||||||
@ -1442,11 +1438,11 @@ namespace MifareOneTool
|
|||||||
lprocess = false; running = false;
|
lprocess = false; running = false;
|
||||||
if (process.ExitCode == 0)
|
if (process.ExitCode == 0)
|
||||||
{
|
{
|
||||||
b.ReportProgress(102, Resources._运行完毕);
|
b.ReportProgress(102, "##运行完毕##");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
b.ReportProgress(100, Resources._运行出错);
|
b.ReportProgress(100, "##运行出错##");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1509,7 +1505,7 @@ namespace MifareOneTool
|
|||||||
if (SetDeviceCombo.SelectedIndex >= 0)
|
if (SetDeviceCombo.SelectedIndex >= 0)
|
||||||
{
|
{
|
||||||
writeConfig(SetDeviceCombo.SelectedItem.ToString());
|
writeConfig(SetDeviceCombo.SelectedItem.ToString());
|
||||||
logAppend(Resources.已指定使用该NFC设备 + SetDeviceCombo.SelectedItem.ToString());
|
logAppend("已指定使用该NFC设备:" + SetDeviceCombo.SelectedItem.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1528,26 +1524,5 @@ namespace MifareOneTool
|
|||||||
FormMFF08 mff08 = new FormMFF08();
|
FormMFF08 mff08 = new FormMFF08();
|
||||||
mff08.ShowDialog();
|
mff08.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (comboBox1.SelectedItem.ToString() == Resources.标准)
|
|
||||||
{
|
|
||||||
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-cn");
|
|
||||||
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("zh-cn");
|
|
||||||
Properties.Settings.Default.Language = "zh-cn";
|
|
||||||
Properties.Settings.Default.Save();
|
|
||||||
Application.Restart();
|
|
||||||
}
|
|
||||||
else if (comboBox1.SelectedItem.ToString() == Resources.俄语)
|
|
||||||
{
|
|
||||||
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("ru-RU");
|
|
||||||
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru-RU");
|
|
||||||
Properties.Settings.Default.Language = "ru-RU";
|
|
||||||
Properties.Settings.Default.Save();
|
|
||||||
Application.Restart();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
70
MifareOneTool/FormDiff.Designer.cs
generated
@ -28,87 +28,72 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormDiff));
|
|
||||||
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
this.button2 = new System.Windows.Forms.Button();
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
this.button3 = new System.Windows.Forms.Button();
|
this.button3 = new System.Windows.Forms.Button();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
|
||||||
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
|
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
|
||||||
this.flowLayoutPanel1.SuspendLayout();
|
|
||||||
this.flowLayoutPanel2.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// richTextBox1
|
// richTextBox1
|
||||||
//
|
//
|
||||||
this.richTextBox1.BackColor = System.Drawing.Color.Black;
|
this.richTextBox1.BackColor = System.Drawing.Color.Black;
|
||||||
resources.ApplyResources(this.richTextBox1, "richTextBox1");
|
|
||||||
this.richTextBox1.ForeColor = System.Drawing.Color.Orange;
|
this.richTextBox1.ForeColor = System.Drawing.Color.Orange;
|
||||||
|
this.richTextBox1.Location = new System.Drawing.Point(12, 74);
|
||||||
this.richTextBox1.Name = "richTextBox1";
|
this.richTextBox1.Name = "richTextBox1";
|
||||||
this.richTextBox1.ReadOnly = true;
|
this.richTextBox1.ReadOnly = true;
|
||||||
this.richTextBox1.TextChanged += new System.EventHandler(this.RichTextBox1_TextChanged);
|
this.richTextBox1.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
|
||||||
|
this.richTextBox1.Size = new System.Drawing.Size(469, 474);
|
||||||
|
this.richTextBox1.TabIndex = 0;
|
||||||
|
this.richTextBox1.Text = "欢迎使用M1T内置的差异工具!\n说明:\n点击上方的AB两个按键分别选择MFD文件。\n然后点击“比较”即可看到结果。\n";
|
||||||
//
|
//
|
||||||
// button1
|
// button1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button1, "button1");
|
this.button1.Location = new System.Drawing.Point(12, 12);
|
||||||
this.button1.Name = "button1";
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(388, 25);
|
||||||
|
this.button1.TabIndex = 1;
|
||||||
|
this.button1.Text = "A";
|
||||||
|
this.button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||||
//
|
//
|
||||||
// button2
|
// button2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button2, "button2");
|
this.button2.Location = new System.Drawing.Point(12, 43);
|
||||||
this.button2.Name = "button2";
|
this.button2.Name = "button2";
|
||||||
|
this.button2.Size = new System.Drawing.Size(388, 25);
|
||||||
|
this.button2.TabIndex = 2;
|
||||||
|
this.button2.Text = "B";
|
||||||
|
this.button2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
this.button2.UseVisualStyleBackColor = true;
|
this.button2.UseVisualStyleBackColor = true;
|
||||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||||
//
|
//
|
||||||
// button3
|
// button3
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button3, "button3");
|
this.button3.Location = new System.Drawing.Point(406, 12);
|
||||||
this.button3.Name = "button3";
|
this.button3.Name = "button3";
|
||||||
|
this.button3.Size = new System.Drawing.Size(75, 56);
|
||||||
|
this.button3.TabIndex = 3;
|
||||||
|
this.button3.Text = "比较";
|
||||||
this.button3.UseVisualStyleBackColor = true;
|
this.button3.UseVisualStyleBackColor = true;
|
||||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||||
//
|
//
|
||||||
// tableLayoutPanel1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 0);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.button3, 1, 0);
|
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
|
||||||
//
|
|
||||||
// flowLayoutPanel1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1");
|
|
||||||
this.flowLayoutPanel1.Controls.Add(this.button1);
|
|
||||||
this.flowLayoutPanel1.Controls.Add(this.button2);
|
|
||||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
|
||||||
//
|
|
||||||
// flowLayoutPanel2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.flowLayoutPanel2, "flowLayoutPanel2");
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.tableLayoutPanel1);
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.richTextBox1);
|
|
||||||
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
|
|
||||||
//
|
|
||||||
// FormDiff
|
// FormDiff
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.button3;
|
this.AcceptButton = this.button3;
|
||||||
resources.ApplyResources(this, "$this");
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.flowLayoutPanel2);
|
this.ClientSize = new System.Drawing.Size(493, 560);
|
||||||
|
this.Controls.Add(this.button3);
|
||||||
|
this.Controls.Add(this.button2);
|
||||||
|
this.Controls.Add(this.button1);
|
||||||
|
this.Controls.Add(this.richTextBox1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.Name = "FormDiff";
|
this.Name = "FormDiff";
|
||||||
|
this.Text = "DiffTool";
|
||||||
this.Load += new System.EventHandler(this.FormDiff_Load);
|
this.Load += new System.EventHandler(this.FormDiff_Load);
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel1.PerformLayout();
|
|
||||||
this.flowLayoutPanel1.ResumeLayout(false);
|
|
||||||
this.flowLayoutPanel2.ResumeLayout(false);
|
|
||||||
this.flowLayoutPanel2.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,8 +103,5 @@
|
|||||||
private System.Windows.Forms.Button button1;
|
private System.Windows.Forms.Button button1;
|
||||||
private System.Windows.Forms.Button button2;
|
private System.Windows.Forms.Button button2;
|
||||||
private System.Windows.Forms.Button button3;
|
private System.Windows.Forms.Button button3;
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -27,8 +26,8 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_dump;
|
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
||||||
ofd.Title = Resources.请选择需要打开的MFD文件_比较A;
|
ofd.Title = "请选择需要打开的MFD文件(比较A)";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -46,7 +45,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ioe.Message, Resources.打开出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
sa = new S50();
|
sa = new S50();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -65,8 +64,8 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_dump;
|
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
||||||
ofd.Title = Resources.请选择需要打开的MFD文件_比较B;
|
ofd.Title = "请选择需要打开的MFD文件(比较B)";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -84,7 +83,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ioe.Message, Resources.打开出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
sb = new S50();
|
sb = new S50();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -99,7 +98,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logAppend(Resources.AB文件中一个或两个无效);
|
logAppend("AB文件中一个或两个无效。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private string Compare()
|
private string Compare()
|
||||||
@ -109,7 +108,7 @@ namespace MifareOneTool
|
|||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
stb.AppendLine("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
stb.AppendLine("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
||||||
stb.AppendLine(Resources.扇区0 + i.ToString());
|
stb.AppendLine("扇区 " + i.ToString());
|
||||||
for (int a = 0; a < 4; a++)
|
for (int a = 0; a < 4; a++)
|
||||||
{
|
{
|
||||||
string res = "";
|
string res = "";
|
||||||
@ -134,12 +133,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return Resources.共找到 + diffCount.ToString() + Resources._个块不同 + stb.ToString();
|
return "共找到 " + diffCount.ToString() + " 个块不同\n" + stb.ToString();
|
||||||
}
|
|
||||||
|
|
||||||
private void RichTextBox1_TextChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,284 +117,4 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>A</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Text" xml:space="preserve">
|
|
||||||
<value>B</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Text" xml:space="preserve">
|
|
||||||
<value>比较</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>DiffTool</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>欢迎使用M1T内置的差异工具!</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[1]" xml:space="preserve">
|
|
||||||
<value>说明:</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[2]" xml:space="preserve">
|
|
||||||
<value>点击上方的AB两个按键分别选择MFD文件。</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[3]" xml:space="preserve">
|
|
||||||
<value>然后点击“比较”即可看到结果。</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Text" xml:space="preserve">
|
|
||||||
<value>欢迎使用M1T内置的差异工具!
|
|
||||||
说明:
|
|
||||||
点击上方的AB两个按键分别选择MFD文件。
|
|
||||||
然后点击“比较”即可看到结果。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>True</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="richTextBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="richTextBox1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>2, 69</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>2, 3, 2, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.ScrollBars" type="System.Windows.Forms.RichTextBoxScrollBars, System.Windows.Forms">
|
|
||||||
<value>ForcedVertical</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>348, 221</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="richTextBox1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>richTextBox1.Name" xml:space="preserve">
|
|
||||||
<value>richTextBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>richTextBox1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>richTextBox1.Parent" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>richTextBox1.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>2, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>2, 3, 2, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>291, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleLeft</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
|
||||||
<value>button1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Parent" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>2, 30</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>2, 3, 2, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>291, 21</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleLeft</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.Name" xml:space="preserve">
|
|
||||||
<value>button2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.Parent" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>303, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>2, 3, 2, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>41, 54</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button3.Name" xml:space="preserve">
|
|
||||||
<value>button3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button3.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button3.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button3.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.FlowDirection" type="System.Windows.Forms.FlowDirection, System.Windows.Forms">
|
|
||||||
<value>TopDown</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>295, 54</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.Name" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>346, 60</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.Name" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.Parent" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="flowLayoutPanel1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="button3" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0" /><Rows Styles="AutoSize,0" /></TableLayoutSettings></value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.FlowDirection" type="System.Windows.Forms.FlowDirection, System.Windows.Forms">
|
|
||||||
<value>TopDown</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>370, 456</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel2.Name" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel2.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel2.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
|
||||||
<value>6, 13</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>370, 456</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>2, 3, 2, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
|
||||||
<value>FormDiff</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
@ -1,150 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>A</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Text" xml:space="preserve">
|
|
||||||
<value>В</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Text" xml:space="preserve">
|
|
||||||
<value>Сравнить</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>Сравнение дампов</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>Добро пожаловать во встроенный инструмент различий M1T!</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[1]" xml:space="preserve">
|
|
||||||
<value>Описание:</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[2]" xml:space="preserve">
|
|
||||||
<value>Нажмите две кнопки AB выше, чтобы выбрать файл MFD.</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[3]" xml:space="preserve">
|
|
||||||
<value>Затем нажмите «Сравнить», чтобы увидеть результаты.</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Text" xml:space="preserve">
|
|
||||||
<value>Добро пожаловать во встроенный инструмент сравнения дампов!
|
|
||||||
Описание:
|
|
||||||
1. Нажмите А или В, чтобы выбрать файл MFD.
|
|
||||||
2. Нажмите «Сравнить», чтобы увидеть результаты.</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,151 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>A</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Text" xml:space="preserve">
|
|
||||||
<value>B</value>
|
|
||||||
</data>
|
|
||||||
<data name="button3.Text" xml:space="preserve">
|
|
||||||
<value>比较</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>DiffTool</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>欢迎使用M1T内置的差异工具!</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[1]" xml:space="preserve">
|
|
||||||
<value>说明:</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[2]" xml:space="preserve">
|
|
||||||
<value>点击上方的AB两个按键分别选择MFD文件。</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[3]" xml:space="preserve">
|
|
||||||
<value>然后点击“比较”即可看到结果。</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Text" xml:space="preserve">
|
|
||||||
<value>欢迎使用M1T内置的差异工具!
|
|
||||||
说明:
|
|
||||||
点击上方的AB两个按键分别选择MFD文件。
|
|
||||||
然后点击“比较”即可看到结果。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
411
MifareOneTool/FormHTool.Designer.cs
generated
@ -29,7 +29,6 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
this.components = new System.ComponentModel.Container();
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormHTool));
|
|
||||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
this.文件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.文件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.新建ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.新建ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@ -75,35 +74,26 @@
|
|||||||
this.labelCurSec = new System.Windows.Forms.Label();
|
this.labelCurSec = new System.Windows.Forms.Label();
|
||||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
|
||||||
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
|
|
||||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
|
|
||||||
this.s50BindingSource = new System.Windows.Forms.BindingSource(this.components);
|
this.s50BindingSource = new System.Windows.Forms.BindingSource(this.components);
|
||||||
this.menuStrip1.SuspendLayout();
|
this.menuStrip1.SuspendLayout();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
||||||
this.groupBox2.SuspendLayout();
|
this.groupBox2.SuspendLayout();
|
||||||
this.groupBox3.SuspendLayout();
|
this.groupBox3.SuspendLayout();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
|
||||||
this.tableLayoutPanel2.SuspendLayout();
|
|
||||||
this.flowLayoutPanel1.SuspendLayout();
|
|
||||||
this.flowLayoutPanel2.SuspendLayout();
|
|
||||||
this.tableLayoutPanel3.SuspendLayout();
|
|
||||||
this.flowLayoutPanel3.SuspendLayout();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.s50BindingSource)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.s50BindingSource)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// menuStrip1
|
// menuStrip1
|
||||||
//
|
//
|
||||||
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
|
|
||||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.文件ToolStripMenuItem,
|
this.文件ToolStripMenuItem,
|
||||||
this.工具ToolStripMenuItem});
|
this.工具ToolStripMenuItem});
|
||||||
resources.ApplyResources(this.menuStrip1, "menuStrip1");
|
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
this.menuStrip1.Name = "menuStrip1";
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
this.menuStrip1.Padding = new System.Windows.Forms.Padding(4, 2, 0, 2);
|
||||||
|
this.menuStrip1.Size = new System.Drawing.Size(628, 25);
|
||||||
|
this.menuStrip1.TabIndex = 0;
|
||||||
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
//
|
//
|
||||||
// 文件ToolStripMenuItem
|
// 文件ToolStripMenuItem
|
||||||
//
|
//
|
||||||
@ -115,41 +105,53 @@
|
|||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.退出ToolStripMenuItem});
|
this.退出ToolStripMenuItem});
|
||||||
this.文件ToolStripMenuItem.Name = "文件ToolStripMenuItem";
|
this.文件ToolStripMenuItem.Name = "文件ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.文件ToolStripMenuItem, "文件ToolStripMenuItem");
|
this.文件ToolStripMenuItem.Size = new System.Drawing.Size(44, 21);
|
||||||
|
this.文件ToolStripMenuItem.Text = "文件";
|
||||||
//
|
//
|
||||||
// 新建ToolStripMenuItem
|
// 新建ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.新建ToolStripMenuItem.Name = "新建ToolStripMenuItem";
|
this.新建ToolStripMenuItem.Name = "新建ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.新建ToolStripMenuItem, "新建ToolStripMenuItem");
|
this.新建ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
|
||||||
|
this.新建ToolStripMenuItem.Size = new System.Drawing.Size(190, 22);
|
||||||
|
this.新建ToolStripMenuItem.Text = "新建";
|
||||||
this.新建ToolStripMenuItem.Click += new System.EventHandler(this.新建ToolStripMenuItem_Click);
|
this.新建ToolStripMenuItem.Click += new System.EventHandler(this.新建ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 打开ToolStripMenuItem
|
// 打开ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.打开ToolStripMenuItem.Name = "打开ToolStripMenuItem";
|
this.打开ToolStripMenuItem.Name = "打开ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.打开ToolStripMenuItem, "打开ToolStripMenuItem");
|
this.打开ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
||||||
|
this.打开ToolStripMenuItem.Size = new System.Drawing.Size(190, 22);
|
||||||
|
this.打开ToolStripMenuItem.Text = "打开";
|
||||||
this.打开ToolStripMenuItem.Click += new System.EventHandler(this.打开ToolStripMenuItem_Click);
|
this.打开ToolStripMenuItem.Click += new System.EventHandler(this.打开ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 保存ToolStripMenuItem
|
// 保存ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.保存ToolStripMenuItem.Name = "保存ToolStripMenuItem";
|
this.保存ToolStripMenuItem.Name = "保存ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.保存ToolStripMenuItem, "保存ToolStripMenuItem");
|
this.保存ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
||||||
|
this.保存ToolStripMenuItem.Size = new System.Drawing.Size(190, 22);
|
||||||
|
this.保存ToolStripMenuItem.Text = "保存";
|
||||||
this.保存ToolStripMenuItem.Click += new System.EventHandler(this.保存ToolStripMenuItem_Click);
|
this.保存ToolStripMenuItem.Click += new System.EventHandler(this.保存ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 另存为ToolStripMenuItem
|
// 另存为ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.另存为ToolStripMenuItem.Name = "另存为ToolStripMenuItem";
|
this.另存为ToolStripMenuItem.Name = "另存为ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.另存为ToolStripMenuItem, "另存为ToolStripMenuItem");
|
this.另存为ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||||
|
| System.Windows.Forms.Keys.S)));
|
||||||
|
this.另存为ToolStripMenuItem.Size = new System.Drawing.Size(190, 22);
|
||||||
|
this.另存为ToolStripMenuItem.Text = "另存为";
|
||||||
this.另存为ToolStripMenuItem.Click += new System.EventHandler(this.另存为ToolStripMenuItem_Click);
|
this.另存为ToolStripMenuItem.Click += new System.EventHandler(this.另存为ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
resources.ApplyResources(this.toolStripSeparator1, "toolStripSeparator1");
|
this.toolStripSeparator1.Size = new System.Drawing.Size(187, 6);
|
||||||
//
|
//
|
||||||
// 退出ToolStripMenuItem
|
// 退出ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem";
|
this.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.退出ToolStripMenuItem, "退出ToolStripMenuItem");
|
this.退出ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.X)));
|
||||||
|
this.退出ToolStripMenuItem.Size = new System.Drawing.Size(190, 22);
|
||||||
|
this.退出ToolStripMenuItem.Text = "退出";
|
||||||
this.退出ToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click);
|
this.退出ToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 工具ToolStripMenuItem
|
// 工具ToolStripMenuItem
|
||||||
@ -166,71 +168,91 @@
|
|||||||
this.toolStripSeparator4,
|
this.toolStripSeparator4,
|
||||||
this.列出全卡密钥ToolStripMenuItem});
|
this.列出全卡密钥ToolStripMenuItem});
|
||||||
this.工具ToolStripMenuItem.Name = "工具ToolStripMenuItem";
|
this.工具ToolStripMenuItem.Name = "工具ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.工具ToolStripMenuItem, "工具ToolStripMenuItem");
|
this.工具ToolStripMenuItem.Size = new System.Drawing.Size(44, 21);
|
||||||
|
this.工具ToolStripMenuItem.Text = "工具";
|
||||||
//
|
//
|
||||||
// 修改UIDToolStripMenuItem
|
// 修改UIDToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.修改UIDToolStripMenuItem.Name = "修改UIDToolStripMenuItem";
|
this.修改UIDToolStripMenuItem.Name = "修改UIDToolStripMenuItem";
|
||||||
resources.ApplyResources(this.修改UIDToolStripMenuItem, "修改UIDToolStripMenuItem");
|
this.修改UIDToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.U)));
|
||||||
|
this.修改UIDToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.修改UIDToolStripMenuItem.Text = "修改UID";
|
||||||
this.修改UIDToolStripMenuItem.Click += new System.EventHandler(this.修改UIDToolStripMenuItem_Click);
|
this.修改UIDToolStripMenuItem.Click += new System.EventHandler(this.修改UIDToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
resources.ApplyResources(this.toolStripSeparator2, "toolStripSeparator2");
|
this.toolStripSeparator2.Size = new System.Drawing.Size(209, 6);
|
||||||
//
|
//
|
||||||
// 检查全卡ToolStripMenuItem
|
// 检查全卡ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.检查全卡ToolStripMenuItem.Name = "检查全卡ToolStripMenuItem";
|
this.检查全卡ToolStripMenuItem.Name = "检查全卡ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.检查全卡ToolStripMenuItem, "检查全卡ToolStripMenuItem");
|
this.检查全卡ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.J)));
|
||||||
|
this.检查全卡ToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.检查全卡ToolStripMenuItem.Text = "检查全卡";
|
||||||
this.检查全卡ToolStripMenuItem.Click += new System.EventHandler(this.检查全卡ToolStripMenuItem_Click);
|
this.检查全卡ToolStripMenuItem.Click += new System.EventHandler(this.检查全卡ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 检查并纠正全卡ToolStripMenuItem
|
// 检查并纠正全卡ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.检查并纠正全卡ToolStripMenuItem.Name = "检查并纠正全卡ToolStripMenuItem";
|
this.检查并纠正全卡ToolStripMenuItem.Name = "检查并纠正全卡ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.检查并纠正全卡ToolStripMenuItem, "检查并纠正全卡ToolStripMenuItem");
|
this.检查并纠正全卡ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.K)));
|
||||||
|
this.检查并纠正全卡ToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.检查并纠正全卡ToolStripMenuItem.Text = "检查并纠正全卡";
|
||||||
this.检查并纠正全卡ToolStripMenuItem.Click += new System.EventHandler(this.检查并纠正全卡ToolStripMenuItem_Click);
|
this.检查并纠正全卡ToolStripMenuItem.Click += new System.EventHandler(this.检查并纠正全卡ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
this.toolStripSeparator3.Size = new System.Drawing.Size(209, 6);
|
||||||
//
|
//
|
||||||
// 导入MCT格式ToolStripMenuItem
|
// 导入MCT格式ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.导入MCT格式ToolStripMenuItem.Name = "导入MCT格式ToolStripMenuItem";
|
this.导入MCT格式ToolStripMenuItem.Name = "导入MCT格式ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.导入MCT格式ToolStripMenuItem, "导入MCT格式ToolStripMenuItem");
|
this.导入MCT格式ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.L)));
|
||||||
|
this.导入MCT格式ToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.导入MCT格式ToolStripMenuItem.Text = "导入MCT格式";
|
||||||
this.导入MCT格式ToolStripMenuItem.Click += new System.EventHandler(this.导入MCT格式ToolStripMenuItem_Click);
|
this.导入MCT格式ToolStripMenuItem.Click += new System.EventHandler(this.导入MCT格式ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 导出为MCT格式ToolStripMenuItem
|
// 导出为MCT格式ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.导出为MCT格式ToolStripMenuItem.Name = "导出为MCT格式ToolStripMenuItem";
|
this.导出为MCT格式ToolStripMenuItem.Name = "导出为MCT格式ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.导出为MCT格式ToolStripMenuItem, "导出为MCT格式ToolStripMenuItem");
|
this.导出为MCT格式ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.M)));
|
||||||
|
this.导出为MCT格式ToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.导出为MCT格式ToolStripMenuItem.Text = "导出为MCT格式";
|
||||||
this.导出为MCT格式ToolStripMenuItem.Click += new System.EventHandler(this.导出为MCT格式ToolStripMenuItem_Click);
|
this.导出为MCT格式ToolStripMenuItem.Click += new System.EventHandler(this.导出为MCT格式ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// 导出密钥字典ToolStripMenuItem
|
// 导出密钥字典ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.导出密钥字典ToolStripMenuItem.Name = "导出密钥字典ToolStripMenuItem";
|
this.导出密钥字典ToolStripMenuItem.Name = "导出密钥字典ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.导出密钥字典ToolStripMenuItem, "导出密钥字典ToolStripMenuItem");
|
this.导出密钥字典ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
|
||||||
|
this.导出密钥字典ToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.导出密钥字典ToolStripMenuItem.Text = "导出密钥字典";
|
||||||
this.导出密钥字典ToolStripMenuItem.Click += new System.EventHandler(this.导出密钥字典ToolStripMenuItem_Click);
|
this.导出密钥字典ToolStripMenuItem.Click += new System.EventHandler(this.导出密钥字典ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator4
|
// toolStripSeparator4
|
||||||
//
|
//
|
||||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
resources.ApplyResources(this.toolStripSeparator4, "toolStripSeparator4");
|
this.toolStripSeparator4.Size = new System.Drawing.Size(209, 6);
|
||||||
//
|
//
|
||||||
// 列出全卡密钥ToolStripMenuItem
|
// 列出全卡密钥ToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.列出全卡密钥ToolStripMenuItem.Name = "列出全卡密钥ToolStripMenuItem";
|
this.列出全卡密钥ToolStripMenuItem.Name = "列出全卡密钥ToolStripMenuItem";
|
||||||
resources.ApplyResources(this.列出全卡密钥ToolStripMenuItem, "列出全卡密钥ToolStripMenuItem");
|
this.列出全卡密钥ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.I)));
|
||||||
|
this.列出全卡密钥ToolStripMenuItem.Size = new System.Drawing.Size(212, 22);
|
||||||
|
this.列出全卡密钥ToolStripMenuItem.Text = "列出全卡密钥";
|
||||||
this.列出全卡密钥ToolStripMenuItem.Click += new System.EventHandler(this.列出全卡密钥ToolStripMenuItem_Click);
|
this.列出全卡密钥ToolStripMenuItem.Click += new System.EventHandler(this.列出全卡密钥ToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.dataGridView1);
|
this.groupBox1.Controls.Add(this.dataGridView1);
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
this.groupBox1.Location = new System.Drawing.Point(9, 25);
|
||||||
|
this.groupBox1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(188, 327);
|
||||||
|
this.groupBox1.TabIndex = 1;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "扇区列表";
|
||||||
//
|
//
|
||||||
// dataGridView1
|
// dataGridView1
|
||||||
//
|
//
|
||||||
@ -242,34 +264,68 @@
|
|||||||
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||||
this.Column1});
|
this.Column1});
|
||||||
resources.ApplyResources(this.dataGridView1, "dataGridView1");
|
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
|
this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
|
||||||
|
this.dataGridView1.Location = new System.Drawing.Point(2, 16);
|
||||||
|
this.dataGridView1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.dataGridView1.MultiSelect = false;
|
this.dataGridView1.MultiSelect = false;
|
||||||
this.dataGridView1.Name = "dataGridView1";
|
this.dataGridView1.Name = "dataGridView1";
|
||||||
this.dataGridView1.ReadOnly = true;
|
this.dataGridView1.ReadOnly = true;
|
||||||
|
this.dataGridView1.RowHeadersWidth = 20;
|
||||||
this.dataGridView1.RowTemplate.Height = 27;
|
this.dataGridView1.RowTemplate.Height = 27;
|
||||||
|
this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||||
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||||
|
this.dataGridView1.Size = new System.Drawing.Size(184, 309);
|
||||||
|
this.dataGridView1.TabIndex = 0;
|
||||||
this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick);
|
this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick);
|
||||||
//
|
//
|
||||||
// Column1
|
// Column1
|
||||||
//
|
//
|
||||||
this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||||
resources.ApplyResources(this.Column1, "Column1");
|
this.Column1.HeaderText = "扇区";
|
||||||
this.Column1.Name = "Column1";
|
this.Column1.Name = "Column1";
|
||||||
this.Column1.ReadOnly = true;
|
this.Column1.ReadOnly = true;
|
||||||
this.Column1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
this.Column1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
this.groupBox2.Controls.Add(this.buttonSaveSectorEdit);
|
||||||
this.groupBox2.Controls.Add(this.tableLayoutPanel2);
|
this.groupBox2.Controls.Add(this.comboBox4);
|
||||||
|
this.groupBox2.Controls.Add(this.comboBox3);
|
||||||
|
this.groupBox2.Controls.Add(this.comboBox2);
|
||||||
|
this.groupBox2.Controls.Add(this.comboBox1);
|
||||||
|
this.groupBox2.Controls.Add(this.label9);
|
||||||
|
this.groupBox2.Controls.Add(this.label8);
|
||||||
|
this.groupBox2.Controls.Add(this.label7);
|
||||||
|
this.groupBox2.Controls.Add(this.label6);
|
||||||
|
this.groupBox2.Controls.Add(this.label5);
|
||||||
|
this.groupBox2.Controls.Add(this.keyBEdit);
|
||||||
|
this.groupBox2.Controls.Add(this.keyAEdit);
|
||||||
|
this.groupBox2.Controls.Add(this.block2Edit);
|
||||||
|
this.groupBox2.Controls.Add(this.label4);
|
||||||
|
this.groupBox2.Controls.Add(this.label3);
|
||||||
|
this.groupBox2.Controls.Add(this.block1Edit);
|
||||||
|
this.groupBox2.Controls.Add(this.label2);
|
||||||
|
this.groupBox2.Controls.Add(this.block0Edit);
|
||||||
|
this.groupBox2.Controls.Add(this.label1);
|
||||||
|
this.groupBox2.Controls.Add(this.labelCurSec);
|
||||||
|
this.groupBox2.Location = new System.Drawing.Point(201, 25);
|
||||||
|
this.groupBox2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
|
this.groupBox2.Size = new System.Drawing.Size(219, 327);
|
||||||
|
this.groupBox2.TabIndex = 2;
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
|
this.groupBox2.Text = "扇区信息";
|
||||||
//
|
//
|
||||||
// buttonSaveSectorEdit
|
// buttonSaveSectorEdit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.buttonSaveSectorEdit, "buttonSaveSectorEdit");
|
this.buttonSaveSectorEdit.Location = new System.Drawing.Point(110, 13);
|
||||||
|
this.buttonSaveSectorEdit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.buttonSaveSectorEdit.Name = "buttonSaveSectorEdit";
|
this.buttonSaveSectorEdit.Name = "buttonSaveSectorEdit";
|
||||||
|
this.buttonSaveSectorEdit.Size = new System.Drawing.Size(104, 20);
|
||||||
|
this.buttonSaveSectorEdit.TabIndex = 20;
|
||||||
|
this.buttonSaveSectorEdit.Text = "修改扇区(Enter)";
|
||||||
this.buttonSaveSectorEdit.UseVisualStyleBackColor = true;
|
this.buttonSaveSectorEdit.UseVisualStyleBackColor = true;
|
||||||
this.buttonSaveSectorEdit.Click += new System.EventHandler(this.buttonSaveSectorEdit_Click);
|
this.buttonSaveSectorEdit.Click += new System.EventHandler(this.buttonSaveSectorEdit_Click);
|
||||||
//
|
//
|
||||||
@ -279,16 +335,19 @@
|
|||||||
this.comboBox4.DropDownWidth = 400;
|
this.comboBox4.DropDownWidth = 400;
|
||||||
this.comboBox4.FormattingEnabled = true;
|
this.comboBox4.FormattingEnabled = true;
|
||||||
this.comboBox4.Items.AddRange(new object[] {
|
this.comboBox4.Items.AddRange(new object[] {
|
||||||
resources.GetString("comboBox4.Items"),
|
"[不可逆]KeyA:A写/AC:A只读/KeyB:A读写",
|
||||||
resources.GetString("comboBox4.Items1"),
|
"KeyA:A写/AC:A读写/KeyB:A读写",
|
||||||
resources.GetString("comboBox4.Items2"),
|
"[不可逆]KeyA:不能读写/AC:A只读/KeyB:A读",
|
||||||
resources.GetString("comboBox4.Items3"),
|
"KeyA:B写/AC:A只读B读写/KeyB:B写",
|
||||||
resources.GetString("comboBox4.Items4"),
|
"[不可逆]KeyA:B写/AC:AB只读/KeyB:B写",
|
||||||
resources.GetString("comboBox4.Items5"),
|
"KeyA:不能读写/AC:A只读B读写/KeyB:不能读写",
|
||||||
resources.GetString("comboBox4.Items6"),
|
"[不可逆]KeyA:不能读写/AC:AB只读/KeyB:不能读写",
|
||||||
resources.GetString("comboBox4.Items7")});
|
"[不可逆]KeyA:不能读写/AC:AB只读/KeyB:不能读写(重复了?)"});
|
||||||
resources.ApplyResources(this.comboBox4, "comboBox4");
|
this.comboBox4.Location = new System.Drawing.Point(4, 303);
|
||||||
|
this.comboBox4.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.comboBox4.Name = "comboBox4";
|
this.comboBox4.Name = "comboBox4";
|
||||||
|
this.comboBox4.Size = new System.Drawing.Size(211, 20);
|
||||||
|
this.comboBox4.TabIndex = 19;
|
||||||
this.comboBox4.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
this.comboBox4.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
||||||
//
|
//
|
||||||
// comboBox3
|
// comboBox3
|
||||||
@ -296,16 +355,19 @@
|
|||||||
this.comboBox3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.comboBox3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.comboBox3.FormattingEnabled = true;
|
this.comboBox3.FormattingEnabled = true;
|
||||||
this.comboBox3.Items.AddRange(new object[] {
|
this.comboBox3.Items.AddRange(new object[] {
|
||||||
resources.GetString("comboBox3.Items"),
|
"KeyAB读写及增减值",
|
||||||
resources.GetString("comboBox3.Items1"),
|
"[只读]KeyAB读及减值/不可写及增值",
|
||||||
resources.GetString("comboBox3.Items2"),
|
"[只读]KeyAB读/不可写及增减值",
|
||||||
resources.GetString("comboBox3.Items3"),
|
"KeyB读写/不可增减值",
|
||||||
resources.GetString("comboBox3.Items4"),
|
"KeyAB读/KeyB写/不可增减值",
|
||||||
resources.GetString("comboBox3.Items5"),
|
"[只读]KeyB读/不可写及增减值",
|
||||||
resources.GetString("comboBox3.Items6"),
|
"KeyAB读及减值/KeyB写及增值",
|
||||||
resources.GetString("comboBox3.Items7")});
|
"[只读]锁死该扇区"});
|
||||||
resources.ApplyResources(this.comboBox3, "comboBox3");
|
this.comboBox3.Location = new System.Drawing.Point(4, 268);
|
||||||
|
this.comboBox3.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.comboBox3.Name = "comboBox3";
|
this.comboBox3.Name = "comboBox3";
|
||||||
|
this.comboBox3.Size = new System.Drawing.Size(211, 20);
|
||||||
|
this.comboBox3.TabIndex = 18;
|
||||||
this.comboBox3.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
this.comboBox3.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
||||||
//
|
//
|
||||||
// comboBox2
|
// comboBox2
|
||||||
@ -313,16 +375,19 @@
|
|||||||
this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.comboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.comboBox2.FormattingEnabled = true;
|
this.comboBox2.FormattingEnabled = true;
|
||||||
this.comboBox2.Items.AddRange(new object[] {
|
this.comboBox2.Items.AddRange(new object[] {
|
||||||
resources.GetString("comboBox2.Items"),
|
"KeyAB读写及增减值",
|
||||||
resources.GetString("comboBox2.Items1"),
|
"[只读]KeyAB读及减值/不可写及增值",
|
||||||
resources.GetString("comboBox2.Items2"),
|
"[只读]KeyAB读/不可写及增减值",
|
||||||
resources.GetString("comboBox2.Items3"),
|
"KeyB读写/不可增减值",
|
||||||
resources.GetString("comboBox2.Items4"),
|
"KeyAB读/KeyB写/不可增减值",
|
||||||
resources.GetString("comboBox2.Items5"),
|
"[只读]KeyB读/不可写及增减值",
|
||||||
resources.GetString("comboBox2.Items6"),
|
"KeyAB读及减值/KeyB写及增值",
|
||||||
resources.GetString("comboBox2.Items7")});
|
"[只读]锁死该扇区"});
|
||||||
resources.ApplyResources(this.comboBox2, "comboBox2");
|
this.comboBox2.Location = new System.Drawing.Point(4, 233);
|
||||||
|
this.comboBox2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.comboBox2.Name = "comboBox2";
|
this.comboBox2.Name = "comboBox2";
|
||||||
|
this.comboBox2.Size = new System.Drawing.Size(211, 20);
|
||||||
|
this.comboBox2.TabIndex = 17;
|
||||||
this.comboBox2.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
this.comboBox2.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
||||||
//
|
//
|
||||||
// comboBox1
|
// comboBox1
|
||||||
@ -330,170 +395,191 @@
|
|||||||
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.comboBox1.FormattingEnabled = true;
|
this.comboBox1.FormattingEnabled = true;
|
||||||
this.comboBox1.Items.AddRange(new object[] {
|
this.comboBox1.Items.AddRange(new object[] {
|
||||||
resources.GetString("comboBox1.Items"),
|
"KeyAB读写及增减值",
|
||||||
resources.GetString("comboBox1.Items1"),
|
"[只读]KeyAB读及减值/不可写及增值",
|
||||||
resources.GetString("comboBox1.Items2"),
|
"[只读]KeyAB读/不可写及增减值",
|
||||||
resources.GetString("comboBox1.Items3"),
|
"KeyB读写/不可增减值",
|
||||||
resources.GetString("comboBox1.Items4"),
|
"KeyAB读/KeyB写/不可增减值",
|
||||||
resources.GetString("comboBox1.Items5"),
|
"[只读]KeyB读/不可写及增减值",
|
||||||
resources.GetString("comboBox1.Items6"),
|
"KeyAB读及减值/KeyB写及增值",
|
||||||
resources.GetString("comboBox1.Items7")});
|
"[只读]锁死该扇区"});
|
||||||
resources.ApplyResources(this.comboBox1, "comboBox1");
|
this.comboBox1.Location = new System.Drawing.Point(4, 198);
|
||||||
|
this.comboBox1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.comboBox1.Name = "comboBox1";
|
this.comboBox1.Name = "comboBox1";
|
||||||
|
this.comboBox1.Size = new System.Drawing.Size(211, 20);
|
||||||
|
this.comboBox1.TabIndex = 16;
|
||||||
this.comboBox1.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
this.comboBox1.Validating += new System.ComponentModel.CancelEventHandler(this.comboBox1_Validating);
|
||||||
//
|
//
|
||||||
// label9
|
// label9
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label9, "label9");
|
this.label9.AutoSize = true;
|
||||||
|
this.label9.Location = new System.Drawing.Point(2, 289);
|
||||||
|
this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label9.Name = "label9";
|
this.label9.Name = "label9";
|
||||||
|
this.label9.Size = new System.Drawing.Size(89, 12);
|
||||||
|
this.label9.TabIndex = 15;
|
||||||
|
this.label9.Text = "Key/ACbits权限";
|
||||||
//
|
//
|
||||||
// label8
|
// label8
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label8, "label8");
|
this.label8.AutoSize = true;
|
||||||
|
this.label8.Location = new System.Drawing.Point(4, 254);
|
||||||
|
this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label8.Name = "label8";
|
this.label8.Name = "label8";
|
||||||
|
this.label8.Size = new System.Drawing.Size(47, 12);
|
||||||
|
this.label8.TabIndex = 14;
|
||||||
|
this.label8.Text = "2块权限";
|
||||||
//
|
//
|
||||||
// label7
|
// label7
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label7, "label7");
|
this.label7.AutoSize = true;
|
||||||
|
this.label7.Location = new System.Drawing.Point(2, 218);
|
||||||
|
this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label7.Name = "label7";
|
this.label7.Name = "label7";
|
||||||
|
this.label7.Size = new System.Drawing.Size(47, 12);
|
||||||
|
this.label7.TabIndex = 13;
|
||||||
|
this.label7.Text = "1块权限";
|
||||||
//
|
//
|
||||||
// label6
|
// label6
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label6, "label6");
|
this.label6.AutoSize = true;
|
||||||
|
this.label6.Location = new System.Drawing.Point(4, 183);
|
||||||
|
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label6.Name = "label6";
|
this.label6.Name = "label6";
|
||||||
|
this.label6.Size = new System.Drawing.Size(47, 12);
|
||||||
|
this.label6.TabIndex = 12;
|
||||||
|
this.label6.Text = "0块权限";
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label5, "label5");
|
this.label5.AutoSize = true;
|
||||||
|
this.label5.Location = new System.Drawing.Point(124, 146);
|
||||||
|
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label5.Name = "label5";
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(29, 12);
|
||||||
|
this.label5.TabIndex = 11;
|
||||||
|
this.label5.Text = "KeyB";
|
||||||
//
|
//
|
||||||
// keyBEdit
|
// keyBEdit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.keyBEdit, "keyBEdit");
|
this.keyBEdit.Location = new System.Drawing.Point(124, 161);
|
||||||
|
this.keyBEdit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.keyBEdit.Name = "keyBEdit";
|
this.keyBEdit.Name = "keyBEdit";
|
||||||
|
this.keyBEdit.Size = new System.Drawing.Size(91, 21);
|
||||||
|
this.keyBEdit.TabIndex = 10;
|
||||||
this.keyBEdit.Validating += new System.ComponentModel.CancelEventHandler(this.keyAEdit_Validating);
|
this.keyBEdit.Validating += new System.ComponentModel.CancelEventHandler(this.keyAEdit_Validating);
|
||||||
//
|
//
|
||||||
// keyAEdit
|
// keyAEdit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.keyAEdit, "keyAEdit");
|
this.keyAEdit.Location = new System.Drawing.Point(4, 161);
|
||||||
|
this.keyAEdit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.keyAEdit.Name = "keyAEdit";
|
this.keyAEdit.Name = "keyAEdit";
|
||||||
|
this.keyAEdit.Size = new System.Drawing.Size(91, 21);
|
||||||
|
this.keyAEdit.TabIndex = 9;
|
||||||
this.keyAEdit.TextChanged += new System.EventHandler(this.keyAEdit_TextChanged);
|
this.keyAEdit.TextChanged += new System.EventHandler(this.keyAEdit_TextChanged);
|
||||||
this.keyAEdit.Validating += new System.ComponentModel.CancelEventHandler(this.keyAEdit_Validating);
|
this.keyAEdit.Validating += new System.ComponentModel.CancelEventHandler(this.keyAEdit_Validating);
|
||||||
//
|
//
|
||||||
// block2Edit
|
// block2Edit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.block2Edit, "block2Edit");
|
this.block2Edit.Location = new System.Drawing.Point(4, 124);
|
||||||
|
this.block2Edit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.block2Edit.Name = "block2Edit";
|
this.block2Edit.Name = "block2Edit";
|
||||||
|
this.block2Edit.Size = new System.Drawing.Size(211, 21);
|
||||||
|
this.block2Edit.TabIndex = 8;
|
||||||
this.block2Edit.Validating += new System.ComponentModel.CancelEventHandler(this.block0Edit_Validating);
|
this.block2Edit.Validating += new System.ComponentModel.CancelEventHandler(this.block0Edit_Validating);
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label4, "label4");
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Location = new System.Drawing.Point(4, 146);
|
||||||
|
this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label4.Name = "label4";
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(29, 12);
|
||||||
|
this.label4.TabIndex = 7;
|
||||||
|
this.label4.Text = "KeyA";
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label3, "label3");
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(4, 110);
|
||||||
|
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(35, 12);
|
||||||
|
this.label3.TabIndex = 5;
|
||||||
|
this.label3.Text = "第2块";
|
||||||
//
|
//
|
||||||
// block1Edit
|
// block1Edit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.block1Edit, "block1Edit");
|
this.block1Edit.Location = new System.Drawing.Point(4, 87);
|
||||||
|
this.block1Edit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.block1Edit.Name = "block1Edit";
|
this.block1Edit.Name = "block1Edit";
|
||||||
|
this.block1Edit.Size = new System.Drawing.Size(211, 21);
|
||||||
|
this.block1Edit.TabIndex = 4;
|
||||||
this.block1Edit.Validating += new System.ComponentModel.CancelEventHandler(this.block0Edit_Validating);
|
this.block1Edit.Validating += new System.ComponentModel.CancelEventHandler(this.block0Edit_Validating);
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label2, "label2");
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(4, 73);
|
||||||
|
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label2.Name = "label2";
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(35, 12);
|
||||||
|
this.label2.TabIndex = 3;
|
||||||
|
this.label2.Text = "第1块";
|
||||||
//
|
//
|
||||||
// block0Edit
|
// block0Edit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.block0Edit, "block0Edit");
|
this.block0Edit.Location = new System.Drawing.Point(4, 50);
|
||||||
|
this.block0Edit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.block0Edit.Name = "block0Edit";
|
this.block0Edit.Name = "block0Edit";
|
||||||
|
this.block0Edit.Size = new System.Drawing.Size(211, 21);
|
||||||
|
this.block0Edit.TabIndex = 2;
|
||||||
this.block0Edit.Validating += new System.ComponentModel.CancelEventHandler(this.block0Edit_Validating);
|
this.block0Edit.Validating += new System.ComponentModel.CancelEventHandler(this.block0Edit_Validating);
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label1, "label1");
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(4, 36);
|
||||||
|
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(35, 12);
|
||||||
|
this.label1.TabIndex = 1;
|
||||||
|
this.label1.Text = "第0块";
|
||||||
//
|
//
|
||||||
// labelCurSec
|
// labelCurSec
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.labelCurSec, "labelCurSec");
|
this.labelCurSec.AutoSize = true;
|
||||||
|
this.labelCurSec.Location = new System.Drawing.Point(4, 17);
|
||||||
|
this.labelCurSec.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.labelCurSec.Name = "labelCurSec";
|
this.labelCurSec.Name = "labelCurSec";
|
||||||
|
this.labelCurSec.Size = new System.Drawing.Size(113, 12);
|
||||||
|
this.labelCurSec.TabIndex = 0;
|
||||||
|
this.labelCurSec.Text = "当前选定扇区:??";
|
||||||
//
|
//
|
||||||
// groupBox3
|
// groupBox3
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox3, "groupBox3");
|
|
||||||
this.groupBox3.Controls.Add(this.richTextBox1);
|
this.groupBox3.Controls.Add(this.richTextBox1);
|
||||||
|
this.groupBox3.Location = new System.Drawing.Point(424, 25);
|
||||||
|
this.groupBox3.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.groupBox3.Name = "groupBox3";
|
this.groupBox3.Name = "groupBox3";
|
||||||
|
this.groupBox3.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
|
this.groupBox3.Size = new System.Drawing.Size(195, 327);
|
||||||
|
this.groupBox3.TabIndex = 3;
|
||||||
this.groupBox3.TabStop = false;
|
this.groupBox3.TabStop = false;
|
||||||
|
this.groupBox3.Text = "输出";
|
||||||
//
|
//
|
||||||
// richTextBox1
|
// richTextBox1
|
||||||
//
|
//
|
||||||
this.richTextBox1.BackColor = System.Drawing.Color.Black;
|
this.richTextBox1.BackColor = System.Drawing.Color.Black;
|
||||||
this.richTextBox1.ForeColor = System.Drawing.Color.Cyan;
|
this.richTextBox1.ForeColor = System.Drawing.Color.Cyan;
|
||||||
resources.ApplyResources(this.richTextBox1, "richTextBox1");
|
this.richTextBox1.Location = new System.Drawing.Point(4, 19);
|
||||||
|
this.richTextBox1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.richTextBox1.Name = "richTextBox1";
|
this.richTextBox1.Name = "richTextBox1";
|
||||||
this.richTextBox1.ReadOnly = true;
|
this.richTextBox1.ReadOnly = true;
|
||||||
//
|
this.richTextBox1.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||||
// tableLayoutPanel1
|
this.richTextBox1.Size = new System.Drawing.Size(187, 304);
|
||||||
//
|
this.richTextBox1.TabIndex = 0;
|
||||||
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
|
this.richTextBox1.Text = "欢迎使用M1T的集成编辑器S50HTool!\n打开文件请点左上角文件-打开或Ctrl+O\n";
|
||||||
this.tableLayoutPanel1.Controls.Add(this.groupBox1, 0, 0);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.groupBox3, 2, 0);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.groupBox2, 1, 0);
|
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
|
||||||
//
|
|
||||||
// tableLayoutPanel2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel2, "tableLayoutPanel2");
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel3, 0, 3);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.tableLayoutPanel3, 0, 2);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel1, 0, 0);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.flowLayoutPanel2, 0, 1);
|
|
||||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
|
||||||
//
|
|
||||||
// flowLayoutPanel1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1");
|
|
||||||
this.flowLayoutPanel1.Controls.Add(this.labelCurSec);
|
|
||||||
this.flowLayoutPanel1.Controls.Add(this.buttonSaveSectorEdit);
|
|
||||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
|
||||||
//
|
|
||||||
// flowLayoutPanel2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.flowLayoutPanel2, "flowLayoutPanel2");
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.label1);
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.block0Edit);
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.label2);
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.block1Edit);
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.label3);
|
|
||||||
this.flowLayoutPanel2.Controls.Add(this.block2Edit);
|
|
||||||
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
|
|
||||||
//
|
|
||||||
// tableLayoutPanel3
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel3, "tableLayoutPanel3");
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.label4, 0, 0);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.keyAEdit, 0, 1);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.label5, 1, 0);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.keyBEdit, 1, 1);
|
|
||||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
|
||||||
//
|
|
||||||
// flowLayoutPanel3
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.flowLayoutPanel3, "flowLayoutPanel3");
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.label6);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.comboBox1);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.label7);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.comboBox2);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.label8);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.comboBox3);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.label9);
|
|
||||||
this.flowLayoutPanel3.Controls.Add(this.comboBox4);
|
|
||||||
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
|
|
||||||
//
|
//
|
||||||
// s50BindingSource
|
// s50BindingSource
|
||||||
//
|
//
|
||||||
@ -502,14 +588,19 @@
|
|||||||
// FormHTool
|
// FormHTool
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.buttonSaveSectorEdit;
|
this.AcceptButton = this.buttonSaveSectorEdit;
|
||||||
resources.ApplyResources(this, "$this");
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.Controls.Add(this.tableLayoutPanel1);
|
this.ClientSize = new System.Drawing.Size(628, 362);
|
||||||
|
this.Controls.Add(this.groupBox3);
|
||||||
|
this.Controls.Add(this.groupBox2);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
this.Controls.Add(this.menuStrip1);
|
this.Controls.Add(this.menuStrip1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
this.MainMenuStrip = this.menuStrip1;
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.Name = "FormHTool";
|
this.Name = "FormHTool";
|
||||||
|
this.Text = "S50HTool-beta";
|
||||||
this.Load += new System.EventHandler(this.FormHTool_Load);
|
this.Load += new System.EventHandler(this.FormHTool_Load);
|
||||||
this.menuStrip1.ResumeLayout(false);
|
this.menuStrip1.ResumeLayout(false);
|
||||||
this.menuStrip1.PerformLayout();
|
this.menuStrip1.PerformLayout();
|
||||||
@ -518,18 +609,6 @@
|
|||||||
this.groupBox2.ResumeLayout(false);
|
this.groupBox2.ResumeLayout(false);
|
||||||
this.groupBox2.PerformLayout();
|
this.groupBox2.PerformLayout();
|
||||||
this.groupBox3.ResumeLayout(false);
|
this.groupBox3.ResumeLayout(false);
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel1.PerformLayout();
|
|
||||||
this.tableLayoutPanel2.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel2.PerformLayout();
|
|
||||||
this.flowLayoutPanel1.ResumeLayout(false);
|
|
||||||
this.flowLayoutPanel1.PerformLayout();
|
|
||||||
this.flowLayoutPanel2.ResumeLayout(false);
|
|
||||||
this.flowLayoutPanel2.PerformLayout();
|
|
||||||
this.tableLayoutPanel3.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel3.PerformLayout();
|
|
||||||
this.flowLayoutPanel3.ResumeLayout(false);
|
|
||||||
this.flowLayoutPanel3.PerformLayout();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.s50BindingSource)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.s50BindingSource)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
@ -584,11 +663,5 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem 导入MCT格式ToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem 导入MCT格式ToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||||
private System.Windows.Forms.ToolStripMenuItem 列出全卡密钥ToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem 列出全卡密钥ToolStripMenuItem;
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -31,7 +30,7 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
int sectorIndex = dataGridView1.SelectedRows[0].Index;
|
int sectorIndex = dataGridView1.SelectedRows[0].Index;
|
||||||
reloadEdit(sectorIndex);
|
reloadEdit(sectorIndex);
|
||||||
logAppend(Resources.显示扇区 + sectorIndex.ToString());
|
logAppend("显示扇区" + sectorIndex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void logAppend(string msg)
|
private void logAppend(string msg)
|
||||||
@ -53,10 +52,10 @@ namespace MifareOneTool
|
|||||||
this.block2Edit.Text = "";
|
this.block2Edit.Text = "";
|
||||||
this.block1Edit.Text = "";
|
this.block1Edit.Text = "";
|
||||||
this.block0Edit.Text = "";
|
this.block0Edit.Text = "";
|
||||||
this.labelCurSec.Text = Resources.当前选定扇区;
|
this.labelCurSec.Text = "当前选定扇区:??";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
labelCurSec.Text = Resources.当前选定扇区0 + sectorIndex.ToString();
|
labelCurSec.Text = "当前选定扇区:" + sectorIndex.ToString();
|
||||||
block0Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[0]);
|
block0Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[0]);
|
||||||
block1Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[1]);
|
block1Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[1]);
|
||||||
block2Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[2]);
|
block2Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[2]);
|
||||||
@ -77,7 +76,7 @@ namespace MifareOneTool
|
|||||||
^ currentS50.Sectors[sectorIndex].Block[0][2]
|
^ currentS50.Sectors[sectorIndex].Block[0][2]
|
||||||
^ currentS50.Sectors[sectorIndex].Block[0][3]);
|
^ currentS50.Sectors[sectorIndex].Block[0][3]);
|
||||||
block0Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[0]);
|
block0Edit.Text = Form1.hex(currentS50.Sectors[sectorIndex].Block[0]);
|
||||||
msg += Resources.该扇区UID校验值错误_已经自动为您更正;
|
msg += "该扇区UID校验值错误,已经自动为您更正。\n";
|
||||||
}
|
}
|
||||||
if ((res & 0x02) == 0x02)
|
if ((res & 0x02) == 0x02)
|
||||||
{
|
{
|
||||||
@ -85,7 +84,7 @@ namespace MifareOneTool
|
|||||||
comboBox2.SelectedIndex = 0;
|
comboBox2.SelectedIndex = 0;
|
||||||
comboBox3.SelectedIndex = 0;
|
comboBox3.SelectedIndex = 0;
|
||||||
comboBox4.SelectedIndex = 1;
|
comboBox4.SelectedIndex = 1;
|
||||||
msg += Resources.该扇区访问控制位无效_写入将会损坏卡片_已重新设置;
|
msg += "该扇区访问控制位无效,写入将会损坏卡片,已重新设置。\n";
|
||||||
}
|
}
|
||||||
if ((res & 0x04) == 0x04)
|
if ((res & 0x04) == 0x04)
|
||||||
{
|
{
|
||||||
@ -93,7 +92,7 @@ namespace MifareOneTool
|
|||||||
comboBox2.SelectedIndex = 0;
|
comboBox2.SelectedIndex = 0;
|
||||||
comboBox3.SelectedIndex = 0;
|
comboBox3.SelectedIndex = 0;
|
||||||
comboBox4.SelectedIndex = 1;
|
comboBox4.SelectedIndex = 1;
|
||||||
msg += Resources.该扇区访问控制位损坏_写入将会损坏卡片_已重新设置;
|
msg += "该扇区访问控制位损坏,写入将会损坏卡片,已重新设置。\n";
|
||||||
}
|
}
|
||||||
if (res != 0x00) { MessageBox.Show(msg.Trim()); }
|
if (res != 0x00) { MessageBox.Show(msg.Trim()); }
|
||||||
|
|
||||||
@ -105,8 +104,8 @@ namespace MifareOneTool
|
|||||||
reloadEdit(-1);
|
reloadEdit(-1);
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_dump;
|
ofd.Filter = "MFD文件|*.mfd;*.dump";
|
||||||
ofd.Title = Resources.请选择需要打开的MFD文件;
|
ofd.Title = "请选择需要打开的MFD文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -123,12 +122,12 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ioe.Message, Resources.打开出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
this.currentS50 = new S50();
|
this.currentS50 = new S50();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
reloadList();
|
reloadList();
|
||||||
logAppend(Resources.打开了 + ofd.FileName);
|
logAppend("打开了" + ofd.FileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void reloadList()
|
private void reloadList()
|
||||||
@ -155,9 +154,9 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ex.Message, Resources.写入出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ex.Message, "写入出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
}
|
}
|
||||||
logAppend(Resources.已保存到 + currentFilename + Resources.res);
|
logAppend("已保存到" + currentFilename + "。");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -166,9 +165,9 @@ namespace MifareOneTool
|
|||||||
SaveFileDialog ofd = new SaveFileDialog();
|
SaveFileDialog ofd = new SaveFileDialog();
|
||||||
ofd.AddExtension = true;
|
ofd.AddExtension = true;
|
||||||
ofd.DefaultExt = ".mfd";
|
ofd.DefaultExt = ".mfd";
|
||||||
ofd.Title = Resources.请选择MFD文件保存位置及文件名;
|
ofd.Title = "请选择MFD文件保存位置及文件名";
|
||||||
ofd.OverwritePrompt = true;
|
ofd.OverwritePrompt = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_DUMP文件_dump;
|
ofd.Filter = "MFD文件|*.mfd|DUMP文件|*.dump";
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
filename = ofd.FileName;
|
filename = ofd.FileName;
|
||||||
@ -183,9 +182,9 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ex.Message, Resources.写入出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ex.Message, "写入出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
}
|
}
|
||||||
logAppend(Resources.已保存到 + filename + "。");
|
logAppend("已保存到" + filename + "。");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void block0Edit_Validating(object sender, CancelEventArgs e)
|
private void block0Edit_Validating(object sender, CancelEventArgs e)
|
||||||
@ -233,7 +232,7 @@ namespace MifareOneTool
|
|||||||
|| keyAEdit.BackColor != Color.Aquamarine
|
|| keyAEdit.BackColor != Color.Aquamarine
|
||||||
|| keyBEdit.BackColor != Color.Aquamarine)
|
|| keyBEdit.BackColor != Color.Aquamarine)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.当前扇区数据仍有错误_不能执行修改);
|
MessageBox.Show("当前扇区数据仍有错误,不能执行修改。");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
currentS50.Sectors[currentSector].Block[0] = Utils.Hex2Block(block0Edit.Text.Trim(),16);
|
currentS50.Sectors[currentSector].Block[0] = Utils.Hex2Block(block0Edit.Text.Trim(),16);
|
||||||
@ -258,14 +257,14 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
dataGridView1.Rows[i].Cells[0].Value = currentS50.Sectors[i].Info(i);
|
dataGridView1.Rows[i].Cells[0].Value = currentS50.Sectors[i].Info(i);
|
||||||
}
|
}
|
||||||
logAppend(Resources.已更新扇区 + currentSector.ToString());
|
logAppend("已更新扇区" + currentSector.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void comboBox1_Validating(object sender, CancelEventArgs e)
|
private void comboBox1_Validating(object sender, CancelEventArgs e)
|
||||||
{
|
{
|
||||||
ComboBox tb = ((ComboBox)sender);
|
ComboBox tb = ((ComboBox)sender);
|
||||||
if (tb.SelectedIndex < 0 || tb.Text == Resources._文件中的值错误)
|
if (tb.SelectedIndex < 0 || tb.Text == "##文件中的值错误##")
|
||||||
{
|
{
|
||||||
tb.BackColor = Color.Tomato;
|
tb.BackColor = Color.Tomato;
|
||||||
//e.Cancel = true;
|
//e.Cancel = true;
|
||||||
@ -281,29 +280,29 @@ namespace MifareOneTool
|
|||||||
int[] res = currentS50.Verify();
|
int[] res = currentS50.Verify();
|
||||||
if (res[16] == 0)
|
if (res[16] == 0)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.该文件一切正常);
|
MessageBox.Show("该文件一切正常。");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string msg = Resources.该文件存在以下错误;
|
string msg = "该文件存在以下错误:\n";
|
||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
msg += Resources.扇区 + i.ToString() + ":\n";
|
msg += "扇区" + i.ToString() + ":\n";
|
||||||
if ((res[i] & 0x01) == 0x01)
|
if ((res[i] & 0x01) == 0x01)
|
||||||
{
|
{
|
||||||
msg += Resources.该扇区UID校验值错误_请点击打开扇区0来自动更正;
|
msg += "该扇区UID校验值错误,请点击打开扇区0来自动更正。\n";
|
||||||
}
|
}
|
||||||
if ((res[i] & 0x02) == 0x02)
|
if ((res[i] & 0x02) == 0x02)
|
||||||
{
|
{
|
||||||
msg += Resources.该扇区访问控制位无效_写入将会损坏卡片_请重新设置;
|
msg += "该扇区访问控制位无效,写入将会损坏卡片,请重新设置。\n";
|
||||||
}
|
}
|
||||||
if ((res[i] & 0x04) == 0x04)
|
if ((res[i] & 0x04) == 0x04)
|
||||||
{
|
{
|
||||||
msg += Resources.该扇区访问控制位损坏_写入将会损坏卡片_请重新设置;
|
msg += "该扇区访问控制位损坏,写入将会损坏卡片,请重新设置。\n";
|
||||||
}
|
}
|
||||||
if (res[i] == 0)
|
if (res[i] == 0)
|
||||||
{
|
{
|
||||||
msg += Resources.该扇区一切正常;
|
msg += "该扇区一切正常。\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
richTextBox1.Clear();
|
richTextBox1.Clear();
|
||||||
@ -317,11 +316,11 @@ namespace MifareOneTool
|
|||||||
byte[] buid = new byte[4];
|
byte[] buid = new byte[4];
|
||||||
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
|
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
|
||||||
rng.GetNonZeroBytes(buid);
|
rng.GetNonZeroBytes(buid);
|
||||||
string uid = Interaction.InputBox(Resources.请输入需要更改的UID卡号_共8位十六进制数_如E44A3B, Resources.请输入UID号, Form1.hex(buid), -1, -1).Trim();
|
string uid = Interaction.InputBox("请输入需要更改的UID卡号,共8位十六进制数,如E44A3BF1。", "请输入UID号", Form1.hex(buid), -1, -1).Trim();
|
||||||
string pat = "[0-9A-Fa-f]{8}";
|
string pat = "[0-9A-Fa-f]{8}";
|
||||||
if (!Regex.IsMatch(uid, pat))
|
if (!Regex.IsMatch(uid, pat))
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.输入的UID号不合法, Resources.InputError, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show("输入的UID号不合法", "InputError", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
buid = Utils.Hex2Block(uid, 4);
|
buid = Utils.Hex2Block(uid, 4);
|
||||||
@ -331,7 +330,7 @@ namespace MifareOneTool
|
|||||||
currentS50.Sectors[0].Block[0][2] = buid[2];
|
currentS50.Sectors[0].Block[0][2] = buid[2];
|
||||||
currentS50.Sectors[0].Block[0][3] = buid[3];
|
currentS50.Sectors[0].Block[0][3] = buid[3];
|
||||||
currentS50.Sectors[0].Block[0][4] = bcc;
|
currentS50.Sectors[0].Block[0][4] = bcc;
|
||||||
logAppend(Resources.UID已改为 + Form1.hex(buid) + Resources._计算得到BCC + Form1.hex(new byte[]{bcc}));
|
logAppend("UID已改为" + Form1.hex(buid) + ",计算得到BCC=" + Form1.hex(new byte[]{bcc}));
|
||||||
reloadEdit(0);
|
reloadEdit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,7 +339,7 @@ namespace MifareOneTool
|
|||||||
reloadEdit(-1);
|
reloadEdit(-1);
|
||||||
this.currentS50 = new S50();
|
this.currentS50 = new S50();
|
||||||
reloadList();
|
reloadList();
|
||||||
logAppend(Resources.已重置并新建卡);
|
logAppend("已重置并新建卡。");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 检查并纠正全卡ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 检查并纠正全卡ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -349,14 +348,14 @@ namespace MifareOneTool
|
|||||||
int[] res = currentS50.Verify();
|
int[] res = currentS50.Verify();
|
||||||
if (res[16] == 0)
|
if (res[16] == 0)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.该文件一切正常);
|
MessageBox.Show("该文件一切正常。");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
string msg = Resources.该文件存在以下错误;
|
string msg = "该文件存在以下错误:\n";
|
||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
msg += Resources.扇区 + i.ToString() + ":\n";
|
msg += "扇区" + i.ToString() + ":\n";
|
||||||
if ((res[i] & 0x01) == 0x01)
|
if ((res[i] & 0x01) == 0x01)
|
||||||
{
|
{
|
||||||
currentS50.Sectors[i].Block[0][4]
|
currentS50.Sectors[i].Block[0][4]
|
||||||
@ -365,7 +364,7 @@ namespace MifareOneTool
|
|||||||
^ currentS50.Sectors[i].Block[0][2]
|
^ currentS50.Sectors[i].Block[0][2]
|
||||||
^ currentS50.Sectors[i].Block[0][3]);
|
^ currentS50.Sectors[i].Block[0][3]);
|
||||||
block0Edit.Text = Form1.hex(currentS50.Sectors[i].Block[0]);
|
block0Edit.Text = Form1.hex(currentS50.Sectors[i].Block[0]);
|
||||||
msg += Resources.该扇区UID校验值错误_已自动更正;
|
msg += "该扇区UID校验值错误,已自动更正。\n";
|
||||||
}
|
}
|
||||||
if ((res[i] & 0x02) == 0x02)
|
if ((res[i] & 0x02) == 0x02)
|
||||||
{
|
{
|
||||||
@ -373,7 +372,7 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6];
|
currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6];
|
||||||
}
|
}
|
||||||
msg += Resources.该扇区访问控制位无效_写入将会损坏卡片_已重新设置;
|
msg += "该扇区访问控制位无效,写入将会损坏卡片,已重新设置。\n";
|
||||||
}
|
}
|
||||||
if ((res[i] & 0x04) == 0x04)
|
if ((res[i] & 0x04) == 0x04)
|
||||||
{
|
{
|
||||||
@ -381,11 +380,11 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6];
|
currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6];
|
||||||
}
|
}
|
||||||
msg += Resources.该扇区访问控制位损坏_写入将会损坏卡片_已重新设置;
|
msg += "该扇区访问控制位损坏,写入将会损坏卡片,已重新设置。\n";
|
||||||
}
|
}
|
||||||
if (res[i] == 0)
|
if (res[i] == 0)
|
||||||
{
|
{
|
||||||
msg += Resources.该扇区一切正常;
|
msg += "该扇区一切正常。\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
richTextBox1.Clear();
|
richTextBox1.Clear();
|
||||||
@ -399,9 +398,9 @@ namespace MifareOneTool
|
|||||||
SaveFileDialog ofd = new SaveFileDialog();
|
SaveFileDialog ofd = new SaveFileDialog();
|
||||||
ofd.AddExtension = true;
|
ofd.AddExtension = true;
|
||||||
ofd.DefaultExt = ".txt";
|
ofd.DefaultExt = ".txt";
|
||||||
ofd.Title = Resources.请选择MCT_txt文件保存位置及文件名;
|
ofd.Title = "请选择MCT.txt文件保存位置及文件名";
|
||||||
ofd.OverwritePrompt = true;
|
ofd.OverwritePrompt = true;
|
||||||
ofd.Filter = Resources.txt文件_txt;
|
ofd.Filter = "txt文件|*.txt";
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
filename = ofd.FileName;
|
filename = ofd.FileName;
|
||||||
@ -416,9 +415,9 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ex.Message, Resources.写入出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ex.Message, "写入出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
}
|
}
|
||||||
logAppend(Resources.已导出MCT文件 + filename + "。");
|
logAppend("已导出MCT文件" + filename + "。");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 导出密钥字典ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 导出密钥字典ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -427,9 +426,9 @@ namespace MifareOneTool
|
|||||||
SaveFileDialog ofd = new SaveFileDialog();
|
SaveFileDialog ofd = new SaveFileDialog();
|
||||||
ofd.AddExtension = true;
|
ofd.AddExtension = true;
|
||||||
ofd.DefaultExt = ".dic";
|
ofd.DefaultExt = ".dic";
|
||||||
ofd.Title = Resources.请选择密钥字典文件保存位置及文件名;
|
ofd.Title = "请选择密钥字典文件保存位置及文件名";
|
||||||
ofd.OverwritePrompt = true;
|
ofd.OverwritePrompt = true;
|
||||||
ofd.Filter = Resources.字典文件_dic;
|
ofd.Filter = "字典文件|*.dic";
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
filename = ofd.FileName;
|
filename = ofd.FileName;
|
||||||
@ -439,7 +438,7 @@ namespace MifareOneTool
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
File.WriteAllLines(filename, this.currentS50.KeyListStr().ToArray());
|
File.WriteAllLines(filename, this.currentS50.KeyListStr().ToArray());
|
||||||
logAppend(Resources.已导出密钥字典文件 + filename + "。");
|
logAppend("已导出密钥字典文件" + filename + "。");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 导入MCT格式ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 导入MCT格式ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -447,8 +446,8 @@ namespace MifareOneTool
|
|||||||
reloadEdit(-1);
|
reloadEdit(-1);
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MCT格式;
|
ofd.Filter = "MCT格式|*.*";
|
||||||
ofd.Title = Resources.请选择需要打开的MCT格式文件;
|
ofd.Title = "请选择需要打开的MCT格式文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -465,12 +464,12 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
MessageBox.Show(ioe.Message, Resources.打开出错, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
this.currentS50 = new S50();
|
this.currentS50 = new S50();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
reloadList();
|
reloadList();
|
||||||
logAppend(Resources.打开了 + ofd.FileName);
|
logAppend("打开了" + ofd.FileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 列出全卡密钥ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 列出全卡密钥ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -478,7 +477,7 @@ namespace MifareOneTool
|
|||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
sb.AppendLine(Resources._扇区 + i.ToString());
|
sb.AppendLine("#扇区 " + i.ToString());
|
||||||
sb.AppendLine("[A] " + Utils.Hex2Str(this.currentS50.Sectors[i].KeyA));
|
sb.AppendLine("[A] " + Utils.Hex2Str(this.currentS50.Sectors[i].KeyA));
|
||||||
sb.AppendLine("[B] " + Utils.Hex2Str(this.currentS50.Sectors[i].KeyB));
|
sb.AppendLine("[B] " + Utils.Hex2Str(this.currentS50.Sectors[i].KeyB));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,317 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="buttonSaveSectorEdit.Text" xml:space="preserve">
|
|
||||||
<value>Изменить сектор (Enter)</value>
|
|
||||||
</data>
|
|
||||||
<data name="Column1.HeaderText" xml:space="preserve">
|
|
||||||
<value>Cектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items" xml:space="preserve">
|
|
||||||
<value>KeyAB читать, писать, увеличивать и уменьшать</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items1" xml:space="preserve">
|
|
||||||
<value>[только для чтения] KeyAB для чтения и амортизации / недоступен для записи и добавляет ценность</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items2" xml:space="preserve">
|
|
||||||
<value>[только для чтения] KeyAB для чтения / записи, а также для увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items3" xml:space="preserve">
|
|
||||||
<value>KeyB чтение / запись / не сложение и вычитание</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items4" xml:space="preserve">
|
|
||||||
<value>KeyAB чтение / KeyB запись / без увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items5" xml:space="preserve">
|
|
||||||
<value>[Только для чтения] KeyB для чтения / не для записи и увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items6" xml:space="preserve">
|
|
||||||
<value>KeyAB чтение и ухудшение / KeyB написание и добавленная стоимость</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items7" xml:space="preserve">
|
|
||||||
<value>[только для чтения] заблокировать сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items" xml:space="preserve">
|
|
||||||
<value>KeyAB читать, писать, увеличивать и уменьшать</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items1" xml:space="preserve">
|
|
||||||
<value>[только для чтения] KeyAB для чтения и амортизации / недоступен для записи и добавляет ценность</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items2" xml:space="preserve">
|
|
||||||
<value>[только для чтения] KeyAB для чтения / записи, а также для увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items3" xml:space="preserve">
|
|
||||||
<value>KeyB чтение / запись / не сложение и вычитание</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items4" xml:space="preserve">
|
|
||||||
<value>KeyAB чтение / KeyB запись / без увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items5" xml:space="preserve">
|
|
||||||
<value>[Только для чтения] KeyB для чтения / не для записи и увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items6" xml:space="preserve">
|
|
||||||
<value>KeyAB чтение и ухудшение / KeyB написание и добавленная стоимость</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items7" xml:space="preserve">
|
|
||||||
<value>[только для чтения] заблокировать сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items" xml:space="preserve">
|
|
||||||
<value>KeyAB читать, писать, увеличивать и уменьшать</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items1" xml:space="preserve">
|
|
||||||
<value>[только для чтения] KeyAB для чтения и амортизации / недоступен для записи и добавляет ценность</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items2" xml:space="preserve">
|
|
||||||
<value>[только для чтения] KeyAB для чтения / записи, а также для увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items3" xml:space="preserve">
|
|
||||||
<value>KeyB чтение / запись / не сложение и вычитание</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items4" xml:space="preserve">
|
|
||||||
<value>KeyAB чтение / KeyB запись / без увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items5" xml:space="preserve">
|
|
||||||
<value>[Только для чтения] KeyB для чтения / не для записи и увеличения или уменьшения</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items6" xml:space="preserve">
|
|
||||||
<value>KeyAB чтение и ухудшение / KeyB написание и добавленная стоимость</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items7" xml:space="preserve">
|
|
||||||
<value>[только для чтения] заблокировать сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items" xml:space="preserve">
|
|
||||||
<value>[Необратимый] KeyA: запись / AC: только чтение / KeyB: чтение и запись</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items1" xml:space="preserve">
|
|
||||||
<value>KeyA: запись / AC: чтение / запись / KeyB: чтение и запись</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items2" xml:space="preserve">
|
|
||||||
<value>[Необратимый] KeyA: невозможно чтение / запись / AC: только для чтения / KeyB: чтение</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items3" xml:space="preserve">
|
|
||||||
<value>KeyA: B запись / AC: A только для чтения B чтение / запись / KeyB: B запись</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items4" xml:space="preserve">
|
|
||||||
<value>[необратимый] KeyA: запись B / AC: только чтение AB / KeyB: запись B</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items5" xml:space="preserve">
|
|
||||||
<value>KeyA: невозможно чтение / запись / AC: A только для чтения B чтение / запись / KeyB: невозможно чтение или запись</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items6" xml:space="preserve">
|
|
||||||
<value>[Необратимый] KeyA: невозможно чтение / запись / AC: AB только для чтения / KeyB: невозможно чтение или запись</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items7" xml:space="preserve">
|
|
||||||
<value>[Необратимый] KeyA: невозможно чтение / запись / AC: AB только для чтения / KeyB: невозможно чтение или запись (повторяется?)</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>Редактор дампа (бета)</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>Список секторов</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>Информация о секторе</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Text" xml:space="preserve">
|
|
||||||
<value>Просмотр</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>Блок 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>Блок 1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>Блок 2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Text" xml:space="preserve">
|
|
||||||
<value>Ключ A</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>Ключ B</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>Условия доступа блока 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Text" xml:space="preserve">
|
|
||||||
<value>Условия доступа блока 1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label8.Text" xml:space="preserve">
|
|
||||||
<value>Условия доступа блока 2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Text" xml:space="preserve">
|
|
||||||
<value>Ключ / ACbits разрешение</value>
|
|
||||||
</data>
|
|
||||||
<data name="labelCurSec.Text" xml:space="preserve">
|
|
||||||
<value>Текущий выбранный сектор: ?</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>Добро пожаловать в интегрированный редактор M1T S50HTool!</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[1]" xml:space="preserve">
|
|
||||||
<value>Откройте файл, пожалуйста, нажмите на файл в верхнем левом углу - открыть или Ctrl + O</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Text" xml:space="preserve">
|
|
||||||
<value>Добро пожаловать в интегрированный редактор дампа!
|
|
||||||
Чтобы открыть файл, пожалуйста, нажмите на Файл в верхнем левом углу - Открыть или Ctrl + O
|
|
||||||
Вы можете обновить данные вашей карты.</value>
|
|
||||||
</data>
|
|
||||||
<data name="保存ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Сохранить</value>
|
|
||||||
</data>
|
|
||||||
<data name="修改UIDToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Изменить UID</value>
|
|
||||||
</data>
|
|
||||||
<data name="列出全卡密钥ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Перечислите полный ключ карты</value>
|
|
||||||
</data>
|
|
||||||
<data name="另存为ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Сохранить как</value>
|
|
||||||
</data>
|
|
||||||
<data name="导入MCT格式ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Импортировать формат MCT</value>
|
|
||||||
</data>
|
|
||||||
<data name="导出为MCT格式ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Экспорт в формат MCT</value>
|
|
||||||
</data>
|
|
||||||
<data name="导出密钥字典ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Словарь ключей экспорта</value>
|
|
||||||
</data>
|
|
||||||
<data name="工具ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Инструменты</value>
|
|
||||||
</data>
|
|
||||||
<data name="打开ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Открыть</value>
|
|
||||||
</data>
|
|
||||||
<data name="文件ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Файл</value>
|
|
||||||
</data>
|
|
||||||
<data name="新建ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Создать</value>
|
|
||||||
</data>
|
|
||||||
<data name="检查全卡ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Проверка полной карты</value>
|
|
||||||
</data>
|
|
||||||
<data name="检查并纠正全卡ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Проверка и исправление полной карты</value>
|
|
||||||
</data>
|
|
||||||
<data name="退出ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>Выход</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,320 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="buttonSaveSectorEdit.Text" xml:space="preserve">
|
|
||||||
<value>修改扇区(Enter)</value>
|
|
||||||
</data>
|
|
||||||
<data name="Column1.HeaderText" xml:space="preserve">
|
|
||||||
<value>扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items" xml:space="preserve">
|
|
||||||
<value>KeyAB读写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items1" xml:space="preserve">
|
|
||||||
<value>[只读]KeyAB读及减值/不可写及增值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items2" xml:space="preserve">
|
|
||||||
<value>[只读]KeyAB读/不可写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items3" xml:space="preserve">
|
|
||||||
<value>KeyB读写/不可增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items4" xml:space="preserve">
|
|
||||||
<value>KeyAB读/KeyB写/不可增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items5" xml:space="preserve">
|
|
||||||
<value>[只读]KeyB读/不可写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items6" xml:space="preserve">
|
|
||||||
<value>KeyAB读及减值/KeyB写及增值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox1.Items7" xml:space="preserve">
|
|
||||||
<value>[只读]锁死该扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items" xml:space="preserve">
|
|
||||||
<value>KeyAB读写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items1" xml:space="preserve">
|
|
||||||
<value>[只读]KeyAB读及减值/不可写及增值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items2" xml:space="preserve">
|
|
||||||
<value>[只读]KeyAB读/不可写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items3" xml:space="preserve">
|
|
||||||
<value>KeyB读写/不可增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items4" xml:space="preserve">
|
|
||||||
<value>KeyAB读/KeyB写/不可增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items5" xml:space="preserve">
|
|
||||||
<value>[只读]KeyB读/不可写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items6" xml:space="preserve">
|
|
||||||
<value>KeyAB读及减值/KeyB写及增值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox2.Items7" xml:space="preserve">
|
|
||||||
<value>[只读]锁死该扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items" xml:space="preserve">
|
|
||||||
<value>KeyAB读写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items1" xml:space="preserve">
|
|
||||||
<value>[只读]KeyAB读及减值/不可写及增值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items2" xml:space="preserve">
|
|
||||||
<value>[只读]KeyAB读/不可写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items3" xml:space="preserve">
|
|
||||||
<value>KeyB读写/不可增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items4" xml:space="preserve">
|
|
||||||
<value>KeyAB读/KeyB写/不可增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items5" xml:space="preserve">
|
|
||||||
<value>[只读]KeyB读/不可写及增减值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items6" xml:space="preserve">
|
|
||||||
<value>KeyAB读及减值/KeyB写及增值</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox3.Items7" xml:space="preserve">
|
|
||||||
<value>[只读]锁死该扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items" xml:space="preserve">
|
|
||||||
<value>[不可逆]KeyA:A写/AC:A只读/KeyB:A读写</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items1" xml:space="preserve">
|
|
||||||
<value>KeyA:A写/AC:A读写/KeyB:A读写</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items2" xml:space="preserve">
|
|
||||||
<value>[不可逆]KeyA:不能读写/AC:A只读/KeyB:A读</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items3" xml:space="preserve">
|
|
||||||
<value>KeyA:B写/AC:A只读B读写/KeyB:B写</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items4" xml:space="preserve">
|
|
||||||
<value>[不可逆]KeyA:B写/AC:AB只读/KeyB:B写</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items5" xml:space="preserve">
|
|
||||||
<value>KeyA:不能读写/AC:A只读B读写/KeyB:不能读写</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items6" xml:space="preserve">
|
|
||||||
<value>[不可逆]KeyA:不能读写/AC:AB只读/KeyB:不能读写</value>
|
|
||||||
</data>
|
|
||||||
<data name="comboBox4.Items7" xml:space="preserve">
|
|
||||||
<value>[不可逆]KeyA:不能读写/AC:AB只读/KeyB:不能读写(重复了?)</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>S50HTool-beta</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>扇区列表</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>扇区信息</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Text" xml:space="preserve">
|
|
||||||
<value>输出</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>第0块</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>第1块</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>第2块</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Text" xml:space="preserve">
|
|
||||||
<value>KeyA</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>KeyB</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>0块权限</value>
|
|
||||||
</data>
|
|
||||||
<data name="label7.Text" xml:space="preserve">
|
|
||||||
<value>1块权限</value>
|
|
||||||
</data>
|
|
||||||
<data name="label8.Text" xml:space="preserve">
|
|
||||||
<value>2块权限</value>
|
|
||||||
</data>
|
|
||||||
<data name="label9.Text" xml:space="preserve">
|
|
||||||
<value>Key/ACbits权限</value>
|
|
||||||
</data>
|
|
||||||
<data name="labelCurSec.Text" xml:space="preserve">
|
|
||||||
<value>当前选定扇区:??</value>
|
|
||||||
</data>
|
|
||||||
<data name="menuStrip1.Text" xml:space="preserve">
|
|
||||||
<value>menuStrip1</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>欢迎使用M1T的集成编辑器S50HTool!</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Lines[1]" xml:space="preserve">
|
|
||||||
<value>打开文件请点左上角文件-打开或Ctrl+O</value>
|
|
||||||
</data>
|
|
||||||
<data name="richTextBox1.Text" xml:space="preserve">
|
|
||||||
<value>欢迎使用M1T的集成编辑器S50HTool!
|
|
||||||
打开文件请点左上角文件-打开或Ctrl+O
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="保存ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>保存</value>
|
|
||||||
</data>
|
|
||||||
<data name="修改UIDToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>修改UID</value>
|
|
||||||
</data>
|
|
||||||
<data name="列出全卡密钥ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>列出全卡密钥</value>
|
|
||||||
</data>
|
|
||||||
<data name="另存为ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>另存为</value>
|
|
||||||
</data>
|
|
||||||
<data name="导入MCT格式ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>导入MCT格式</value>
|
|
||||||
</data>
|
|
||||||
<data name="导出为MCT格式ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>导出为MCT格式</value>
|
|
||||||
</data>
|
|
||||||
<data name="导出密钥字典ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>导出密钥字典</value>
|
|
||||||
</data>
|
|
||||||
<data name="工具ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>工具</value>
|
|
||||||
</data>
|
|
||||||
<data name="打开ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>打开</value>
|
|
||||||
</data>
|
|
||||||
<data name="文件ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="新建ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>新建</value>
|
|
||||||
</data>
|
|
||||||
<data name="检查全卡ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>检查全卡</value>
|
|
||||||
</data>
|
|
||||||
<data name="检查并纠正全卡ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>检查并纠正全卡</value>
|
|
||||||
</data>
|
|
||||||
<data name="退出ToolStripMenuItem.Text" xml:space="preserve">
|
|
||||||
<value>退出</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
228
MifareOneTool/FormHardNes.Designer.cs
generated
@ -28,7 +28,6 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormHardNes));
|
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
this.button2 = new System.Windows.Forms.Button();
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
@ -47,210 +46,237 @@
|
|||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
this.checkBoxColOnly = new System.Windows.Forms.CheckBox();
|
this.checkBoxColOnly = new System.Windows.Forms.CheckBox();
|
||||||
this.sector2 = new System.Windows.Forms.TextBox();
|
this.sector2 = new System.Windows.Forms.TextBox();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel();
|
|
||||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
this.groupBox2.SuspendLayout();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
|
||||||
this.tableLayoutPanel2.SuspendLayout();
|
|
||||||
this.tableLayoutPanel3.SuspendLayout();
|
|
||||||
this.tableLayoutPanel4.SuspendLayout();
|
|
||||||
this.tableLayoutPanel5.SuspendLayout();
|
|
||||||
this.flowLayoutPanel1.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// button1
|
// button1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button1, "button1");
|
this.button1.Location = new System.Drawing.Point(231, 150);
|
||||||
|
this.button1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.button1.Name = "button1";
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(56, 20);
|
||||||
|
this.button1.TabIndex = 0;
|
||||||
|
this.button1.Text = "执行!";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||||
//
|
//
|
||||||
// button2
|
// button2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.button2, "button2");
|
|
||||||
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
this.button2.Location = new System.Drawing.Point(170, 150);
|
||||||
|
this.button2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.button2.Name = "button2";
|
this.button2.Name = "button2";
|
||||||
|
this.button2.Size = new System.Drawing.Size(56, 20);
|
||||||
|
this.button2.TabIndex = 1;
|
||||||
|
this.button2.Text = "取消";
|
||||||
this.button2.UseVisualStyleBackColor = true;
|
this.button2.UseVisualStyleBackColor = true;
|
||||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
this.groupBox1.Controls.Add(this.radioKey1B);
|
||||||
this.groupBox1.Controls.Add(this.tableLayoutPanel1);
|
this.groupBox1.Controls.Add(this.radioKey1A);
|
||||||
|
this.groupBox1.Controls.Add(this.label4);
|
||||||
|
this.groupBox1.Controls.Add(this.label3);
|
||||||
|
this.groupBox1.Controls.Add(this.sector1);
|
||||||
|
this.groupBox1.Controls.Add(this.keyEdit);
|
||||||
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
|
this.groupBox1.Location = new System.Drawing.Point(9, 10);
|
||||||
|
this.groupBox1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(278, 65);
|
||||||
|
this.groupBox1.TabIndex = 2;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "目标卡-已知信息";
|
||||||
//
|
//
|
||||||
// radioKey1B
|
// radioKey1B
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.radioKey1B, "radioKey1B");
|
this.radioKey1B.AutoSize = true;
|
||||||
|
this.radioKey1B.Location = new System.Drawing.Point(194, 32);
|
||||||
|
this.radioKey1B.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.radioKey1B.Name = "radioKey1B";
|
this.radioKey1B.Name = "radioKey1B";
|
||||||
|
this.radioKey1B.Size = new System.Drawing.Size(47, 16);
|
||||||
|
this.radioKey1B.TabIndex = 15;
|
||||||
|
this.radioKey1B.Text = "KeyB";
|
||||||
this.radioKey1B.UseVisualStyleBackColor = true;
|
this.radioKey1B.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// radioKey1A
|
// radioKey1A
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.radioKey1A, "radioKey1A");
|
this.radioKey1A.AutoSize = true;
|
||||||
this.radioKey1A.Checked = true;
|
this.radioKey1A.Checked = true;
|
||||||
|
this.radioKey1A.Location = new System.Drawing.Point(145, 32);
|
||||||
|
this.radioKey1A.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.radioKey1A.Name = "radioKey1A";
|
this.radioKey1A.Name = "radioKey1A";
|
||||||
|
this.radioKey1A.Size = new System.Drawing.Size(47, 16);
|
||||||
|
this.radioKey1A.TabIndex = 14;
|
||||||
this.radioKey1A.TabStop = true;
|
this.radioKey1A.TabStop = true;
|
||||||
|
this.radioKey1A.Text = "KeyA";
|
||||||
this.radioKey1A.UseVisualStyleBackColor = true;
|
this.radioKey1A.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label4, "label4");
|
this.label4.AutoSize = true;
|
||||||
|
this.label4.Location = new System.Drawing.Point(142, 17);
|
||||||
|
this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label4.Name = "label4";
|
this.label4.Name = "label4";
|
||||||
|
this.label4.Size = new System.Drawing.Size(29, 12);
|
||||||
|
this.label4.TabIndex = 13;
|
||||||
|
this.label4.Text = "类型";
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label3, "label3");
|
this.label3.AutoSize = true;
|
||||||
|
this.label3.Location = new System.Drawing.Point(99, 17);
|
||||||
|
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
|
this.label3.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label3.TabIndex = 12;
|
||||||
|
this.label3.Text = "扇区号";
|
||||||
//
|
//
|
||||||
// sector1
|
// sector1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.sector1, "sector1");
|
this.sector1.Location = new System.Drawing.Point(101, 31);
|
||||||
|
this.sector1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.sector1.Name = "sector1";
|
this.sector1.Name = "sector1";
|
||||||
|
this.sector1.Size = new System.Drawing.Size(36, 21);
|
||||||
|
this.sector1.TabIndex = 11;
|
||||||
|
this.sector1.Text = "0";
|
||||||
//
|
//
|
||||||
// keyEdit
|
// keyEdit
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.keyEdit, "keyEdit");
|
this.keyEdit.Location = new System.Drawing.Point(7, 31);
|
||||||
|
this.keyEdit.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.keyEdit.Name = "keyEdit";
|
this.keyEdit.Name = "keyEdit";
|
||||||
|
this.keyEdit.Size = new System.Drawing.Size(91, 21);
|
||||||
|
this.keyEdit.TabIndex = 10;
|
||||||
|
this.keyEdit.Text = "ffffffffffff";
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label2, "label2");
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(4, 17);
|
||||||
|
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label2.Name = "label2";
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(59, 12);
|
||||||
|
this.label2.TabIndex = 0;
|
||||||
|
this.label2.Text = "已知的Key";
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label1, "label1");
|
this.label1.AutoSize = true;
|
||||||
this.label1.ForeColor = System.Drawing.Color.Blue;
|
this.label1.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.label1.Location = new System.Drawing.Point(9, 154);
|
||||||
|
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(161, 12);
|
||||||
|
this.label1.TabIndex = 3;
|
||||||
|
this.label1.Text = "连续工作时请注意设备散热!";
|
||||||
//
|
//
|
||||||
// radioKey2B
|
// radioKey2B
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.radioKey2B, "radioKey2B");
|
this.radioKey2B.AutoSize = true;
|
||||||
|
this.radioKey2B.Location = new System.Drawing.Point(194, 32);
|
||||||
|
this.radioKey2B.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.radioKey2B.Name = "radioKey2B";
|
this.radioKey2B.Name = "radioKey2B";
|
||||||
|
this.radioKey2B.Size = new System.Drawing.Size(47, 16);
|
||||||
|
this.radioKey2B.TabIndex = 15;
|
||||||
|
this.radioKey2B.Text = "KeyB";
|
||||||
this.radioKey2B.UseVisualStyleBackColor = true;
|
this.radioKey2B.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// radioKey2A
|
// radioKey2A
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.radioKey2A, "radioKey2A");
|
this.radioKey2A.AutoSize = true;
|
||||||
this.radioKey2A.Checked = true;
|
this.radioKey2A.Checked = true;
|
||||||
|
this.radioKey2A.Location = new System.Drawing.Point(145, 32);
|
||||||
|
this.radioKey2A.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.radioKey2A.Name = "radioKey2A";
|
this.radioKey2A.Name = "radioKey2A";
|
||||||
|
this.radioKey2A.Size = new System.Drawing.Size(47, 16);
|
||||||
|
this.radioKey2A.TabIndex = 14;
|
||||||
this.radioKey2A.TabStop = true;
|
this.radioKey2A.TabStop = true;
|
||||||
|
this.radioKey2A.Text = "KeyA";
|
||||||
this.radioKey2A.UseVisualStyleBackColor = true;
|
this.radioKey2A.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label5, "label5");
|
this.label5.AutoSize = true;
|
||||||
|
this.label5.Location = new System.Drawing.Point(142, 17);
|
||||||
|
this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label5.Name = "label5";
|
this.label5.Name = "label5";
|
||||||
|
this.label5.Size = new System.Drawing.Size(29, 12);
|
||||||
|
this.label5.TabIndex = 13;
|
||||||
|
this.label5.Text = "类型";
|
||||||
//
|
//
|
||||||
// label6
|
// label6
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label6, "label6");
|
this.label6.AutoSize = true;
|
||||||
|
this.label6.Location = new System.Drawing.Point(99, 17);
|
||||||
|
this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
this.label6.Name = "label6";
|
this.label6.Name = "label6";
|
||||||
|
this.label6.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.label6.TabIndex = 12;
|
||||||
|
this.label6.Text = "扇区号";
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
this.groupBox2.Controls.Add(this.checkBoxColOnly);
|
||||||
this.groupBox2.Controls.Add(this.tableLayoutPanel4);
|
this.groupBox2.Controls.Add(this.radioKey2B);
|
||||||
|
this.groupBox2.Controls.Add(this.radioKey2A);
|
||||||
|
this.groupBox2.Controls.Add(this.label5);
|
||||||
|
this.groupBox2.Controls.Add(this.label6);
|
||||||
|
this.groupBox2.Controls.Add(this.sector2);
|
||||||
|
this.groupBox2.Location = new System.Drawing.Point(9, 79);
|
||||||
|
this.groupBox2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
|
this.groupBox2.Size = new System.Drawing.Size(278, 65);
|
||||||
|
this.groupBox2.TabIndex = 16;
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
|
this.groupBox2.Text = "目标扇区解密设置";
|
||||||
//
|
//
|
||||||
// checkBoxColOnly
|
// checkBoxColOnly
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.checkBoxColOnly, "checkBoxColOnly");
|
this.checkBoxColOnly.AutoSize = true;
|
||||||
|
this.checkBoxColOnly.Location = new System.Drawing.Point(5, 19);
|
||||||
|
this.checkBoxColOnly.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.checkBoxColOnly.Name = "checkBoxColOnly";
|
this.checkBoxColOnly.Name = "checkBoxColOnly";
|
||||||
|
this.checkBoxColOnly.Size = new System.Drawing.Size(96, 16);
|
||||||
|
this.checkBoxColOnly.TabIndex = 17;
|
||||||
|
this.checkBoxColOnly.Text = "只采集不计算";
|
||||||
this.checkBoxColOnly.UseVisualStyleBackColor = true;
|
this.checkBoxColOnly.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// sector2
|
// sector2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.sector2, "sector2");
|
this.sector2.Location = new System.Drawing.Point(101, 31);
|
||||||
|
this.sector2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.sector2.Name = "sector2";
|
this.sector2.Name = "sector2";
|
||||||
//
|
this.sector2.Size = new System.Drawing.Size(36, 21);
|
||||||
// tableLayoutPanel1
|
this.sector2.TabIndex = 11;
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.radioKey1B, 3, 1);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.label2, 0, 0);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.radioKey1A, 2, 1);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.keyEdit, 0, 1);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.label4, 2, 0);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.label3, 1, 0);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.sector1, 1, 1);
|
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
|
||||||
//
|
|
||||||
// tableLayoutPanel2
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel2, "tableLayoutPanel2");
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.radioKey2B, 3, 1);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.radioKey2A, 2, 1);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.label6, 1, 0);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.label5, 2, 0);
|
|
||||||
this.tableLayoutPanel2.Controls.Add(this.sector2, 1, 1);
|
|
||||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
|
||||||
//
|
|
||||||
// tableLayoutPanel3
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel3, "tableLayoutPanel3");
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.groupBox1, 0, 0);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.flowLayoutPanel1, 0, 2);
|
|
||||||
this.tableLayoutPanel3.Controls.Add(this.groupBox2, 0, 1);
|
|
||||||
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
|
||||||
//
|
|
||||||
// tableLayoutPanel4
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel4, "tableLayoutPanel4");
|
|
||||||
this.tableLayoutPanel4.Controls.Add(this.tableLayoutPanel2, 1, 0);
|
|
||||||
this.tableLayoutPanel4.Controls.Add(this.checkBoxColOnly, 0, 0);
|
|
||||||
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
|
|
||||||
//
|
|
||||||
// tableLayoutPanel5
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.tableLayoutPanel5, "tableLayoutPanel5");
|
|
||||||
this.tableLayoutPanel5.Controls.Add(this.button2, 0, 0);
|
|
||||||
this.tableLayoutPanel5.Controls.Add(this.button1, 1, 0);
|
|
||||||
this.tableLayoutPanel5.Name = "tableLayoutPanel5";
|
|
||||||
//
|
|
||||||
// flowLayoutPanel1
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1");
|
|
||||||
this.flowLayoutPanel1.Controls.Add(this.label1);
|
|
||||||
this.flowLayoutPanel1.Controls.Add(this.tableLayoutPanel5);
|
|
||||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
|
||||||
//
|
//
|
||||||
// FormHardNes
|
// FormHardNes
|
||||||
//
|
//
|
||||||
this.AcceptButton = this.button1;
|
this.AcceptButton = this.button1;
|
||||||
resources.ApplyResources(this, "$this");
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.CancelButton = this.button2;
|
this.CancelButton = this.button2;
|
||||||
|
this.ClientSize = new System.Drawing.Size(296, 179);
|
||||||
this.ControlBox = false;
|
this.ControlBox = false;
|
||||||
this.Controls.Add(this.tableLayoutPanel3);
|
this.Controls.Add(this.groupBox2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Controls.Add(this.groupBox1);
|
||||||
|
this.Controls.Add(this.button2);
|
||||||
|
this.Controls.Add(this.button1);
|
||||||
this.KeyPreview = true;
|
this.KeyPreview = true;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
this.Name = "FormHardNes";
|
this.Name = "FormHardNes";
|
||||||
|
this.Text = "初始化HardNested解密";
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
this.groupBox2.ResumeLayout(false);
|
this.groupBox2.ResumeLayout(false);
|
||||||
this.groupBox2.PerformLayout();
|
this.groupBox2.PerformLayout();
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel1.PerformLayout();
|
|
||||||
this.tableLayoutPanel2.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel2.PerformLayout();
|
|
||||||
this.tableLayoutPanel3.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel3.PerformLayout();
|
|
||||||
this.tableLayoutPanel4.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel4.PerformLayout();
|
|
||||||
this.tableLayoutPanel5.ResumeLayout(false);
|
|
||||||
this.tableLayoutPanel5.PerformLayout();
|
|
||||||
this.flowLayoutPanel1.ResumeLayout(false);
|
|
||||||
this.flowLayoutPanel1.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@ -276,11 +302,5 @@
|
|||||||
private System.Windows.Forms.TextBox sector2;
|
private System.Windows.Forms.TextBox sector2;
|
||||||
private System.Windows.Forms.TextBox sector1;
|
private System.Windows.Forms.TextBox sector1;
|
||||||
private System.Windows.Forms.CheckBox checkBoxColOnly;
|
private System.Windows.Forms.CheckBox checkBoxColOnly;
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5;
|
|
||||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -116,7 +115,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.设置错误_请修改);
|
MessageBox.Show("设置错误,请修改。");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.DialogResult = DialogResult.Yes;
|
this.DialogResult = DialogResult.Yes;
|
||||||
|
|||||||
@ -117,805 +117,4 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>执行!</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Text" xml:space="preserve">
|
|
||||||
<value>取消</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.Text" xml:space="preserve">
|
|
||||||
<value>只采集不计算</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>初始化HardNested解密</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>目标卡-已知信息</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>目标扇区解密设置</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Lines[0]" xml:space="preserve">
|
|
||||||
<value>ffffffffffff</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Text" xml:space="preserve">
|
|
||||||
<value>ffffffffffff</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>连续工作时请注意设备散热!</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>已知的Key</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>扇区号</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Text" xml:space="preserve">
|
|
||||||
<value>类型</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>类型</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>扇区号</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.Text" xml:space="preserve">
|
|
||||||
<value>KeyA</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.Text" xml:space="preserve">
|
|
||||||
<value>KeyB</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.Text" xml:space="preserve">
|
|
||||||
<value>KeyA</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.Text" xml:space="preserve">
|
|
||||||
<value>KeyB</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Text" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>True</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="button1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="button1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="button1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>64, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>55, 30</value>
|
|
||||||
</data>
|
|
||||||
<data name="button1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Name" xml:space="preserve">
|
|
||||||
<value>button1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button1.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>55, 30</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.Name" xml:space="preserve">
|
|
||||||
<value>button2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>button2.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.Name" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="radioKey1B" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="label2" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="radioKey1A" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="keyEdit" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="label4" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="label3" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="sector1" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /><Rows Styles="AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>438, 77</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>283, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 24</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>15</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1B.Name" xml:space="preserve">
|
|
||||||
<value>radioKey1B</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1B.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1B.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1B.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>206, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 24</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>14</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1A.Name" xml:space="preserve">
|
|
||||||
<value>radioKey1A</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1A.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1A.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey1A.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>206, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>13</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleCenter</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label4.Name" xml:space="preserve">
|
|
||||||
<value>label4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label4.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label4.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>143, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>57, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleCenter</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Name" xml:space="preserve">
|
|
||||||
<value>label3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>143, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>57, 26</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>11</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector1.Name" xml:space="preserve">
|
|
||||||
<value>sector1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector1.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector1.ZOrder" xml:space="preserve">
|
|
||||||
<value>6</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>134, 26</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>10</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyEdit.Name" xml:space="preserve">
|
|
||||||
<value>keyEdit</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyEdit.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyEdit.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyEdit.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>134, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleCenter</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Name" xml:space="preserve">
|
|
||||||
<value>label2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>217, 42</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleCenter</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Name" xml:space="preserve">
|
|
||||||
<value>label1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Parent" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>143, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 24</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>15</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2B.Name" xml:space="preserve">
|
|
||||||
<value>radioKey2B</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2B.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2B.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2B.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>66, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 24</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>14</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2A.Name" xml:space="preserve">
|
|
||||||
<value>radioKey2A</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2A.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2A.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>radioKey2A.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>66, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>71, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>13</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleCenter</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.Name" xml:space="preserve">
|
|
||||||
<value>label5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label5.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>57, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>12</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
|
||||||
<value>MiddleCenter</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Name" xml:space="preserve">
|
|
||||||
<value>label6</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label6.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel4.Name" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel4.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel4.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel4.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="checkBoxColOnly" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0" /><Rows Styles="AutoSize,0,Absolute,20" /></TableLayoutSettings></value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 86</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>438, 83</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>16</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Name" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>131, 52</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>17</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>checkBoxColOnly.Name" xml:space="preserve">
|
|
||||||
<value>checkBoxColOnly</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>checkBoxColOnly.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>checkBoxColOnly.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>checkBoxColOnly.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 23</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>57, 26</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>11</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector2.Name" xml:space="preserve">
|
|
||||||
<value>sector2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector2.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>sector2.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.ColumnCount" type="System.Int32, mscorlib">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>432, 52</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>17</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.ColumnCount" type="System.Int32, mscorlib">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>140, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.RowCount" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>289, 52</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>17</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel2.Name" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel2.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel2.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="radioKey2B" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="radioKey2A" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="label6" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="label5" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="sector2" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /><Rows Styles="AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.ColumnCount" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.ColumnCount" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Right</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>226, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.RowCount" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>122, 36</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel5.Name" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel5.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel5.Parent" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel5.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel5.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="button2" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="button1" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings></value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 175</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>438, 120</value>
|
|
||||||
</data>
|
|
||||||
<data name="flowLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>17</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.Name" xml:space="preserve">
|
|
||||||
<value>flowLayoutPanel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.Parent" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>flowLayoutPanel1.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.RowCount" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>444, 298</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>18</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel3.Name" xml:space="preserve">
|
|
||||||
<value>tableLayoutPanel3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel3.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel3.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>tableLayoutPanel3.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel3.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="groupBox1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="flowLayoutPanel1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="groupBox2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.ColumnCount" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>3, 22</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.RowCount" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>432, 58</value>
|
|
||||||
</data>
|
|
||||||
<data name="tableLayoutPanel4.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>18</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
|
||||||
<value>9, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
|
||||||
<value>GrowAndShrink</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>444, 298</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
|
||||||
<value>FormHardNes</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
@ -1,176 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>Начать!</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Text" xml:space="preserve">
|
|
||||||
<value>Отмена</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.Text" xml:space="preserve">
|
|
||||||
<value>Только сбор
|
|
||||||
не засчитывается</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>Расшифровка HardNested</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>Известная информция о карте</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>Настройка расшифровки сектора</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Lines[0]" xml:space="preserve">
|
|
||||||
<value>FFFFFFFFFFFF</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Text" xml:space="preserve">
|
|
||||||
<value>FFFFFFFFFFFF</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>Обратите внимание на устройство
|
|
||||||
при непрерывной работе!</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>Известный ключ</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>Номер сектора</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Text" xml:space="preserve">
|
|
||||||
<value>Тип ключа</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>Тип ключа</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>Номер сектора</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.Text" xml:space="preserve">
|
|
||||||
<value>Ключ A</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.Text" xml:space="preserve">
|
|
||||||
<value>Ключ B</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.Text" xml:space="preserve">
|
|
||||||
<value>Ключ A</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.Text" xml:space="preserve">
|
|
||||||
<value>Ключ B</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,180 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="button1.Text" xml:space="preserve">
|
|
||||||
<value>执行!</value>
|
|
||||||
</data>
|
|
||||||
<data name="button2.Text" xml:space="preserve">
|
|
||||||
<value>取消</value>
|
|
||||||
</data>
|
|
||||||
<data name="checkBoxColOnly.Text" xml:space="preserve">
|
|
||||||
<value>只采集不计算</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>初始化HardNested解密</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>目标卡-已知信息</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>目标扇区解密设置</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Lines[0]" xml:space="preserve">
|
|
||||||
<value>ffffffffffff</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyEdit.Text" xml:space="preserve">
|
|
||||||
<value>ffffffffffff</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>连续工作时请注意设备散热!</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>已知的Key</value>
|
|
||||||
</data>
|
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>扇区号</value>
|
|
||||||
</data>
|
|
||||||
<data name="label4.Text" xml:space="preserve">
|
|
||||||
<value>类型</value>
|
|
||||||
</data>
|
|
||||||
<data name="label5.Text" xml:space="preserve">
|
|
||||||
<value>类型</value>
|
|
||||||
</data>
|
|
||||||
<data name="label6.Text" xml:space="preserve">
|
|
||||||
<value>扇区号</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1A.Text" xml:space="preserve">
|
|
||||||
<value>KeyA</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey1B.Text" xml:space="preserve">
|
|
||||||
<value>KeyB</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2A.Text" xml:space="preserve">
|
|
||||||
<value>KeyA</value>
|
|
||||||
</data>
|
|
||||||
<data name="radioKey2B.Text" xml:space="preserve">
|
|
||||||
<value>KeyB</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Lines[0]" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="sector1.Text" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
66
MifareOneTool/FormMFF08.Designer.cs
generated
@ -48,15 +48,24 @@
|
|||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
this.groupBox1.Controls.Add(this.label1);
|
this.groupBox1.Controls.Add(this.label1);
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
this.groupBox1.Location = new System.Drawing.Point(12, 12);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
|
this.groupBox1.Size = new System.Drawing.Size(635, 100);
|
||||||
|
this.groupBox1.TabIndex = 0;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
|
this.groupBox1.Text = "说明";
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label1, "label1");
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Font = new System.Drawing.Font("宋体", 9.5F);
|
||||||
this.label1.ForeColor = System.Drawing.Color.Blue;
|
this.label1.ForeColor = System.Drawing.Color.Blue;
|
||||||
|
this.label1.Location = new System.Drawing.Point(6, 17);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(584, 39);
|
||||||
|
this.label1.TabIndex = 0;
|
||||||
|
this.label1.Text = "本工具由nfc-mfclassic做少许修改而来。可用于1K大小CUID卡0块损坏的修复。\r\n本工具可以修复:SAK写错(不认卡类型)、ATQA写错(不认卡大小)" +
|
||||||
|
",对于BCC写错暂时无能为力。\r\n请准备好你最后一次写入该卡导致0块损坏的卡数据文件(如果卡片有加密)。";
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
@ -66,73 +75,106 @@
|
|||||||
this.groupBox2.Controls.Add(this.label2);
|
this.groupBox2.Controls.Add(this.label2);
|
||||||
this.groupBox2.Controls.Add(this.buttonKeyWrite);
|
this.groupBox2.Controls.Add(this.buttonKeyWrite);
|
||||||
this.groupBox2.Controls.Add(this.buttonWriteEmpty);
|
this.groupBox2.Controls.Add(this.buttonWriteEmpty);
|
||||||
resources.ApplyResources(this.groupBox2, "groupBox2");
|
this.groupBox2.Location = new System.Drawing.Point(12, 118);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
|
this.groupBox2.Size = new System.Drawing.Size(635, 100);
|
||||||
|
this.groupBox2.TabIndex = 1;
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
|
this.groupBox2.Text = "操作";
|
||||||
//
|
//
|
||||||
// buttonClr
|
// buttonClr
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.buttonClr, "buttonClr");
|
this.buttonClr.Location = new System.Drawing.Point(585, 33);
|
||||||
this.buttonClr.Name = "buttonClr";
|
this.buttonClr.Name = "buttonClr";
|
||||||
|
this.buttonClr.Size = new System.Drawing.Size(44, 23);
|
||||||
|
this.buttonClr.TabIndex = 4;
|
||||||
|
this.buttonClr.Text = "清除";
|
||||||
this.buttonClr.UseVisualStyleBackColor = true;
|
this.buttonClr.UseVisualStyleBackColor = true;
|
||||||
this.buttonClr.Click += new System.EventHandler(this.buttonClr_Click);
|
this.buttonClr.Click += new System.EventHandler(this.buttonClr_Click);
|
||||||
//
|
//
|
||||||
// buttonLoadKey
|
// buttonLoadKey
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.buttonLoadKey, "buttonLoadKey");
|
this.buttonLoadKey.Location = new System.Drawing.Point(504, 33);
|
||||||
this.buttonLoadKey.Name = "buttonLoadKey";
|
this.buttonLoadKey.Name = "buttonLoadKey";
|
||||||
|
this.buttonLoadKey.Size = new System.Drawing.Size(75, 23);
|
||||||
|
this.buttonLoadKey.TabIndex = 1;
|
||||||
|
this.buttonLoadKey.Text = "加载…";
|
||||||
this.buttonLoadKey.UseVisualStyleBackColor = true;
|
this.buttonLoadKey.UseVisualStyleBackColor = true;
|
||||||
this.buttonLoadKey.Click += new System.EventHandler(this.buttonLoadKey_Click);
|
this.buttonLoadKey.Click += new System.EventHandler(this.buttonLoadKey_Click);
|
||||||
//
|
//
|
||||||
// keyfileBox
|
// keyfileBox
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.keyfileBox, "keyfileBox");
|
this.keyfileBox.Location = new System.Drawing.Point(237, 35);
|
||||||
this.keyfileBox.Name = "keyfileBox";
|
this.keyfileBox.Name = "keyfileBox";
|
||||||
|
this.keyfileBox.Size = new System.Drawing.Size(261, 21);
|
||||||
|
this.keyfileBox.TabIndex = 3;
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.label2, "label2");
|
this.label2.AutoSize = true;
|
||||||
|
this.label2.Location = new System.Drawing.Point(235, 20);
|
||||||
this.label2.Name = "label2";
|
this.label2.Name = "label2";
|
||||||
|
this.label2.Size = new System.Drawing.Size(227, 12);
|
||||||
|
this.label2.TabIndex = 2;
|
||||||
|
this.label2.Text = "最后一次写卡导致0块损坏的卡数据文件:";
|
||||||
//
|
//
|
||||||
// buttonKeyWrite
|
// buttonKeyWrite
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.buttonKeyWrite, "buttonKeyWrite");
|
this.buttonKeyWrite.Font = new System.Drawing.Font("宋体", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.buttonKeyWrite.Location = new System.Drawing.Point(121, 20);
|
||||||
this.buttonKeyWrite.Name = "buttonKeyWrite";
|
this.buttonKeyWrite.Name = "buttonKeyWrite";
|
||||||
|
this.buttonKeyWrite.Size = new System.Drawing.Size(83, 74);
|
||||||
|
this.buttonKeyWrite.TabIndex = 1;
|
||||||
|
this.buttonKeyWrite.Text = "修复写入\r\n有密码\r\nCUID卡";
|
||||||
this.buttonKeyWrite.UseVisualStyleBackColor = true;
|
this.buttonKeyWrite.UseVisualStyleBackColor = true;
|
||||||
this.buttonKeyWrite.Click += new System.EventHandler(this.buttonKeyWrite_Click);
|
this.buttonKeyWrite.Click += new System.EventHandler(this.buttonKeyWrite_Click);
|
||||||
//
|
//
|
||||||
// buttonWriteEmpty
|
// buttonWriteEmpty
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.buttonWriteEmpty, "buttonWriteEmpty");
|
this.buttonWriteEmpty.Font = new System.Drawing.Font("宋体", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.buttonWriteEmpty.Location = new System.Drawing.Point(8, 20);
|
||||||
this.buttonWriteEmpty.Name = "buttonWriteEmpty";
|
this.buttonWriteEmpty.Name = "buttonWriteEmpty";
|
||||||
|
this.buttonWriteEmpty.Size = new System.Drawing.Size(83, 74);
|
||||||
|
this.buttonWriteEmpty.TabIndex = 0;
|
||||||
|
this.buttonWriteEmpty.Text = "修复写入\r\n无密空白\r\nCUID卡";
|
||||||
this.buttonWriteEmpty.UseVisualStyleBackColor = true;
|
this.buttonWriteEmpty.UseVisualStyleBackColor = true;
|
||||||
this.buttonWriteEmpty.Click += new System.EventHandler(this.buttonWriteEmpty_Click);
|
this.buttonWriteEmpty.Click += new System.EventHandler(this.buttonWriteEmpty_Click);
|
||||||
//
|
//
|
||||||
// groupBox3
|
// groupBox3
|
||||||
//
|
//
|
||||||
this.groupBox3.Controls.Add(this.logBox);
|
this.groupBox3.Controls.Add(this.logBox);
|
||||||
resources.ApplyResources(this.groupBox3, "groupBox3");
|
this.groupBox3.Location = new System.Drawing.Point(12, 224);
|
||||||
this.groupBox3.Name = "groupBox3";
|
this.groupBox3.Name = "groupBox3";
|
||||||
|
this.groupBox3.Size = new System.Drawing.Size(635, 188);
|
||||||
|
this.groupBox3.TabIndex = 0;
|
||||||
this.groupBox3.TabStop = false;
|
this.groupBox3.TabStop = false;
|
||||||
|
this.groupBox3.Text = "日志";
|
||||||
//
|
//
|
||||||
// logBox
|
// logBox
|
||||||
//
|
//
|
||||||
this.logBox.BackColor = System.Drawing.Color.Black;
|
this.logBox.BackColor = System.Drawing.Color.Black;
|
||||||
resources.ApplyResources(this.logBox, "logBox");
|
this.logBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.logBox.ForeColor = System.Drawing.Color.Gold;
|
this.logBox.ForeColor = System.Drawing.Color.Gold;
|
||||||
|
this.logBox.Location = new System.Drawing.Point(3, 17);
|
||||||
this.logBox.Name = "logBox";
|
this.logBox.Name = "logBox";
|
||||||
this.logBox.ReadOnly = true;
|
this.logBox.ReadOnly = true;
|
||||||
|
this.logBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.ForcedVertical;
|
||||||
|
this.logBox.Size = new System.Drawing.Size(629, 168);
|
||||||
|
this.logBox.TabIndex = 0;
|
||||||
|
this.logBox.Text = resources.GetString("logBox.Text");
|
||||||
//
|
//
|
||||||
// FormMFF08
|
// FormMFF08
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(659, 424);
|
||||||
this.Controls.Add(this.groupBox3);
|
this.Controls.Add(this.groupBox3);
|
||||||
this.Controls.Add(this.groupBox2);
|
this.Controls.Add(this.groupBox2);
|
||||||
this.Controls.Add(this.groupBox1);
|
this.Controls.Add(this.groupBox1);
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.Name = "FormMFF08";
|
this.Name = "FormMFF08";
|
||||||
|
this.Text = "MFF08 Tool-CUID修复工具";
|
||||||
this.Load += new System.EventHandler(this.FormMFF08_Load);
|
this.Load += new System.EventHandler(this.FormMFF08_Load);
|
||||||
this.groupBox1.ResumeLayout(false);
|
this.groupBox1.ResumeLayout(false);
|
||||||
this.groupBox1.PerformLayout();
|
this.groupBox1.PerformLayout();
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
@ -23,8 +22,8 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
OpenFileDialog ofd = new OpenFileDialog();
|
OpenFileDialog ofd = new OpenFileDialog();
|
||||||
ofd.CheckFileExists = true;
|
ofd.CheckFileExists = true;
|
||||||
ofd.Filter = Resources.MFD文件_mfd_DUMP文件_dump;
|
ofd.Filter = "MFD文件|*.mfd|DUMP文件|*.dump";
|
||||||
ofd.Title = Resources.请选择最后一次写卡导致0块损坏的卡数据文件;
|
ofd.Title = "请选择最后一次写卡导致0块损坏的卡数据文件";
|
||||||
ofd.Multiselect = false;
|
ofd.Multiselect = false;
|
||||||
if (ofd.ShowDialog() == DialogResult.OK)
|
if (ofd.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
@ -67,7 +66,7 @@ namespace MifareOneTool
|
|||||||
|
|
||||||
private void buttonWriteEmpty_Click(object sender, EventArgs e)
|
private void buttonWriteEmpty_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
||||||
S50 empty = new S50();
|
S50 empty = new S50();
|
||||||
empty.ExportToMfd("mff08_empty.kmf");
|
empty.ExportToMfd("mff08_empty.kmf");
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
@ -102,17 +101,17 @@ namespace MifareOneTool
|
|||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
process.WaitForExit();
|
process.WaitForExit();
|
||||||
lprocess = false;
|
lprocess = false;
|
||||||
b.ReportProgress(100, Resources._运行完毕);
|
b.ReportProgress(100, "##运行完毕##");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buttonKeyWrite_Click(object sender, EventArgs e)
|
private void buttonKeyWrite_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (lprocess) { MessageBox.Show(Resources.有任务运行中_不可执行, Resources.设备忙, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
|
||||||
S50 empty = new S50();
|
S50 empty = new S50();
|
||||||
empty.ExportToMfd("mff08_empty.kmf");
|
empty.ExportToMfd("mff08_empty.kmf");
|
||||||
if (keyfileBox.Text == "")
|
if (keyfileBox.Text == "")
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的, Resources.错误, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show("您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的密钥源。\n操作终止。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
BackgroundWorker bgw = new BackgroundWorker();
|
BackgroundWorker bgw = new BackgroundWorker();
|
||||||
@ -126,7 +125,7 @@ namespace MifareOneTool
|
|||||||
{
|
{
|
||||||
if (!File.Exists("nfc-bin/mff08.exe"))
|
if (!File.Exists("nfc-bin/mff08.exe"))
|
||||||
{
|
{
|
||||||
MessageBox.Show(Resources.无法找到MFF08程序文件_操作终止, Resources.错误, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBox.Show("无法找到MFF08程序文件。\n操作终止。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,54 +117,6 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="buttonClr.Text" xml:space="preserve">
|
|
||||||
<value>清除</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Text" xml:space="preserve">
|
|
||||||
<value>修复写入
|
|
||||||
有密码
|
|
||||||
CUID卡</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.Text" xml:space="preserve">
|
|
||||||
<value>加载…</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Text" xml:space="preserve">
|
|
||||||
<value>修复写入
|
|
||||||
无密空白
|
|
||||||
CUID卡</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>MFF08 Tool-CUID修复工具</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>说明</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>操作</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Text" xml:space="preserve">
|
|
||||||
<value>日志</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>本工具由nfc-mfclassic做少许修改而来。可用于1K大小CUID卡0块损坏的修复。
|
|
||||||
本工具可以修复:SAK写错(不认卡类型)、ATQA写错(不认卡大小),对于BCC写错暂时无能为力。
|
|
||||||
请准备好你最后一次写入该卡导致0块损坏的卡数据文件(如果卡片有加密)。</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>最后一次写卡导致0块损坏的卡数据文件:</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[0]" xml:space="preserve">
|
|
||||||
<value>每个人使用CUID卡的时候,总会因不了解或是不经意犯下一些小错误。</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[1]" xml:space="preserve">
|
|
||||||
<value>比如使用编辑器修改UID却没有改BCC,SAK=28的卡片解密后的文件直接写入,又或是从S70卡片导入数据写入1K卡却没有更正ATQA。</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[2]" xml:space="preserve">
|
|
||||||
<value>MFF08工具给了你一次修复这些损坏卡片的机会。</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[3]" xml:space="preserve">
|
|
||||||
<value>------------------------------------------------------------------------</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Text" xml:space="preserve">
|
<data name="logBox.Text" xml:space="preserve">
|
||||||
<value>每个人使用CUID卡的时候,总会因不了解或是不经意犯下一些小错误。
|
<value>每个人使用CUID卡的时候,总会因不了解或是不经意犯下一些小错误。
|
||||||
比如使用编辑器修改UID却没有改BCC,SAK=28的卡片解密后的文件直接写入,又或是从S70卡片导入数据写入1K卡却没有更正ATQA。
|
比如使用编辑器修改UID却没有改BCC,SAK=28的卡片解密后的文件直接写入,又或是从S70卡片导入数据写入1K卡却没有更正ATQA。
|
||||||
@ -173,319 +125,4 @@ MFF08工具给了你一次修复这些损坏卡片的机会。
|
|||||||
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
|
||||||
<value>True</value>
|
|
||||||
</metadata>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="label1.Font" type="System.Drawing.Font, System.Drawing">
|
|
||||||
<value>SimSun, 9.5pt</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>9, 28</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 0, 4, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>850, 57</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Name" xml:space="preserve">
|
|
||||||
<value>label1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>18, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>952, 167</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
|
||||||
<value>groupBox1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox1.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonClr.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>878, 55</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonClr.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonClr.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>66, 38</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonClr.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonClr.Name" xml:space="preserve">
|
|
||||||
<value>buttonClr</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonClr.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonClr.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonClr.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>756, 55</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>112, 38</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonLoadKey.Name" xml:space="preserve">
|
|
||||||
<value>buttonLoadKey</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonLoadKey.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonLoadKey.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonLoadKey.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyfileBox.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>356, 58</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyfileBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyfileBox.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>390, 26</value>
|
|
||||||
</data>
|
|
||||||
<data name="keyfileBox.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyfileBox.Name" xml:space="preserve">
|
|
||||||
<value>keyfileBox</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyfileBox.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyfileBox.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>keyfileBox.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
|
||||||
<value>True</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>352, 33</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 0, 4, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>298, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Name" xml:space="preserve">
|
|
||||||
<value>label2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
|
||||||
<value>3</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Font" type="System.Drawing.Font, System.Drawing">
|
|
||||||
<value>SimSun, 11.25pt, style=Bold</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>182, 33</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>124, 123</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonKeyWrite.Name" xml:space="preserve">
|
|
||||||
<value>buttonKeyWrite</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonKeyWrite.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonKeyWrite.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonKeyWrite.ZOrder" xml:space="preserve">
|
|
||||||
<value>4</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Font" type="System.Drawing.Font, System.Drawing">
|
|
||||||
<value>SimSun, 11.25pt, style=Bold</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>12, 33</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>124, 123</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonWriteEmpty.Name" xml:space="preserve">
|
|
||||||
<value>buttonWriteEmpty</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonWriteEmpty.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonWriteEmpty.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>buttonWriteEmpty.ZOrder" xml:space="preserve">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>18, 197</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>952, 167</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Name" xml:space="preserve">
|
|
||||||
<value>groupBox2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox2.ZOrder" xml:space="preserve">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>4, 24</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.ScrollBars" type="System.Windows.Forms.RichTextBoxScrollBars, System.Windows.Forms">
|
|
||||||
<value>ForcedVertical</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>944, 284</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>logBox.Name" xml:space="preserve">
|
|
||||||
<value>logBox</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>logBox.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>logBox.Parent" xml:space="preserve">
|
|
||||||
<value>groupBox3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>logBox.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>18, 373</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>952, 313</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox3.Name" xml:space="preserve">
|
|
||||||
<value>groupBox3</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox3.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox3.Parent" xml:space="preserve">
|
|
||||||
<value>$this</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>groupBox3.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
|
||||||
<value>9, 20</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>988, 707</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>4, 5, 4, 5</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
|
||||||
<value>FormMFF08</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>$this.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
@ -1,176 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="buttonClr.Text" xml:space="preserve">
|
|
||||||
<value>Очистить</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Text" xml:space="preserve">
|
|
||||||
<value>Ремонт написать
|
|
||||||
Есть пароль
|
|
||||||
CUID карта</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.Text" xml:space="preserve">
|
|
||||||
<value>Loading ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Text" xml:space="preserve">
|
|
||||||
<value>Ремонт написать
|
|
||||||
Нет секретного бланка
|
|
||||||
CUID карта</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>MFF08 Tool-CUID Ремонт инструмента</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>объяснение</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>операционная</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Text" xml:space="preserve">
|
|
||||||
<value>журнал</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>Этот инструмент был слегка изменен с помощью nfc-mfclassic. Может быть использован для ремонта 0U блока карты размера 1K.
|
|
||||||
Этот инструмент можно починить: неверный SAK (не распознанный тип карты), неправильный ATQA (не распознанный размер карты) и BCC невозможно записать неправильно.
|
|
||||||
Пожалуйста, подготовьте файл данных карты, который вызвал последние 0 повреждений карты (если карта зашифрована).</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>В последний раз при записи карты получено 0 поврежденных файлов данных карты:</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[0]" xml:space="preserve">
|
|
||||||
<value>Когда все используют карту CUID, они всегда делают маленькие ошибки, потому что они не понимают или непреднамеренно.</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[1]" xml:space="preserve">
|
|
||||||
<value>Например, если редактор используется для изменения UID, но BCC не изменяется, файл, дешифрованный картой SAK = 28, записывается напрямую или данные импортируются с карты S70 на карту 1K, но ATQA не исправляется.</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[2]" xml:space="preserve">
|
|
||||||
<value>Инструмент MFF08 дает вам возможность исправить эти поврежденные карты сразу.</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[3]" xml:space="preserve">
|
|
||||||
<value>-------------------------------------------------- ----------------------</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Text" xml:space="preserve">
|
|
||||||
<value>Когда все используют карту CUID, они всегда делают маленькие ошибки, потому что они не понимают или непреднамеренно.
|
|
||||||
Например, если редактор используется для изменения UID, но BCC не изменяется, файл, дешифрованный картой SAK = 28, записывается напрямую или данные импортируются с карты S70 на карту 1K, но ATQA не исправляется.
|
|
||||||
Инструмент MFF08 дает вам возможность исправить эти поврежденные карты сразу.
|
|
||||||
-------------------------------------------------- ----------------------
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,176 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="buttonClr.Text" xml:space="preserve">
|
|
||||||
<value>清除</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonKeyWrite.Text" xml:space="preserve">
|
|
||||||
<value>修复写入
|
|
||||||
有密码
|
|
||||||
CUID卡</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonLoadKey.Text" xml:space="preserve">
|
|
||||||
<value>加载…</value>
|
|
||||||
</data>
|
|
||||||
<data name="buttonWriteEmpty.Text" xml:space="preserve">
|
|
||||||
<value>修复写入
|
|
||||||
无密空白
|
|
||||||
CUID卡</value>
|
|
||||||
</data>
|
|
||||||
<data name="$this.Text" xml:space="preserve">
|
|
||||||
<value>MFF08 Tool-CUID修复工具</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox1.Text" xml:space="preserve">
|
|
||||||
<value>说明</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox2.Text" xml:space="preserve">
|
|
||||||
<value>操作</value>
|
|
||||||
</data>
|
|
||||||
<data name="groupBox3.Text" xml:space="preserve">
|
|
||||||
<value>日志</value>
|
|
||||||
</data>
|
|
||||||
<data name="label1.Text" xml:space="preserve">
|
|
||||||
<value>本工具由nfc-mfclassic做少许修改而来。可用于1K大小CUID卡0块损坏的修复。
|
|
||||||
本工具可以修复:SAK写错(不认卡类型)、ATQA写错(不认卡大小),对于BCC写错暂时无能为力。
|
|
||||||
请准备好你最后一次写入该卡导致0块损坏的卡数据文件(如果卡片有加密)。</value>
|
|
||||||
</data>
|
|
||||||
<data name="label2.Text" xml:space="preserve">
|
|
||||||
<value>最后一次写卡导致0块损坏的卡数据文件:</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[0]" xml:space="preserve">
|
|
||||||
<value>每个人使用CUID卡的时候,总会因不了解或是不经意犯下一些小错误。</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[1]" xml:space="preserve">
|
|
||||||
<value>比如使用编辑器修改UID却没有改BCC,SAK=28的卡片解密后的文件直接写入,又或是从S70卡片导入数据写入1K卡却没有更正ATQA。</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[2]" xml:space="preserve">
|
|
||||||
<value>MFF08工具给了你一次修复这些损坏卡片的机会。</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Lines[3]" xml:space="preserve">
|
|
||||||
<value>------------------------------------------------------------------------</value>
|
|
||||||
</data>
|
|
||||||
<data name="logBox.Text" xml:space="preserve">
|
|
||||||
<value>每个人使用CUID卡的时候,总会因不了解或是不经意犯下一些小错误。
|
|
||||||
比如使用编辑器修改UID却没有改BCC,SAK=28的卡片解密后的文件直接写入,又或是从S70卡片导入数据写入1K卡却没有更正ATQA。
|
|
||||||
MFF08工具给了你一次修复这些损坏卡片的机会。
|
|
||||||
------------------------------------------------------------------------
|
|
||||||
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@ -14,7 +13,7 @@ namespace MifareOneTool
|
|||||||
class GitHubUpdate
|
class GitHubUpdate
|
||||||
{
|
{
|
||||||
public Version localVersion;
|
public Version localVersion;
|
||||||
public string remoteVersion=Resources.未知;
|
public string remoteVersion="未知";
|
||||||
public void Update(string GitHubR)
|
public void Update(string GitHubR)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@ -35,7 +35,7 @@
|
|||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\..\Сборки\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
@ -107,64 +107,27 @@
|
|||||||
<EmbeddedResource Include="Form1.resx">
|
<EmbeddedResource Include="Form1.resx">
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
<DependentUpon>Form1.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Form1.ru.resx">
|
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Form1.zh.resx">
|
|
||||||
<DependentUpon>Form1.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormDiff.resx">
|
<EmbeddedResource Include="FormDiff.resx">
|
||||||
<DependentUpon>FormDiff.cs</DependentUpon>
|
<DependentUpon>FormDiff.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="FormDiff.ru.resx">
|
|
||||||
<DependentUpon>FormDiff.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormDiff.zh.resx">
|
|
||||||
<DependentUpon>FormDiff.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormHardNes.resx">
|
<EmbeddedResource Include="FormHardNes.resx">
|
||||||
<DependentUpon>FormHardNes.cs</DependentUpon>
|
<DependentUpon>FormHardNes.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="FormHardNes.ru.resx">
|
|
||||||
<DependentUpon>FormHardNes.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormHardNes.zh.resx">
|
|
||||||
<DependentUpon>FormHardNes.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormHTool.resx">
|
<EmbeddedResource Include="FormHTool.resx">
|
||||||
<DependentUpon>FormHTool.cs</DependentUpon>
|
<DependentUpon>FormHTool.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="FormHTool.ru.resx">
|
|
||||||
<DependentUpon>FormHTool.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormHTool.zh.resx">
|
|
||||||
<DependentUpon>FormHTool.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormMFF08.resx">
|
<EmbeddedResource Include="FormMFF08.resx">
|
||||||
<DependentUpon>FormMFF08.cs</DependentUpon>
|
<DependentUpon>FormMFF08.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="FormMFF08.ru.resx">
|
|
||||||
<DependentUpon>FormMFF08.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="FormMFF08.zh.resx">
|
|
||||||
<DependentUpon>FormMFF08.cs</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
</Compile>
|
</Compile>
|
||||||
<EmbeddedResource Include="Properties\Resources.ru.resx">
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="Properties\Resources.zh.resx">
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
<None Include="Properties\Settings.settings">
|
<None Include="Properties\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
@ -199,25 +162,7 @@
|
|||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="MifareOneTool_ml.xml" />
|
|
||||||
<Content Include="nfc_128.ico" />
|
<Content Include="nfc_128.ico" />
|
||||||
<None Include="Resources\round_sync_black_18pt_1x.png" />
|
|
||||||
<None Include="Resources\outline_info_black_18pt_1x.png" />
|
|
||||||
<None Include="Resources\round_info_black_18pt_1x.png" />
|
|
||||||
<None Include="Resources\round_timer_black_18pt_1x.png" />
|
|
||||||
<None Include="Resources\round_update_black_18pt_1x.png" />
|
|
||||||
<None Include="Resources\round_update_black_24pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_black_48pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_black_24pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_outline_black_24pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_all_black_24pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_all_black_36pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_all_black_18pt_1x.png" />
|
|
||||||
<None Include="Resources\round_done_all_black_18pt_2x.png" />
|
|
||||||
<None Include="Resources\round_clear_black_24dp.png" />
|
|
||||||
<None Include="Resources\round_done_all_black_36dp.png" />
|
|
||||||
<None Include="Resources\round_done_all_black_24dp.png" />
|
|
||||||
<None Include="Resources\round_chevron_right_black_24dp.png" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using MifareOneTool.Properties;
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
@ -35,7 +34,7 @@ namespace MifareOneTool
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (MessageBox.Show(Resources.您已经运行了MifareOne_Tool_打开多个本程序可能, Resources.您正在试图重复运行, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
|
if (MessageBox.Show("您已经运行了MifareOne Tool,打开多个本程序可能会造成冲突及不可预料到的错误。\n确认要继续吗?", "您正在试图重复运行", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
|
||||||
{
|
{
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
|||||||
1487
MifareOneTool/Properties/Resources.Designer.cs
generated
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
@ -60,7 +60,6 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@ -69,10 +68,9 @@
|
|||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="assembly">
|
<xsd:element name="assembly">
|
||||||
@ -87,10 +85,9 @@
|
|||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="resheader">
|
<xsd:element name="resheader">
|
||||||
@ -112,494 +109,9 @@
|
|||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="_0_9A_Fa_f_32" xml:space="preserve">
|
|
||||||
<value>[0-9A-Fa-f]{32}</value>
|
|
||||||
</data>
|
|
||||||
<data name="_Nonce收集完毕" xml:space="preserve">
|
|
||||||
<value>##Nonce收集完毕##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_Sector" xml:space="preserve">
|
|
||||||
<value>+Sector: </value>
|
|
||||||
</data>
|
|
||||||
<data name="_个块不同" xml:space="preserve">
|
|
||||||
<value> 个块不同
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="_已保存" xml:space="preserve">
|
|
||||||
<value>##已保存-</value>
|
|
||||||
</data>
|
|
||||||
<data name="_已自动保存" xml:space="preserve">
|
|
||||||
<value>##已自动保存-</value>
|
|
||||||
</data>
|
|
||||||
<data name="_扇区" xml:space="preserve">
|
|
||||||
<value>#扇区 </value>
|
|
||||||
</data>
|
|
||||||
<data name="_文件中的值错误" xml:space="preserve">
|
|
||||||
<value>##文件中的值错误##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_有数据" xml:space="preserve">
|
|
||||||
<value> 有数据</value>
|
|
||||||
</data>
|
|
||||||
<data name="_有错误" xml:space="preserve">
|
|
||||||
<value> 有错误</value>
|
|
||||||
</data>
|
|
||||||
<data name="_未保存" xml:space="preserve">
|
|
||||||
<value>##未保存##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_程序已被强制停止" xml:space="preserve">
|
|
||||||
<value>##程序已被强制停止##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_空扇区" xml:space="preserve">
|
|
||||||
<value> 空扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="_缓存文件异常" xml:space="preserve">
|
|
||||||
<value>##缓存文件异常##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_计算得到BCC" xml:space="preserve">
|
|
||||||
<value>,计算得到BCC=</value>
|
|
||||||
</data>
|
|
||||||
<data name="_软件版本" xml:space="preserve">
|
|
||||||
<value>#软件版本 </value>
|
|
||||||
</data>
|
|
||||||
<data name="_运行出错" xml:space="preserve">
|
|
||||||
<value>##运行出错##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_运行完毕" xml:space="preserve">
|
|
||||||
<value>##运行完毕##</value>
|
|
||||||
</data>
|
|
||||||
<data name="AB文件中一个或两个无效" xml:space="preserve">
|
|
||||||
<value>AB文件中一个或两个无效。</value>
|
|
||||||
</data>
|
|
||||||
<data name="ACR122U支持已经打开过" xml:space="preserve">
|
|
||||||
<value>ACR122U支持已经打开过。</value>
|
|
||||||
</data>
|
|
||||||
<data name="DUMP文件_dump_MFD文件_mfd" xml:space="preserve">
|
|
||||||
<value>DUMP文件|*.dump|MFD文件|*.mfd</value>
|
|
||||||
</data>
|
|
||||||
<data name="Information" xml:space="preserve">
|
|
||||||
<value>Information</value>
|
|
||||||
</data>
|
|
||||||
<data name="InputError" xml:space="preserve">
|
|
||||||
<value>InputError</value>
|
|
||||||
</data>
|
|
||||||
<data name="KeyA_B_N" xml:space="preserve">
|
|
||||||
<value>KeyA/B/N</value>
|
|
||||||
</data>
|
|
||||||
<data name="MCT格式" xml:space="preserve">
|
|
||||||
<value>MCT格式|*.*</value>
|
|
||||||
</data>
|
|
||||||
<data name="MFD文件_mfd_dump" xml:space="preserve">
|
|
||||||
<value>MFD文件|*.mfd;*.dump</value>
|
|
||||||
</data>
|
|
||||||
<data name="MFD文件_mfd_DUMP文件_dump" xml:space="preserve">
|
|
||||||
<value>MFD文件|*.mfd|DUMP文件|*.dump</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_已取消" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 已取消</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_已终止" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 已终止</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_运行中" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 运行中</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_运行完毕" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 运行完毕</value>
|
|
||||||
</data>
|
|
||||||
<data name="nfc_bin_collect_exe" xml:space="preserve">
|
|
||||||
<value>nfc-bin/collect.exe</value>
|
|
||||||
</data>
|
|
||||||
<data name="res" xml:space="preserve">
|
|
||||||
<value>。</value>
|
|
||||||
</data>
|
|
||||||
<data name="txt文件_txt" xml:space="preserve">
|
|
||||||
<value>txt文件|*.txt</value>
|
|
||||||
</data>
|
|
||||||
<data name="UID已改为" xml:space="preserve">
|
|
||||||
<value>UID已改为</value>
|
|
||||||
</data>
|
|
||||||
<data name="不恰当的4字节UID长度" xml:space="preserve">
|
|
||||||
<value>不恰当的4字节UID长度</value>
|
|
||||||
</data>
|
|
||||||
<data name="使用KeyA_是_或KeyB_否" xml:space="preserve">
|
|
||||||
<value>使用KeyA(是)或KeyB(否)?</value>
|
|
||||||
</data>
|
|
||||||
<data name="使用KeyA_是_或KeyB_否_还是不使用_用于全新白卡_" xml:space="preserve">
|
|
||||||
<value>使用KeyA(是)或KeyB(否),还是不使用(用于全新白卡)(取消)?</value>
|
|
||||||
</data>
|
|
||||||
<data name="俄语" xml:space="preserve">
|
|
||||||
<value>俄语</value>
|
|
||||||
</data>
|
|
||||||
<data name="共找到" xml:space="preserve">
|
|
||||||
<value>共找到 </value>
|
|
||||||
</data>
|
|
||||||
<data name="写入出错" xml:space="preserve">
|
|
||||||
<value>写入出错</value>
|
|
||||||
</data>
|
|
||||||
<data name="加载的S50卡文件大小异常" xml:space="preserve">
|
|
||||||
<value>加载的S50卡文件大小异常。</value>
|
|
||||||
</data>
|
|
||||||
<data name="加载的文件不存在" xml:space="preserve">
|
|
||||||
<value>加载的文件不存在。</value>
|
|
||||||
</data>
|
|
||||||
<data name="危险操作警告" xml:space="preserve">
|
|
||||||
<value>危险操作警告</value>
|
|
||||||
</data>
|
|
||||||
<data name="同时打开ACR122U支持可能会引起操作速度下降_请确认是否" xml:space="preserve">
|
|
||||||
<value>同时打开ACR122U支持可能会引起操作速度下降。
|
|
||||||
请确认是否要继续操作?</value>
|
|
||||||
</data>
|
|
||||||
<data name="字典文件_dic" xml:space="preserve">
|
|
||||||
<value>字典文件|*.dic</value>
|
|
||||||
</data>
|
|
||||||
<data name="密钥字典文件_dic" xml:space="preserve">
|
|
||||||
<value>密钥字典文件|*.dic</value>
|
|
||||||
</data>
|
|
||||||
<data name="将自动选择首个设备" xml:space="preserve">
|
|
||||||
<value>将自动选择首个设备:</value>
|
|
||||||
</data>
|
|
||||||
<data name="将要写入的文件存在错误_请用高级模式中的Hex工具打开查看" xml:space="preserve">
|
|
||||||
<value>将要写入的文件存在错误,请用高级模式中的Hex工具打开查看。</value>
|
|
||||||
</data>
|
|
||||||
<data name="已保存到" xml:space="preserve">
|
|
||||||
<value>已保存到</value>
|
|
||||||
</data>
|
|
||||||
<data name="已启用CUID空卡写入补丁" xml:space="preserve">
|
|
||||||
<value>已启用CUID空卡写入补丁</value>
|
|
||||||
</data>
|
|
||||||
<data name="已导出MCT文件" xml:space="preserve">
|
|
||||||
<value>已导出MCT文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="已导出密钥字典文件" xml:space="preserve">
|
|
||||||
<value>已导出密钥字典文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="已打开" xml:space="preserve">
|
|
||||||
<value>已打开。</value>
|
|
||||||
</data>
|
|
||||||
<data name="已找到_K" xml:space="preserve">
|
|
||||||
<value>已找到!K=</value>
|
|
||||||
</data>
|
|
||||||
<data name="已指定使用该NFC设备" xml:space="preserve">
|
|
||||||
<value>已指定使用该NFC设备:</value>
|
|
||||||
</data>
|
|
||||||
<data name="已更新扇区" xml:space="preserve">
|
|
||||||
<value>已更新扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="已重置并新建卡" xml:space="preserve">
|
|
||||||
<value>已重置并新建卡。</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行CUID_FUID卡片写入" xml:space="preserve">
|
|
||||||
<value>开始执行CUID/FUID卡片写入……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行HardNested收集数据" xml:space="preserve">
|
|
||||||
<value>开始执行HardNested收集数据……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行HardNested解密强化卡" xml:space="preserve">
|
|
||||||
<value>开始执行HardNested解密强化卡……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行MFOC解密" xml:space="preserve">
|
|
||||||
<value>开始执行MFOC解密……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UFUID卡片锁定" xml:space="preserve">
|
|
||||||
<value>开始执行UFUID卡片锁定……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片全格" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片全格……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片写入" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片写入……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片设定卡号" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片设定卡号……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片读取" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片读取……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行全加密卡片爆破" xml:space="preserve">
|
|
||||||
<value>开始执行全加密卡片爆破……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行写入M1卡片" xml:space="preserve">
|
|
||||||
<value>开始执行写入M1卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行字典模式MFOC解密" xml:space="preserve">
|
|
||||||
<value>开始执行字典模式MFOC解密……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行扫描卡片" xml:space="preserve">
|
|
||||||
<value>开始执行扫描卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行格式化M1卡片" xml:space="preserve">
|
|
||||||
<value>开始执行格式化M1卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行检测卡片加密" xml:space="preserve">
|
|
||||||
<value>开始执行检测卡片加密……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行检测设备" xml:space="preserve">
|
|
||||||
<value>开始执行检测设备……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行读取卡片" xml:space="preserve">
|
|
||||||
<value>开始执行读取卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行重置UID卡片卡号" xml:space="preserve">
|
|
||||||
<value>开始执行重置UID卡片卡号……</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前扇区数据仍有错误_不能执行修改" xml:space="preserve">
|
|
||||||
<value>当前扇区数据仍有错误,不能执行修改。</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前选定扇区" xml:space="preserve">
|
|
||||||
<value>当前选定扇区:??</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前选定扇区0" xml:space="preserve">
|
|
||||||
<value>当前选定扇区:</value>
|
|
||||||
</data>
|
|
||||||
<data name="您可以上传到云计算服务节点进行计算" xml:space="preserve">
|
|
||||||
<value>您可以上传到云计算服务节点进行计算。</value>
|
|
||||||
</data>
|
|
||||||
<data name="您已经运行了MifareOne_Tool_打开多个本程序可能" xml:space="preserve">
|
|
||||||
<value>您已经运行了MifareOne Tool,打开多个本程序可能会造成冲突及不可预料到的错误。
|
|
||||||
确认要继续吗?</value>
|
|
||||||
</data>
|
|
||||||
<data name="您正在试图重复运行" xml:space="preserve">
|
|
||||||
<value>您正在试图重复运行</value>
|
|
||||||
</data>
|
|
||||||
<data name="您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的" xml:space="preserve">
|
|
||||||
<value>您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的密钥源。
|
|
||||||
操作终止。</value>
|
|
||||||
</data>
|
|
||||||
<data name="扇区" xml:space="preserve">
|
|
||||||
<value>扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="扇区0" xml:space="preserve">
|
|
||||||
<value>扇区 </value>
|
|
||||||
</data>
|
|
||||||
<data name="打开了" xml:space="preserve">
|
|
||||||
<value>打开了</value>
|
|
||||||
</data>
|
|
||||||
<data name="打开出错" xml:space="preserve">
|
|
||||||
<value>打开出错</value>
|
|
||||||
</data>
|
|
||||||
<data name="提示信息" xml:space="preserve">
|
|
||||||
<value>提示信息</value>
|
|
||||||
</data>
|
|
||||||
<data name="文件内不是含有64个块数据_可能不完整或不兼容" xml:space="preserve">
|
|
||||||
<value>文件内不是含有64个块数据,可能不完整或不兼容。</value>
|
|
||||||
</data>
|
|
||||||
<data name="无密钥" xml:space="preserve">
|
|
||||||
<value>无密钥</value>
|
|
||||||
</data>
|
|
||||||
<data name="无法找到MFF08程序文件_操作终止" xml:space="preserve">
|
|
||||||
<value>无法找到MFF08程序文件。
|
|
||||||
操作终止。</value>
|
|
||||||
</data>
|
|
||||||
<data name="显示扇区" xml:space="preserve">
|
|
||||||
<value>显示扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="有任务运行中_不可执行" xml:space="preserve">
|
|
||||||
<value>有任务运行中,不可执行。</value>
|
|
||||||
</data>
|
|
||||||
<data name="未知" xml:space="preserve">
|
|
||||||
<value>未知</value>
|
|
||||||
</data>
|
|
||||||
<data name="未选择有效key_mfd" xml:space="preserve">
|
|
||||||
<value>未选择有效key.mfd。</value>
|
|
||||||
</data>
|
|
||||||
<data name="本地版本" xml:space="preserve">
|
|
||||||
<value>本地版本 </value>
|
|
||||||
</data>
|
|
||||||
<data name="标准" xml:space="preserve">
|
|
||||||
<value>标准</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在使用智能KeyABN" xml:space="preserve">
|
|
||||||
<value>正在使用智能KeyABN…</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在打开ACR122U支持" xml:space="preserve">
|
|
||||||
<value>正在打开ACR122U支持……</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在检索是否存在key_mfd" xml:space="preserve">
|
|
||||||
<value>正在检索是否存在key.mfd…</value>
|
|
||||||
</data>
|
|
||||||
<data name="没有发现任何有效的NFC设备" xml:space="preserve">
|
|
||||||
<value>没有发现任何有效的NFC设备。</value>
|
|
||||||
</data>
|
|
||||||
<data name="秒" xml:space="preserve">
|
|
||||||
<value>秒</value>
|
|
||||||
</data>
|
|
||||||
<data name="空闲" xml:space="preserve">
|
|
||||||
<value>空闲</value>
|
|
||||||
</data>
|
|
||||||
<data name="终端内容已保存至m1t_log文件" xml:space="preserve">
|
|
||||||
<value>终端内容已保存至m1t.log文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="设备串口" xml:space="preserve">
|
|
||||||
<value>设备串口:</value>
|
|
||||||
</data>
|
|
||||||
<data name="设备忙" xml:space="preserve">
|
|
||||||
<value>设备忙</value>
|
|
||||||
</data>
|
|
||||||
<data name="设置错误_请修改" xml:space="preserve">
|
|
||||||
<value>设置错误,请修改。</value>
|
|
||||||
</data>
|
|
||||||
<data name="识别了以下设备" xml:space="preserve">
|
|
||||||
<value>识别了以下设备:</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_已经自动为您更正" xml:space="preserve">
|
|
||||||
<value>该扇区UID校验值错误,已经自动为您更正。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_已自动更正" xml:space="preserve">
|
|
||||||
<value>该扇区UID校验值错误,已自动更正。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_请点击打开扇区0来自动更正" xml:space="preserve">
|
|
||||||
<value>该扇区UID校验值错误,请点击打开扇区0来自动更正。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区一切正常" xml:space="preserve">
|
|
||||||
<value>该扇区一切正常。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位损坏_写入将会损坏卡片_已重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位损坏,写入将会损坏卡片,已重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位损坏_写入将会损坏卡片_请重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位损坏,写入将会损坏卡片,请重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位无效_写入将会损坏卡片_已重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位无效,写入将会损坏卡片,已重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位无效_写入将会损坏卡片_请重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位无效,写入将会损坏卡片,请重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该操作将会清空UID卡内全部数据_清空后不可恢复_请确认是否" xml:space="preserve">
|
|
||||||
<value>该操作将会清空UID卡内全部数据!!!
|
|
||||||
清空后不可恢复!请确认是否要继续操作?</value>
|
|
||||||
</data>
|
|
||||||
<data name="该操作将会锁死UFUID卡片_锁死后不可恢复_无法再次更改0" xml:space="preserve">
|
|
||||||
<value>该操作将会锁死UFUID卡片!!!
|
|
||||||
锁死后不可恢复!无法再次更改0块!请确认是否要继续操作?</value>
|
|
||||||
</data>
|
|
||||||
<data name="该文件一切正常" xml:space="preserve">
|
|
||||||
<value>该文件一切正常。</value>
|
|
||||||
</data>
|
|
||||||
<data name="该文件存在以下错误" xml:space="preserve">
|
|
||||||
<value>该文件存在以下错误:
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="请检查接线是否正确_驱动是否正常安装_设备电源是否已经打开_" xml:space="preserve">
|
|
||||||
<value>请检查接线是否正确/驱动是否正常安装/设备电源是否已经打开(对于具有电源开关的型号)。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入UID号" xml:space="preserve">
|
|
||||||
<value>请输入UID号</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入已知Key" xml:space="preserve">
|
|
||||||
<value>请输入已知Key</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入已知的Key_以英文半角逗号分隔" xml:space="preserve">
|
|
||||||
<value>请输入已知的Key,以英文半角逗号分隔。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入需要写入的UID卡号_共8位十六进制数_如E44A3B" xml:space="preserve">
|
|
||||||
<value>请输入需要写入的UID卡号,共8位十六进制数,如E44A3BF1。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入需要更改的UID卡号_共8位十六进制数_如E44A3B" xml:space="preserve">
|
|
||||||
<value>请输入需要更改的UID卡号,共8位十六进制数,如E44A3BF1。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择MCT_txt文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>请选择MCT.txt文件保存位置及文件名</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择MFD文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>请选择MFD文件保存位置及文件名</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择一个包含目标卡密钥的MFD文件_通常是已经破解出的该卡" xml:space="preserve">
|
|
||||||
<value>请选择一个包含目标卡密钥的MFD文件(通常是已经破解出的该卡的MFD文件)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择密钥字典文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>请选择密钥字典文件保存位置及文件名</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择最后一次写卡导致0块损坏的卡数据文件" xml:space="preserve">
|
|
||||||
<value>请选择最后一次写卡导致0块损坏的卡数据文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要写入的MFD文件" xml:space="preserve">
|
|
||||||
<value>请选择需要写入的MFD文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MCT格式文件" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MCT格式文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MFD文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件_比较A" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MFD文件(比较A)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件_比较B" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MFD文件(比较B)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的密钥字典文件" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的密钥字典文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="输入的UID号不合法" xml:space="preserve">
|
|
||||||
<value>输入的UID号不合法</value>
|
|
||||||
</data>
|
|
||||||
<data name="运行中" xml:space="preserve">
|
|
||||||
<value>运行中</value>
|
|
||||||
</data>
|
|
||||||
<data name="运行时间" xml:space="preserve">
|
|
||||||
<value>运行时间:</value>
|
|
||||||
</data>
|
|
||||||
<data name="选择key_mfd" xml:space="preserve">
|
|
||||||
<value>选择key.mfd</value>
|
|
||||||
</data>
|
|
||||||
<data name="错误" xml:space="preserve">
|
|
||||||
<value>错误</value>
|
|
||||||
</data>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="round_chevron_right_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_chevron_right_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_clear_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_clear_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_done_all_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_done_all_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="outline_info_black_18pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\outline_info_black_18pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_done_all_black_18pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_done_all_black_18pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_done_all_black_24pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_done_all_black_24pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_done_black_24pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_done_black_24pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_done_outline_black_24pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_done_outline_black_24pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_info_black_18pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_info_black_18pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_sync_black_18pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_sync_black_18pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_timer_black_18pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_timer_black_18pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_update_black_18pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_update_black_18pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="round_update_black_24pt_1x" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\round_update_black_24pt_1x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
@ -1,556 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="_Nonce收集完毕" xml:space="preserve">
|
|
||||||
<value>## Nonce собрано ##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_Sector" xml:space="preserve">
|
|
||||||
<value>+ Сектор:</value>
|
|
||||||
</data>
|
|
||||||
<data name="_个块不同" xml:space="preserve">
|
|
||||||
<value> Разные блоки
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="_已保存" xml:space="preserve">
|
|
||||||
<value>## Сохранено-</value>
|
|
||||||
</data>
|
|
||||||
<data name="_已自动保存" xml:space="preserve">
|
|
||||||
<value>## Был сохранен автоматически -</value>
|
|
||||||
</data>
|
|
||||||
<data name="_扇区" xml:space="preserve">
|
|
||||||
<value># сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="_文件中的值错误" xml:space="preserve">
|
|
||||||
<value>## Ошибка в значении файла ###</value>
|
|
||||||
</data>
|
|
||||||
<data name="_有数据" xml:space="preserve">
|
|
||||||
<value> Есть данные</value>
|
|
||||||
</data>
|
|
||||||
<data name="_有错误" xml:space="preserve">
|
|
||||||
<value> Есть ошибка</value>
|
|
||||||
</data>
|
|
||||||
<data name="_未保存" xml:space="preserve">
|
|
||||||
<value>## Несохраненный ##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_程序已被强制停止" xml:space="preserve">
|
|
||||||
<value>## Программа была вынуждена остановить ##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_空扇区" xml:space="preserve">
|
|
||||||
<value> Пустой сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="_缓存文件异常" xml:space="preserve">
|
|
||||||
<value>## Исключение файла кэша ##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_计算得到BCC" xml:space="preserve">
|
|
||||||
<value>, рассчитать BCC =</value>
|
|
||||||
</data>
|
|
||||||
<data name="_软件版本" xml:space="preserve">
|
|
||||||
<value>Версия программного обеспечения - </value>
|
|
||||||
</data>
|
|
||||||
<data name="_运行出错" xml:space="preserve">
|
|
||||||
<value>## Ошибка запуска ##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_运行完毕" xml:space="preserve">
|
|
||||||
<value>## Завершение работы ##</value>
|
|
||||||
</data>
|
|
||||||
<data name="AB文件中一个或两个无效" xml:space="preserve">
|
|
||||||
<value>Один или два файла AB недействительны.</value>
|
|
||||||
</data>
|
|
||||||
<data name="ACR122U支持已经打开过" xml:space="preserve">
|
|
||||||
<value>Поддержка ACR122U включена.</value>
|
|
||||||
</data>
|
|
||||||
<data name="DUMP文件_dump_MFD文件_mfd" xml:space="preserve">
|
|
||||||
<value>DUMP файл | * .dump | MFD файл | * .mfd</value>
|
|
||||||
</data>
|
|
||||||
<data name="Information" xml:space="preserve">
|
|
||||||
<value>информация</value>
|
|
||||||
</data>
|
|
||||||
<data name="KeyA_B_N" xml:space="preserve">
|
|
||||||
<value>Keya / B / N</value>
|
|
||||||
</data>
|
|
||||||
<data name="MCT格式" xml:space="preserve">
|
|
||||||
<value>Формат MCT | *. *</value>
|
|
||||||
</data>
|
|
||||||
<data name="MFD文件_mfd_dump" xml:space="preserve">
|
|
||||||
<value>MFD файл | * .mfd; *. Dump</value>
|
|
||||||
</data>
|
|
||||||
<data name="MFD文件_mfd_DUMP文件_dump" xml:space="preserve">
|
|
||||||
<value>MFD файл | * .mfd | DUMP файл | * .dump</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_已取消" xml:space="preserve">
|
|
||||||
<value>Инструмент MifareOne - Отменено</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_已终止" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - прекращено</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_运行中" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - Запуск</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_运行完毕" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - Операция завершена</value>
|
|
||||||
</data>
|
|
||||||
<data name="nfc_bin_collect_exe" xml:space="preserve">
|
|
||||||
<value>НФК-бен / Collect.exe</value>
|
|
||||||
</data>
|
|
||||||
<data name="res" xml:space="preserve">
|
|
||||||
<value>,</value>
|
|
||||||
</data>
|
|
||||||
<data name="txt文件_txt" xml:space="preserve">
|
|
||||||
<value>Txt файл | * .txt</value>
|
|
||||||
</data>
|
|
||||||
<data name="UID已改为" xml:space="preserve">
|
|
||||||
<value>UID был изменен на</value>
|
|
||||||
</data>
|
|
||||||
<data name="不恰当的4字节UID长度" xml:space="preserve">
|
|
||||||
<value>Недопустимая длина UID в 4 байта</value>
|
|
||||||
</data>
|
|
||||||
<data name="使用KeyA_是_或KeyB_否" xml:space="preserve">
|
|
||||||
<value>Использовать KeyA (да) или KeyB (нет)?</value>
|
|
||||||
</data>
|
|
||||||
<data name="使用KeyA_是_或KeyB_否_还是不使用_用于全新白卡_" xml:space="preserve">
|
|
||||||
<value>Использовать KeyA (да) или KeyB (нет) или нет (для новых белых карточек) (отменить)?</value>
|
|
||||||
</data>
|
|
||||||
<data name="俄语" xml:space="preserve">
|
|
||||||
<value>Русский</value>
|
|
||||||
</data>
|
|
||||||
<data name="共找到" xml:space="preserve">
|
|
||||||
<value>найденный</value>
|
|
||||||
</data>
|
|
||||||
<data name="写入出错" xml:space="preserve">
|
|
||||||
<value>Ошибка записи</value>
|
|
||||||
</data>
|
|
||||||
<data name="加载的S50卡文件大小异常" xml:space="preserve">
|
|
||||||
<value>Размер загруженного файла карты S50 ненормальный.</value>
|
|
||||||
</data>
|
|
||||||
<data name="加载的文件不存在" xml:space="preserve">
|
|
||||||
<value>Загруженный файл не существует.</value>
|
|
||||||
</data>
|
|
||||||
<data name="危险操作警告" xml:space="preserve">
|
|
||||||
<value>Предупреждение об опасной работе</value>
|
|
||||||
</data>
|
|
||||||
<data name="同时打开ACR122U支持可能会引起操作速度下降_请确认是否" xml:space="preserve">
|
|
||||||
<value>Одновременное открытие опоры ACR122U может привести к снижению скорости работы.
|
|
||||||
Пожалуйста, подтвердите, если вы хотите продолжить?</value>
|
|
||||||
</data>
|
|
||||||
<data name="字典文件_dic" xml:space="preserve">
|
|
||||||
<value>Файл словаря | * .dic</value>
|
|
||||||
</data>
|
|
||||||
<data name="密钥字典文件_dic" xml:space="preserve">
|
|
||||||
<value>Файл ключевого словаря | * .dic</value>
|
|
||||||
</data>
|
|
||||||
<data name="将自动选择首个设备" xml:space="preserve">
|
|
||||||
<value>Первое устройство будет выбрано автоматически:</value>
|
|
||||||
</data>
|
|
||||||
<data name="将要写入的文件存在错误_请用高级模式中的Hex工具打开查看" xml:space="preserve">
|
|
||||||
<value>Существует ошибка в файле, который будет записан. Откройте вид с помощью инструмента Hex в расширенном режиме.</value>
|
|
||||||
</data>
|
|
||||||
<data name="已保存到" xml:space="preserve">
|
|
||||||
<value>Сохранено в</value>
|
|
||||||
</data>
|
|
||||||
<data name="已启用CUID空卡写入补丁" xml:space="preserve">
|
|
||||||
<value>CUID патч для записи пустой карты включен</value>
|
|
||||||
</data>
|
|
||||||
<data name="已导出MCT文件" xml:space="preserve">
|
|
||||||
<value>MCT файл был экспортирован</value>
|
|
||||||
</data>
|
|
||||||
<data name="已导出密钥字典文件" xml:space="preserve">
|
|
||||||
<value>Файл словаря экспортированного ключа</value>
|
|
||||||
</data>
|
|
||||||
<data name="已打开" xml:space="preserve">
|
|
||||||
<value>Он открыт.</value>
|
|
||||||
</data>
|
|
||||||
<data name="已找到_K" xml:space="preserve">
|
|
||||||
<value>Найдено! K =</value>
|
|
||||||
</data>
|
|
||||||
<data name="已指定使用该NFC设备" xml:space="preserve">
|
|
||||||
<value>Устройство NFC было указано для использования:</value>
|
|
||||||
</data>
|
|
||||||
<data name="已更新扇区" xml:space="preserve">
|
|
||||||
<value>Обновленный сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="已重置并新建卡" xml:space="preserve">
|
|
||||||
<value>Карта была сброшена и создана.</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行CUID_FUID卡片写入" xml:space="preserve">
|
|
||||||
<value>Начать выполнение записи CUID / FUID карты ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行HardNested收集数据" xml:space="preserve">
|
|
||||||
<value>Начните выполнять HardNested для сбора данных ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行HardNested解密强化卡" xml:space="preserve">
|
|
||||||
<value>Запустите карточку улучшения расшифровки HardNested ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行MFOC解密" xml:space="preserve">
|
|
||||||
<value>Начните выполнять расшифровку MFOC ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UFUID卡片锁定" xml:space="preserve">
|
|
||||||
<value>Начать выполнение блокировки карты UFUID ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片全格" xml:space="preserve">
|
|
||||||
<value>Начните выполнять UID карты в полноэкранном режиме ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片写入" xml:space="preserve">
|
|
||||||
<value>Начните выполнять запись UID карты ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片设定卡号" xml:space="preserve">
|
|
||||||
<value>Начните выполнять номер карты установки карты UID ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片读取" xml:space="preserve">
|
|
||||||
<value>Начать чтение карты UID...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行全加密卡片爆破" xml:space="preserve">
|
|
||||||
<value>Начните выполнять полное шифрование карты взрыва ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行写入M1卡片" xml:space="preserve">
|
|
||||||
<value>Начните запись на карту M1...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行字典模式MFOC解密" xml:space="preserve">
|
|
||||||
<value>Начать выполнение словарного режима MFOC для расшифровки ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行扫描卡片" xml:space="preserve">
|
|
||||||
<value>Начать сканирование карт...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行格式化M1卡片" xml:space="preserve">
|
|
||||||
<value>Начните выполнять отформатированную карту M1 ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行检测卡片加密" xml:space="preserve">
|
|
||||||
<value>Начните выполнять проверку карты шифрованием ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行检测设备" xml:space="preserve">
|
|
||||||
<value>Запуск испытательного оборудования...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行读取卡片" xml:space="preserve">
|
|
||||||
<value>Начать чтение карты...</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行重置UID卡片卡号" xml:space="preserve">
|
|
||||||
<value>Начните выполнять сброс номера карты UID ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前扇区数据仍有错误_不能执行修改" xml:space="preserve">
|
|
||||||
<value>Данные текущего сектора все еще находятся в ошибке и не могут быть изменены.</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前选定扇区" xml:space="preserve">
|
|
||||||
<value>Текущий выбранный сектор: ?</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前选定扇区0" xml:space="preserve">
|
|
||||||
<value>Текущий выбранный сектор:</value>
|
|
||||||
</data>
|
|
||||||
<data name="您可以上传到云计算服务节点进行计算" xml:space="preserve">
|
|
||||||
<value>Вы можете загрузить на узел службы облачных вычислений для расчета.</value>
|
|
||||||
</data>
|
|
||||||
<data name="您已经运行了MifareOne_Tool_打开多个本程序可能" xml:space="preserve">
|
|
||||||
<value>Вы уже запустили MifareOne Tool, и открытие нескольких программ может вызвать конфликты и непредсказуемые ошибки.
|
|
||||||
Вы уверены, что хотите продолжить?</value>
|
|
||||||
</data>
|
|
||||||
<data name="您正在试图重复运行" xml:space="preserve">
|
|
||||||
<value>Вы пытаетесь запустить несколько раз</value>
|
|
||||||
</data>
|
|
||||||
<data name="您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的" xml:space="preserve">
|
|
||||||
<value>Вы не предоставили файл данных карты, который вызвал 0 блоков повреждения, когда последняя запись была сделана в качестве ключевого источника при записи карты.
|
|
||||||
Операция прекращена.</value>
|
|
||||||
</data>
|
|
||||||
<data name="扇区" xml:space="preserve">
|
|
||||||
<value>Cектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="扇区0" xml:space="preserve">
|
|
||||||
<value>сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="打开了" xml:space="preserve">
|
|
||||||
<value>Открыть</value>
|
|
||||||
</data>
|
|
||||||
<data name="打开出错" xml:space="preserve">
|
|
||||||
<value>Ошибка открытия</value>
|
|
||||||
</data>
|
|
||||||
<data name="提示信息" xml:space="preserve">
|
|
||||||
<value>Быстрое сообщение</value>
|
|
||||||
</data>
|
|
||||||
<data name="文件内不是含有64个块数据_可能不完整或不兼容" xml:space="preserve">
|
|
||||||
<value>Файл не содержит 64 блоков данных и может быть неполным или несовместимым.</value>
|
|
||||||
</data>
|
|
||||||
<data name="无密钥" xml:space="preserve">
|
|
||||||
<value>Нет ключа</value>
|
|
||||||
</data>
|
|
||||||
<data name="无法找到MFF08程序文件_操作终止" xml:space="preserve">
|
|
||||||
<value>Не удалось найти программный файл MFF08.
|
|
||||||
Операция прекращена.</value>
|
|
||||||
</data>
|
|
||||||
<data name="显示扇区" xml:space="preserve">
|
|
||||||
<value>Показать сектор</value>
|
|
||||||
</data>
|
|
||||||
<data name="有任务运行中_不可执行" xml:space="preserve">
|
|
||||||
<value>Когда задача выполняется, она не может быть выполнена.</value>
|
|
||||||
</data>
|
|
||||||
<data name="未知" xml:space="preserve">
|
|
||||||
<value>неизвестный</value>
|
|
||||||
</data>
|
|
||||||
<data name="未选择有效key_mfd" xml:space="preserve">
|
|
||||||
<value>Действительный key.mfd не был выбран.</value>
|
|
||||||
</data>
|
|
||||||
<data name="本地版本" xml:space="preserve">
|
|
||||||
<value>Версия - </value>
|
|
||||||
</data>
|
|
||||||
<data name="标准" xml:space="preserve">
|
|
||||||
<value>Китайский</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在使用智能KeyABN" xml:space="preserve">
|
|
||||||
<value>Использование Smart KeyABN ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在打开ACR122U支持" xml:space="preserve">
|
|
||||||
<value>Открытие ACR122U поддержки ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在检索是否存在key_mfd" xml:space="preserve">
|
|
||||||
<value>Поиск key.mfd ...</value>
|
|
||||||
</data>
|
|
||||||
<data name="没有发现任何有效的NFC设备" xml:space="preserve">
|
|
||||||
<value>Не было обнаружено никаких активных устройств NFC.</value>
|
|
||||||
</data>
|
|
||||||
<data name="秒" xml:space="preserve">
|
|
||||||
<value> с.</value>
|
|
||||||
</data>
|
|
||||||
<data name="空闲" xml:space="preserve">
|
|
||||||
<value>Ожидание операции</value>
|
|
||||||
</data>
|
|
||||||
<data name="终端内容已保存至m1t_log文件" xml:space="preserve">
|
|
||||||
<value>Содержимое терминала сохранено в файле m1t.log</value>
|
|
||||||
</data>
|
|
||||||
<data name="设备串口" xml:space="preserve">
|
|
||||||
<value>Последовательный порт устройства:</value>
|
|
||||||
</data>
|
|
||||||
<data name="设备忙" xml:space="preserve">
|
|
||||||
<value>Устройство занято</value>
|
|
||||||
</data>
|
|
||||||
<data name="设置错误_请修改" xml:space="preserve">
|
|
||||||
<value>Неверная настройка, пожалуйста, измените ее.</value>
|
|
||||||
</data>
|
|
||||||
<data name="识别了以下设备" xml:space="preserve">
|
|
||||||
<value>Определены следующие устройства:</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_已经自动为您更正" xml:space="preserve">
|
|
||||||
<value>Значение проверки UID сектора неверно и было автоматически исправлено для вас.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_已自动更正" xml:space="preserve">
|
|
||||||
<value>Значение проверки UID сектора неверно и было автоматически исправлено.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_请点击打开扇区0来自动更正" xml:space="preserve">
|
|
||||||
<value>Неверное значение проверки UID сектора. Нажмите, чтобы открыть сектор 0 для автоматического исправления.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区一切正常" xml:space="preserve">
|
|
||||||
<value>Сектор все хорошо.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位损坏_写入将会损坏卡片_已重新设置" xml:space="preserve">
|
|
||||||
<value>Бит контроля доступа к сектору поврежден, и запись повредит карту и будет сброшена.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位损坏_写入将会损坏卡片_请重新设置" xml:space="preserve">
|
|
||||||
<value>Бит контроля доступа к сектору поврежден, и запись повредит карту. Пожалуйста, сбросьте ее.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位无效_写入将会损坏卡片_已重新设置" xml:space="preserve">
|
|
||||||
<value>Бит контроля доступа к сектору недействителен, запись повредит карту и будет сброшена.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位无效_写入将会损坏卡片_请重新设置" xml:space="preserve">
|
|
||||||
<value>Недопустимый бит контроля доступа к сектору. Запись повредит карту. Пожалуйста, сбросьте ее.
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该操作将会清空UID卡内全部数据_清空后不可恢复_请确认是否" xml:space="preserve">
|
|
||||||
<value>Это удалит все данные в UID-карте! ! !
|
|
||||||
Не может быть восстановлено после опустошения! Пожалуйста, подтвердите, если вы хотите продолжить?</value>
|
|
||||||
</data>
|
|
||||||
<data name="该操作将会锁死UFUID卡片_锁死后不可恢复_无法再次更改0" xml:space="preserve">
|
|
||||||
<value>Это заблокирует карту UFUID! ! !
|
|
||||||
Невозможно восстановить после блокировки! Невозможно изменить 0 блоков снова! Пожалуйста, подтвердите, если вы хотите продолжить?</value>
|
|
||||||
</data>
|
|
||||||
<data name="该文件一切正常" xml:space="preserve">
|
|
||||||
<value>С файлом все нормально.</value>
|
|
||||||
</data>
|
|
||||||
<data name="该文件存在以下错误" xml:space="preserve">
|
|
||||||
<value>Файл имеет следующую ошибку:
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="请检查接线是否正确_驱动是否正常安装_设备电源是否已经打开_" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, проверьте правильность подключения/драйвер правильно установлен/питание устройства включено (для моделей с выключателем питания).</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入UID号" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, введите номер UID</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入已知Key" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, введите известный ключ</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入已知的Key_以英文半角逗号分隔" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, введите известный ключ, разделенный запятой.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入需要写入的UID卡号_共8位十六进制数_如E44A3B" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, введите номер карты UID для записи, всего 8 шестнадцатеричных чисел, например, E44A3BF1.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入需要更改的UID卡号_共8位十六进制数_如E44A3B" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, введите номер карты UID для изменения, всего 8 шестнадцатеричных чисел, таких как E44A3BF1.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择MCT_txt文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл MCT.txt, чтобы сохранить местоположение и имя файла.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择MFD文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите место сохранения файла MFD и имя файла</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择一个包含目标卡密钥的MFD文件_通常是已经破解出的该卡" xml:space="preserve">
|
|
||||||
<value>Выберите файл MFD, содержащий ключ целевой карты (обычно это файл MFD карты, которая была взломана)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择密钥字典文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл словаря ключа, сохраните местоположение и имя файла</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择最后一次写卡导致0块损坏的卡数据文件" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл данных карты, который вызвал повреждение последней 0 карты.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要写入的MFD文件" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл MFD для записи</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MCT格式文件" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл формата MCT, который вы хотите открыть.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл MFD, который вы хотите открыть.</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件_比较A" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл MFD, который вы хотите открыть (сравните A)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件_比较B" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите файл MFD, который вы хотите открыть (сравните B)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的密钥字典文件" xml:space="preserve">
|
|
||||||
<value>Пожалуйста, выберите ключевой файл словаря, который вы хотите открыть.</value>
|
|
||||||
</data>
|
|
||||||
<data name="输入的UID号不合法" xml:space="preserve">
|
|
||||||
<value>Введенный номер UID недействителен.</value>
|
|
||||||
</data>
|
|
||||||
<data name="运行中" xml:space="preserve">
|
|
||||||
<value>Операция выполняется</value>
|
|
||||||
</data>
|
|
||||||
<data name="运行时间" xml:space="preserve">
|
|
||||||
<value>Время выполнения: </value>
|
|
||||||
</data>
|
|
||||||
<data name="选择key_mfd" xml:space="preserve">
|
|
||||||
<value>Выбрать key.mfd</value>
|
|
||||||
</data>
|
|
||||||
<data name="错误" xml:space="preserve">
|
|
||||||
<value>Ошибка</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,565 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="_0_9A_Fa_f_32" xml:space="preserve">
|
|
||||||
<value>[0-9A-Fa-f]{32}</value>
|
|
||||||
</data>
|
|
||||||
<data name="_Nonce收集完毕" xml:space="preserve">
|
|
||||||
<value>##Nonce收集完毕##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_Sector" xml:space="preserve">
|
|
||||||
<value>+Sector: </value>
|
|
||||||
</data>
|
|
||||||
<data name="_个块不同" xml:space="preserve">
|
|
||||||
<value> 个块不同
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="_已保存" xml:space="preserve">
|
|
||||||
<value>##已保存-</value>
|
|
||||||
</data>
|
|
||||||
<data name="_已自动保存" xml:space="preserve">
|
|
||||||
<value>##已自动保存-</value>
|
|
||||||
</data>
|
|
||||||
<data name="_扇区" xml:space="preserve">
|
|
||||||
<value>#扇区 </value>
|
|
||||||
</data>
|
|
||||||
<data name="_文件中的值错误" xml:space="preserve">
|
|
||||||
<value>##文件中的值错误##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_有数据" xml:space="preserve">
|
|
||||||
<value> 有数据</value>
|
|
||||||
</data>
|
|
||||||
<data name="_有错误" xml:space="preserve">
|
|
||||||
<value> 有错误</value>
|
|
||||||
</data>
|
|
||||||
<data name="_未保存" xml:space="preserve">
|
|
||||||
<value>##未保存##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_程序已被强制停止" xml:space="preserve">
|
|
||||||
<value>##程序已被强制停止##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_空扇区" xml:space="preserve">
|
|
||||||
<value> 空扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="_缓存文件异常" xml:space="preserve">
|
|
||||||
<value>##缓存文件异常##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_计算得到BCC" xml:space="preserve">
|
|
||||||
<value>,计算得到BCC=</value>
|
|
||||||
</data>
|
|
||||||
<data name="_软件版本" xml:space="preserve">
|
|
||||||
<value>#软件版本 </value>
|
|
||||||
</data>
|
|
||||||
<data name="_运行出错" xml:space="preserve">
|
|
||||||
<value>##运行出错##</value>
|
|
||||||
</data>
|
|
||||||
<data name="_运行完毕" xml:space="preserve">
|
|
||||||
<value>##运行完毕##</value>
|
|
||||||
</data>
|
|
||||||
<data name="AB文件中一个或两个无效" xml:space="preserve">
|
|
||||||
<value>AB文件中一个或两个无效。</value>
|
|
||||||
</data>
|
|
||||||
<data name="ACR122U支持已经打开过" xml:space="preserve">
|
|
||||||
<value>ACR122U支持已经打开过。</value>
|
|
||||||
</data>
|
|
||||||
<data name="DUMP文件_dump_MFD文件_mfd" xml:space="preserve">
|
|
||||||
<value>DUMP文件|*.dump|MFD文件|*.mfd</value>
|
|
||||||
</data>
|
|
||||||
<data name="Information" xml:space="preserve">
|
|
||||||
<value>Information</value>
|
|
||||||
</data>
|
|
||||||
<data name="InputError" xml:space="preserve">
|
|
||||||
<value>InputError</value>
|
|
||||||
</data>
|
|
||||||
<data name="KeyA_B_N" xml:space="preserve">
|
|
||||||
<value>KeyA/B/N</value>
|
|
||||||
</data>
|
|
||||||
<data name="MCT格式" xml:space="preserve">
|
|
||||||
<value>MCT格式|*.*</value>
|
|
||||||
</data>
|
|
||||||
<data name="MFD文件_mfd_dump" xml:space="preserve">
|
|
||||||
<value>MFD文件|*.mfd;*.dump</value>
|
|
||||||
</data>
|
|
||||||
<data name="MFD文件_mfd_DUMP文件_dump" xml:space="preserve">
|
|
||||||
<value>MFD文件|*.mfd|DUMP文件|*.dump</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_已取消" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 已取消</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_已终止" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 已终止</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_运行中" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 运行中</value>
|
|
||||||
</data>
|
|
||||||
<data name="MifareOne_Tool_运行完毕" xml:space="preserve">
|
|
||||||
<value>MifareOne Tool - 运行完毕</value>
|
|
||||||
</data>
|
|
||||||
<data name="nfc_bin_collect_exe" xml:space="preserve">
|
|
||||||
<value>nfc-bin/collect.exe</value>
|
|
||||||
</data>
|
|
||||||
<data name="res" xml:space="preserve">
|
|
||||||
<value>。</value>
|
|
||||||
</data>
|
|
||||||
<data name="txt文件_txt" xml:space="preserve">
|
|
||||||
<value>txt文件|*.txt</value>
|
|
||||||
</data>
|
|
||||||
<data name="UID已改为" xml:space="preserve">
|
|
||||||
<value>UID已改为</value>
|
|
||||||
</data>
|
|
||||||
<data name="不恰当的4字节UID长度" xml:space="preserve">
|
|
||||||
<value>不恰当的4字节UID长度</value>
|
|
||||||
</data>
|
|
||||||
<data name="使用KeyA_是_或KeyB_否" xml:space="preserve">
|
|
||||||
<value>使用KeyA(是)或KeyB(否)?</value>
|
|
||||||
</data>
|
|
||||||
<data name="使用KeyA_是_或KeyB_否_还是不使用_用于全新白卡_" xml:space="preserve">
|
|
||||||
<value>使用KeyA(是)或KeyB(否),还是不使用(用于全新白卡)(取消)?</value>
|
|
||||||
</data>
|
|
||||||
<data name="俄语" xml:space="preserve">
|
|
||||||
<value>俄语</value>
|
|
||||||
</data>
|
|
||||||
<data name="共找到" xml:space="preserve">
|
|
||||||
<value>共找到 </value>
|
|
||||||
</data>
|
|
||||||
<data name="写入出错" xml:space="preserve">
|
|
||||||
<value>写入出错</value>
|
|
||||||
</data>
|
|
||||||
<data name="加载的S50卡文件大小异常" xml:space="preserve">
|
|
||||||
<value>加载的S50卡文件大小异常。</value>
|
|
||||||
</data>
|
|
||||||
<data name="加载的文件不存在" xml:space="preserve">
|
|
||||||
<value>加载的文件不存在。</value>
|
|
||||||
</data>
|
|
||||||
<data name="危险操作警告" xml:space="preserve">
|
|
||||||
<value>危险操作警告</value>
|
|
||||||
</data>
|
|
||||||
<data name="同时打开ACR122U支持可能会引起操作速度下降_请确认是否" xml:space="preserve">
|
|
||||||
<value>同时打开ACR122U支持可能会引起操作速度下降。
|
|
||||||
请确认是否要继续操作?</value>
|
|
||||||
</data>
|
|
||||||
<data name="字典文件_dic" xml:space="preserve">
|
|
||||||
<value>字典文件|*.dic</value>
|
|
||||||
</data>
|
|
||||||
<data name="密钥字典文件_dic" xml:space="preserve">
|
|
||||||
<value>密钥字典文件|*.dic</value>
|
|
||||||
</data>
|
|
||||||
<data name="将自动选择首个设备" xml:space="preserve">
|
|
||||||
<value>将自动选择首个设备:</value>
|
|
||||||
</data>
|
|
||||||
<data name="将要写入的文件存在错误_请用高级模式中的Hex工具打开查看" xml:space="preserve">
|
|
||||||
<value>将要写入的文件存在错误,请用高级模式中的Hex工具打开查看。</value>
|
|
||||||
</data>
|
|
||||||
<data name="已保存到" xml:space="preserve">
|
|
||||||
<value>已保存到</value>
|
|
||||||
</data>
|
|
||||||
<data name="已启用CUID空卡写入补丁" xml:space="preserve">
|
|
||||||
<value>已启用CUID空卡写入补丁</value>
|
|
||||||
</data>
|
|
||||||
<data name="已导出MCT文件" xml:space="preserve">
|
|
||||||
<value>已导出MCT文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="已导出密钥字典文件" xml:space="preserve">
|
|
||||||
<value>已导出密钥字典文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="已打开" xml:space="preserve">
|
|
||||||
<value>已打开。</value>
|
|
||||||
</data>
|
|
||||||
<data name="已找到_K" xml:space="preserve">
|
|
||||||
<value>已找到!K=</value>
|
|
||||||
</data>
|
|
||||||
<data name="已指定使用该NFC设备" xml:space="preserve">
|
|
||||||
<value>已指定使用该NFC设备:</value>
|
|
||||||
</data>
|
|
||||||
<data name="已更新扇区" xml:space="preserve">
|
|
||||||
<value>已更新扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="已重置并新建卡" xml:space="preserve">
|
|
||||||
<value>已重置并新建卡。</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行CUID_FUID卡片写入" xml:space="preserve">
|
|
||||||
<value>开始执行CUID/FUID卡片写入……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行HardNested收集数据" xml:space="preserve">
|
|
||||||
<value>开始执行HardNested收集数据……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行HardNested解密强化卡" xml:space="preserve">
|
|
||||||
<value>开始执行HardNested解密强化卡……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行MFOC解密" xml:space="preserve">
|
|
||||||
<value>开始执行MFOC解密……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UFUID卡片锁定" xml:space="preserve">
|
|
||||||
<value>开始执行UFUID卡片锁定……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片全格" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片全格……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片写入" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片写入……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片设定卡号" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片设定卡号……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行UID卡片读取" xml:space="preserve">
|
|
||||||
<value>开始执行UID卡片读取……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行全加密卡片爆破" xml:space="preserve">
|
|
||||||
<value>开始执行全加密卡片爆破……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行写入M1卡片" xml:space="preserve">
|
|
||||||
<value>开始执行写入M1卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行字典模式MFOC解密" xml:space="preserve">
|
|
||||||
<value>开始执行字典模式MFOC解密……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行扫描卡片" xml:space="preserve">
|
|
||||||
<value>开始执行扫描卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行格式化M1卡片" xml:space="preserve">
|
|
||||||
<value>开始执行格式化M1卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行检测卡片加密" xml:space="preserve">
|
|
||||||
<value>开始执行检测卡片加密……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行检测设备" xml:space="preserve">
|
|
||||||
<value>开始执行检测设备……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行读取卡片" xml:space="preserve">
|
|
||||||
<value>开始执行读取卡片……</value>
|
|
||||||
</data>
|
|
||||||
<data name="开始执行重置UID卡片卡号" xml:space="preserve">
|
|
||||||
<value>开始执行重置UID卡片卡号……</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前扇区数据仍有错误_不能执行修改" xml:space="preserve">
|
|
||||||
<value>当前扇区数据仍有错误,不能执行修改。</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前选定扇区" xml:space="preserve">
|
|
||||||
<value>当前选定扇区:??</value>
|
|
||||||
</data>
|
|
||||||
<data name="当前选定扇区0" xml:space="preserve">
|
|
||||||
<value>当前选定扇区:</value>
|
|
||||||
</data>
|
|
||||||
<data name="您可以上传到云计算服务节点进行计算" xml:space="preserve">
|
|
||||||
<value>您可以上传到云计算服务节点进行计算。</value>
|
|
||||||
</data>
|
|
||||||
<data name="您已经运行了MifareOne_Tool_打开多个本程序可能" xml:space="preserve">
|
|
||||||
<value>您已经运行了MifareOne Tool,打开多个本程序可能会造成冲突及不可预料到的错误。
|
|
||||||
确认要继续吗?</value>
|
|
||||||
</data>
|
|
||||||
<data name="您正在试图重复运行" xml:space="preserve">
|
|
||||||
<value>您正在试图重复运行</value>
|
|
||||||
</data>
|
|
||||||
<data name="您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的" xml:space="preserve">
|
|
||||||
<value>您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的密钥源。
|
|
||||||
操作终止。</value>
|
|
||||||
</data>
|
|
||||||
<data name="扇区" xml:space="preserve">
|
|
||||||
<value>扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="扇区0" xml:space="preserve">
|
|
||||||
<value>扇区 </value>
|
|
||||||
</data>
|
|
||||||
<data name="打开了" xml:space="preserve">
|
|
||||||
<value>打开了</value>
|
|
||||||
</data>
|
|
||||||
<data name="打开出错" xml:space="preserve">
|
|
||||||
<value>打开出错</value>
|
|
||||||
</data>
|
|
||||||
<data name="提示信息" xml:space="preserve">
|
|
||||||
<value>提示信息</value>
|
|
||||||
</data>
|
|
||||||
<data name="文件内不是含有64个块数据_可能不完整或不兼容" xml:space="preserve">
|
|
||||||
<value>文件内不是含有64个块数据,可能不完整或不兼容。</value>
|
|
||||||
</data>
|
|
||||||
<data name="无密钥" xml:space="preserve">
|
|
||||||
<value>无密钥</value>
|
|
||||||
</data>
|
|
||||||
<data name="无法找到MFF08程序文件_操作终止" xml:space="preserve">
|
|
||||||
<value>无法找到MFF08程序文件。
|
|
||||||
操作终止。</value>
|
|
||||||
</data>
|
|
||||||
<data name="显示扇区" xml:space="preserve">
|
|
||||||
<value>显示扇区</value>
|
|
||||||
</data>
|
|
||||||
<data name="有任务运行中_不可执行" xml:space="preserve">
|
|
||||||
<value>有任务运行中,不可执行。</value>
|
|
||||||
</data>
|
|
||||||
<data name="未知" xml:space="preserve">
|
|
||||||
<value>未知</value>
|
|
||||||
</data>
|
|
||||||
<data name="未选择有效key_mfd" xml:space="preserve">
|
|
||||||
<value>未选择有效key.mfd。</value>
|
|
||||||
</data>
|
|
||||||
<data name="本地版本" xml:space="preserve">
|
|
||||||
<value>本地版本 </value>
|
|
||||||
</data>
|
|
||||||
<data name="标准" xml:space="preserve">
|
|
||||||
<value>标准</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在使用智能KeyABN" xml:space="preserve">
|
|
||||||
<value>正在使用智能KeyABN…</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在打开ACR122U支持" xml:space="preserve">
|
|
||||||
<value>正在打开ACR122U支持……</value>
|
|
||||||
</data>
|
|
||||||
<data name="正在检索是否存在key_mfd" xml:space="preserve">
|
|
||||||
<value>正在检索是否存在key.mfd…</value>
|
|
||||||
</data>
|
|
||||||
<data name="没有发现任何有效的NFC设备" xml:space="preserve">
|
|
||||||
<value>没有发现任何有效的NFC设备。</value>
|
|
||||||
</data>
|
|
||||||
<data name="秒" xml:space="preserve">
|
|
||||||
<value>秒</value>
|
|
||||||
</data>
|
|
||||||
<data name="空闲" xml:space="preserve">
|
|
||||||
<value>空闲</value>
|
|
||||||
</data>
|
|
||||||
<data name="终端内容已保存至m1t_log文件" xml:space="preserve">
|
|
||||||
<value>终端内容已保存至m1t.log文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="设备串口" xml:space="preserve">
|
|
||||||
<value>设备串口:</value>
|
|
||||||
</data>
|
|
||||||
<data name="设备忙" xml:space="preserve">
|
|
||||||
<value>设备忙</value>
|
|
||||||
</data>
|
|
||||||
<data name="设置错误_请修改" xml:space="preserve">
|
|
||||||
<value>设置错误,请修改。</value>
|
|
||||||
</data>
|
|
||||||
<data name="识别了以下设备" xml:space="preserve">
|
|
||||||
<value>识别了以下设备:</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_已经自动为您更正" xml:space="preserve">
|
|
||||||
<value>该扇区UID校验值错误,已经自动为您更正。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_已自动更正" xml:space="preserve">
|
|
||||||
<value>该扇区UID校验值错误,已自动更正。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区UID校验值错误_请点击打开扇区0来自动更正" xml:space="preserve">
|
|
||||||
<value>该扇区UID校验值错误,请点击打开扇区0来自动更正。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区一切正常" xml:space="preserve">
|
|
||||||
<value>该扇区一切正常。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位损坏_写入将会损坏卡片_已重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位损坏,写入将会损坏卡片,已重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位损坏_写入将会损坏卡片_请重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位损坏,写入将会损坏卡片,请重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位无效_写入将会损坏卡片_已重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位无效,写入将会损坏卡片,已重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该扇区访问控制位无效_写入将会损坏卡片_请重新设置" xml:space="preserve">
|
|
||||||
<value>该扇区访问控制位无效,写入将会损坏卡片,请重新设置。
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="该操作将会清空UID卡内全部数据_清空后不可恢复_请确认是否" xml:space="preserve">
|
|
||||||
<value>该操作将会清空UID卡内全部数据!!!
|
|
||||||
清空后不可恢复!请确认是否要继续操作?</value>
|
|
||||||
</data>
|
|
||||||
<data name="该操作将会锁死UFUID卡片_锁死后不可恢复_无法再次更改0" xml:space="preserve">
|
|
||||||
<value>该操作将会锁死UFUID卡片!!!
|
|
||||||
锁死后不可恢复!无法再次更改0块!请确认是否要继续操作?</value>
|
|
||||||
</data>
|
|
||||||
<data name="该文件一切正常" xml:space="preserve">
|
|
||||||
<value>该文件一切正常。</value>
|
|
||||||
</data>
|
|
||||||
<data name="该文件存在以下错误" xml:space="preserve">
|
|
||||||
<value>该文件存在以下错误:
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="请检查接线是否正确_驱动是否正常安装_设备电源是否已经打开_" xml:space="preserve">
|
|
||||||
<value>请检查接线是否正确/驱动是否正常安装/设备电源是否已经打开(对于具有电源开关的型号)。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入UID号" xml:space="preserve">
|
|
||||||
<value>请输入UID号</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入已知Key" xml:space="preserve">
|
|
||||||
<value>请输入已知Key</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入已知的Key_以英文半角逗号分隔" xml:space="preserve">
|
|
||||||
<value>请输入已知的Key,以英文半角逗号分隔。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入需要写入的UID卡号_共8位十六进制数_如E44A3B" xml:space="preserve">
|
|
||||||
<value>请输入需要写入的UID卡号,共8位十六进制数,如E44A3BF1。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请输入需要更改的UID卡号_共8位十六进制数_如E44A3B" xml:space="preserve">
|
|
||||||
<value>请输入需要更改的UID卡号,共8位十六进制数,如E44A3BF1。</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择MCT_txt文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>请选择MCT.txt文件保存位置及文件名</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择MFD文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>请选择MFD文件保存位置及文件名</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择一个包含目标卡密钥的MFD文件_通常是已经破解出的该卡" xml:space="preserve">
|
|
||||||
<value>请选择一个包含目标卡密钥的MFD文件(通常是已经破解出的该卡的MFD文件)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择密钥字典文件保存位置及文件名" xml:space="preserve">
|
|
||||||
<value>请选择密钥字典文件保存位置及文件名</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择最后一次写卡导致0块损坏的卡数据文件" xml:space="preserve">
|
|
||||||
<value>请选择最后一次写卡导致0块损坏的卡数据文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要写入的MFD文件" xml:space="preserve">
|
|
||||||
<value>请选择需要写入的MFD文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MCT格式文件" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MCT格式文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MFD文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件_比较A" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MFD文件(比较A)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的MFD文件_比较B" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的MFD文件(比较B)</value>
|
|
||||||
</data>
|
|
||||||
<data name="请选择需要打开的密钥字典文件" xml:space="preserve">
|
|
||||||
<value>请选择需要打开的密钥字典文件</value>
|
|
||||||
</data>
|
|
||||||
<data name="输入的UID号不合法" xml:space="preserve">
|
|
||||||
<value>输入的UID号不合法</value>
|
|
||||||
</data>
|
|
||||||
<data name="运行中" xml:space="preserve">
|
|
||||||
<value>运行中</value>
|
|
||||||
</data>
|
|
||||||
<data name="运行时间" xml:space="preserve">
|
|
||||||
<value>运行时间:</value>
|
|
||||||
</data>
|
|
||||||
<data name="选择key_mfd" xml:space="preserve">
|
|
||||||
<value>选择key.mfd</value>
|
|
||||||
</data>
|
|
||||||
<data name="错误" xml:space="preserve">
|
|
||||||
<value>错误</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
22
MifareOneTool/Properties/Settings.Designer.cs
generated
@ -1,10 +1,10 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// Этот код создан программой.
|
// 此代码由工具生成。
|
||||||
// Исполняемая версия:4.0.30319.42000
|
// 运行时版本:4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
// повторной генерации кода.
|
// 重新生成代码,这些更改将会丢失。
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ namespace MifareOneTool.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
@ -175,17 +175,5 @@ namespace MifareOneTool.Properties {
|
|||||||
this["CuidKeyOver"] = value;
|
this["CuidKeyOver"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
|
||||||
public string Language {
|
|
||||||
get {
|
|
||||||
return ((string)(this["Language"]));
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
this["Language"] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,8 +41,5 @@
|
|||||||
<Setting Name="CuidKeyOver" Type="System.Boolean" Scope="User">
|
<Setting Name="CuidKeyOver" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">True</Value>
|
<Value Profile="(Default)">True</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="Language" Type="System.String" Scope="User">
|
|
||||||
<Value Profile="(Default)" />
|
|
||||||
</Setting>
|
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
Before Width: | Height: | Size: 247 B |
|
Before Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 200 B |
|
Before Width: | Height: | Size: 191 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 309 B |
|
Before Width: | Height: | Size: 162 B |
|
Before Width: | Height: | Size: 248 B |
|
Before Width: | Height: | Size: 273 B |
|
Before Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 214 B |
|
Before Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 271 B |
|
Before Width: | Height: | Size: 328 B |
@ -1,286 +0,0 @@
|
|||||||
using MultiLang;
|
|
||||||
using System;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Collections;
|
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
|
||||||
using System.IO.IsolatedStorage;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Text;
|
|
||||||
using System.Xml;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace MultiLang
|
|
||||||
{
|
|
||||||
public partial class SelectLanguage : Form
|
|
||||||
{
|
|
||||||
public SelectLanguage()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------
|
|
||||||
//Enums
|
|
||||||
//----------------------------------------------
|
|
||||||
public enum enumStartupMode
|
|
||||||
{
|
|
||||||
UseDefaultCulture = 0,
|
|
||||||
UseSavedCulture = 1,
|
|
||||||
ShowDialog = 2
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum enumCultureMatch
|
|
||||||
{
|
|
||||||
None = 0,
|
|
||||||
Language = 1,
|
|
||||||
Neutral = 2,
|
|
||||||
Region = 3
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------
|
|
||||||
//Member Variables
|
|
||||||
//----------------------------------------------
|
|
||||||
private enumStartupMode StartupMode;
|
|
||||||
private CultureInfo SelectedCulture;
|
|
||||||
|
|
||||||
// The array of supported cultures is updated automatically by Multi-Language for Visual Studio
|
|
||||||
private static string[] SupportedCultures = { "ru", "zh" } ; //MLHIDE
|
|
||||||
|
|
||||||
//----------------------------------------------
|
|
||||||
//Public Methods
|
|
||||||
//----------------------------------------------
|
|
||||||
public void LoadSettingsAndShow()
|
|
||||||
{
|
|
||||||
LoadSettingsAndShow(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadSettingsAndShow(Boolean ForceShow)
|
|
||||||
{
|
|
||||||
LoadSettings();
|
|
||||||
|
|
||||||
if (ForceShow || (StartupMode == enumStartupMode.ShowDialog))
|
|
||||||
{
|
|
||||||
this.ShowDialog();
|
|
||||||
|
|
||||||
if (lstCultures.SelectedItem != null)
|
|
||||||
{
|
|
||||||
SelectedCulture = (CultureInfo)lstCultures.SelectedItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveSettings();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StartupMode != enumStartupMode.UseDefaultCulture)
|
|
||||||
{
|
|
||||||
if (SelectedCulture != null)
|
|
||||||
{
|
|
||||||
// Actually change the culture of the current thread.
|
|
||||||
Thread.CurrentThread.CurrentUICulture = SelectedCulture;
|
|
||||||
|
|
||||||
if (ForceShow)
|
|
||||||
{
|
|
||||||
#if true
|
|
||||||
// The code generated by VS.NET cannot be used to change the
|
|
||||||
// language of an active form. Show a message to this effect.
|
|
||||||
MessageBox.Show("The settings have been saved.\n" +
|
|
||||||
"The language change will take full effect the next time you start the program.",
|
|
||||||
"Select language",
|
|
||||||
MessageBoxButtons.OK);
|
|
||||||
#else
|
|
||||||
MLRuntime.MLRuntime.BroadcastLanguageChanged() ;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------
|
|
||||||
//Private Methods
|
|
||||||
//----------------------------------------------
|
|
||||||
|
|
||||||
//
|
|
||||||
// SaveSettings and LoadSettings use an XML file, saved in so called
|
|
||||||
// Isolated Storage.
|
|
||||||
//
|
|
||||||
// I'm not convinced that this is really the best way or the best place
|
|
||||||
// to store this information, but it's certainly a .NET way to do it.
|
|
||||||
//
|
|
||||||
private void LoadSettings()
|
|
||||||
{
|
|
||||||
// Set the defaults
|
|
||||||
StartupMode = enumStartupMode.ShowDialog;
|
|
||||||
SelectedCulture = Thread.CurrentThread.CurrentUICulture;
|
|
||||||
|
|
||||||
// Create an IsolatedStorageFile object and get the store
|
|
||||||
// for this application.
|
|
||||||
IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForDomain();
|
|
||||||
|
|
||||||
// Check whether the file exists
|
|
||||||
if (isoStorage.GetFileNames("CultureSettings.xml").Length > 0) //MLHIDE
|
|
||||||
{
|
|
||||||
// Create isoStorage StreamReader.
|
|
||||||
StreamReader stmReader = new StreamReader
|
|
||||||
(new IsolatedStorageFileStream
|
|
||||||
("CultureSettings.xml",
|
|
||||||
FileMode.Open,
|
|
||||||
isoStorage)); //MLHIDE
|
|
||||||
|
|
||||||
XmlTextReader xmlReader = new XmlTextReader(stmReader);
|
|
||||||
|
|
||||||
// Loop through the XML file until all Nodes have been read and processed.
|
|
||||||
while (xmlReader.Read())
|
|
||||||
{
|
|
||||||
switch (xmlReader.Name)
|
|
||||||
{
|
|
||||||
case "StartupMode": //MLHIDE
|
|
||||||
StartupMode = (enumStartupMode)int.Parse(xmlReader.ReadString());
|
|
||||||
break;
|
|
||||||
case "Culture": //MLHIDE
|
|
||||||
String CultName = xmlReader.ReadString();
|
|
||||||
CultureInfo CultInfo = new CultureInfo(CultName);
|
|
||||||
SelectedCulture = CultInfo;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the reader
|
|
||||||
xmlReader.Close();
|
|
||||||
stmReader.Close();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
isoStorage.Close();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SaveSettings()
|
|
||||||
{
|
|
||||||
|
|
||||||
// Get an isolated store for user, domain, and assembly and put it into
|
|
||||||
// an IsolatedStorageFile object.
|
|
||||||
IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForDomain();
|
|
||||||
|
|
||||||
// Create isoStorage StreamWriter and assign it to an XmlTextWriter variable.
|
|
||||||
IsolatedStorageFileStream stmWriter = new IsolatedStorageFileStream("CultureSettings.xml", FileMode.Create, isoStorage); //MLHIDE
|
|
||||||
XmlTextWriter writer = new XmlTextWriter(stmWriter, Encoding.UTF8);
|
|
||||||
|
|
||||||
writer.Formatting = Formatting.Indented;
|
|
||||||
writer.WriteStartDocument();
|
|
||||||
writer.WriteStartElement("CultureSettings"); //MLHIDE
|
|
||||||
writer.WriteStartElement("StartupMode"); //MLHIDE
|
|
||||||
writer.WriteString(((int)StartupMode).ToString());
|
|
||||||
writer.WriteEndElement();
|
|
||||||
writer.WriteStartElement("Culture"); //MLHIDE
|
|
||||||
writer.WriteString(SelectedCulture.Name);
|
|
||||||
writer.WriteEndElement();
|
|
||||||
writer.WriteEndElement();
|
|
||||||
writer.Flush();
|
|
||||||
writer.Close();
|
|
||||||
|
|
||||||
stmWriter.Close();
|
|
||||||
isoStorage.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SelectLanguage_Load(object sender, System.EventArgs e)
|
|
||||||
{
|
|
||||||
enumCultureMatch Match = enumCultureMatch.None;
|
|
||||||
enumCultureMatch NewMatch = enumCultureMatch.None;
|
|
||||||
|
|
||||||
// Version 1 detected which subdirectories are present.
|
|
||||||
|
|
||||||
// String AsmLocation = Assembly.GetExecutingAssembly ( ).Location;
|
|
||||||
// String AsmPath = Path.GetDirectoryName ( AsmLocation );
|
|
||||||
// List<String> DirList = new List<String> ( );
|
|
||||||
//
|
|
||||||
// DirList.AddRange ( Directory.GetDirectories ( AsmPath, "??" ) );
|
|
||||||
// DirList.AddRange ( Directory.GetDirectories ( AsmPath, "??-??*" ) );
|
|
||||||
//
|
|
||||||
// foreach ( String SubDirName in DirList )
|
|
||||||
// {
|
|
||||||
// try
|
|
||||||
// {
|
|
||||||
// String BaseName = Path.GetFileName ( SubDirName );
|
|
||||||
// CultureInfo Cult = new CultureInfo ( BaseName );
|
|
||||||
|
|
||||||
// Version 2 used the SupportedCultures array in MlString.h,
|
|
||||||
// which is autoamatically updated by Multi-Language for Visual Studio
|
|
||||||
// foreach ( String IetfTag in ml.SupportedCultures )
|
|
||||||
|
|
||||||
// Version 3 uses the SupportedCultures array in this file,
|
|
||||||
// which is autoamatically updated by Multi-Language for Visual Studio
|
|
||||||
foreach (String IetfTag in SupportedCultures)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
CultureInfo Cult = new CultureInfo(IetfTag);
|
|
||||||
|
|
||||||
// Note: The property lstCultures.DisplayName is set to "NativeName" in order to
|
|
||||||
// show language name in its own language.
|
|
||||||
lstCultures.Items.Add(Cult);
|
|
||||||
|
|
||||||
// The rest of this logic is just to find the nearest match to the
|
|
||||||
// current UI culture.
|
|
||||||
// How well does this culture match?
|
|
||||||
if (SelectedCulture.Equals(Cult))
|
|
||||||
{
|
|
||||||
NewMatch = enumCultureMatch.Region;
|
|
||||||
}
|
|
||||||
else if (Cult.TwoLetterISOLanguageName == SelectedCulture.TwoLetterISOLanguageName)
|
|
||||||
{
|
|
||||||
if (Cult.IsNeutralCulture)
|
|
||||||
NewMatch = enumCultureMatch.Neutral;
|
|
||||||
else
|
|
||||||
NewMatch = enumCultureMatch.Language;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Is that better than the best match so far?
|
|
||||||
if (NewMatch > Match)
|
|
||||||
{
|
|
||||||
Match = NewMatch;
|
|
||||||
lstCultures.SelectedItem = Cult;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (StartupMode)
|
|
||||||
{
|
|
||||||
case enumStartupMode.ShowDialog:
|
|
||||||
rbShow.Checked = true;
|
|
||||||
break;
|
|
||||||
case enumStartupMode.UseDefaultCulture:
|
|
||||||
rbDefault.Checked = true;
|
|
||||||
break;
|
|
||||||
case enumStartupMode.UseSavedCulture:
|
|
||||||
rbSelected.Checked = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void btOK_Click(object sender, System.EventArgs e)
|
|
||||||
{
|
|
||||||
if (lstCultures.SelectedItem != null)
|
|
||||||
{
|
|
||||||
SelectedCulture = (CultureInfo)lstCultures.SelectedItem;
|
|
||||||
}
|
|
||||||
this.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnStartup_CheckedChanged(object sender, System.EventArgs e)
|
|
||||||
{
|
|
||||||
if (rbShow.Checked)
|
|
||||||
StartupMode = enumStartupMode.ShowDialog;
|
|
||||||
else if (rbSelected.Checked)
|
|
||||||
StartupMode = enumStartupMode.UseSavedCulture;
|
|
||||||
else if (rbDefault.Checked)
|
|
||||||
StartupMode = enumStartupMode.UseDefaultCulture;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
161
MifareOneTool/SelectLanguage.designer.cs
generated
@ -1,161 +0,0 @@
|
|||||||
namespace MultiLang
|
|
||||||
{
|
|
||||||
partial class SelectLanguage
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Required designer variable.
|
|
||||||
/// </summary>
|
|
||||||
private System.ComponentModel.IContainer components = null;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Clean up any resources being used.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
|
||||||
protected override void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (disposing && (components != null))
|
|
||||||
{
|
|
||||||
components.Dispose();
|
|
||||||
}
|
|
||||||
base.Dispose(disposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Windows Form Designer generated code
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Required method for Designer support - do not modify
|
|
||||||
/// the contents of this method with the code editor.
|
|
||||||
/// </summary>
|
|
||||||
private void InitializeComponent()
|
|
||||||
{
|
|
||||||
this.rbSelected = new System.Windows.Forms.RadioButton();
|
|
||||||
this.rbShow = new System.Windows.Forms.RadioButton();
|
|
||||||
this.lblStartup = new System.Windows.Forms.Label();
|
|
||||||
this.rbDefault = new System.Windows.Forms.RadioButton();
|
|
||||||
this.lstCultures = new System.Windows.Forms.ListBox();
|
|
||||||
this.btOK = new System.Windows.Forms.Button();
|
|
||||||
this.Panel1 = new System.Windows.Forms.Panel();
|
|
||||||
this.Panel1.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
|
||||||
//
|
|
||||||
// rbSelected
|
|
||||||
//
|
|
||||||
this.rbSelected.AccessibleDescription = "";
|
|
||||||
this.rbSelected.AccessibleName = "";
|
|
||||||
this.rbSelected.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
|
||||||
this.rbSelected.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
|
||||||
this.rbSelected.Location = new System.Drawing.Point(4, 40);
|
|
||||||
this.rbSelected.Name = "rbSelected";
|
|
||||||
this.rbSelected.Size = new System.Drawing.Size(209, 20);
|
|
||||||
this.rbSelected.TabIndex = 2;
|
|
||||||
this.rbSelected.Text = "Use the selected language";
|
|
||||||
this.rbSelected.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged);
|
|
||||||
//
|
|
||||||
// rbShow
|
|
||||||
//
|
|
||||||
this.rbShow.AccessibleDescription = "";
|
|
||||||
this.rbShow.AccessibleName = "";
|
|
||||||
this.rbShow.Checked = true;
|
|
||||||
this.rbShow.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
|
||||||
this.rbShow.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
|
||||||
this.rbShow.Location = new System.Drawing.Point(4, 20);
|
|
||||||
this.rbShow.Name = "rbShow";
|
|
||||||
this.rbShow.Size = new System.Drawing.Size(209, 20);
|
|
||||||
this.rbShow.TabIndex = 1;
|
|
||||||
this.rbShow.TabStop = true;
|
|
||||||
this.rbShow.Text = "Show this form again";
|
|
||||||
this.rbShow.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged);
|
|
||||||
//
|
|
||||||
// lblStartup
|
|
||||||
//
|
|
||||||
this.lblStartup.AccessibleDescription = "";
|
|
||||||
this.lblStartup.AccessibleName = "";
|
|
||||||
this.lblStartup.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
|
||||||
this.lblStartup.Location = new System.Drawing.Point(4, 3);
|
|
||||||
this.lblStartup.Name = "lblStartup";
|
|
||||||
this.lblStartup.Size = new System.Drawing.Size(209, 17);
|
|
||||||
this.lblStartup.TabIndex = 0;
|
|
||||||
this.lblStartup.Text = "Next time ...";
|
|
||||||
//
|
|
||||||
// rbDefault
|
|
||||||
//
|
|
||||||
this.rbDefault.AccessibleDescription = "";
|
|
||||||
this.rbDefault.AccessibleName = "";
|
|
||||||
this.rbDefault.FlatStyle = System.Windows.Forms.FlatStyle.System;
|
|
||||||
this.rbDefault.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
|
||||||
this.rbDefault.Location = new System.Drawing.Point(4, 60);
|
|
||||||
this.rbDefault.Name = "rbDefault";
|
|
||||||
this.rbDefault.Size = new System.Drawing.Size(209, 20);
|
|
||||||
this.rbDefault.TabIndex = 3;
|
|
||||||
this.rbDefault.Text = "Use the default language";
|
|
||||||
this.rbDefault.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged);
|
|
||||||
//
|
|
||||||
// lstCultures
|
|
||||||
//
|
|
||||||
this.lstCultures.AccessibleDescription = "";
|
|
||||||
this.lstCultures.AccessibleName = "";
|
|
||||||
this.lstCultures.DisplayMember = "NativeName";
|
|
||||||
this.lstCultures.Font = new System.Drawing.Font("Arial", 9.75F);
|
|
||||||
this.lstCultures.IntegralHeight = false;
|
|
||||||
this.lstCultures.ItemHeight = 16;
|
|
||||||
this.lstCultures.Location = new System.Drawing.Point(4, 4);
|
|
||||||
this.lstCultures.Name = "lstCultures";
|
|
||||||
this.lstCultures.Size = new System.Drawing.Size(264, 220);
|
|
||||||
this.lstCultures.TabIndex = 7;
|
|
||||||
this.lstCultures.DoubleClick += new System.EventHandler(this.btOK_Click);
|
|
||||||
//
|
|
||||||
// btOK
|
|
||||||
//
|
|
||||||
this.btOK.AccessibleDescription = "";
|
|
||||||
this.btOK.AccessibleName = "";
|
|
||||||
this.btOK.ImeMode = System.Windows.Forms.ImeMode.NoControl;
|
|
||||||
this.btOK.Location = new System.Drawing.Point(180, 316);
|
|
||||||
this.btOK.Name = "btOK";
|
|
||||||
this.btOK.Size = new System.Drawing.Size(90, 32);
|
|
||||||
this.btOK.TabIndex = 8;
|
|
||||||
this.btOK.Text = "OK";
|
|
||||||
this.btOK.Click += new System.EventHandler(this.btOK_Click);
|
|
||||||
//
|
|
||||||
// Panel1
|
|
||||||
//
|
|
||||||
this.Panel1.AccessibleDescription = "";
|
|
||||||
this.Panel1.AccessibleName = "";
|
|
||||||
this.Panel1.BackColor = System.Drawing.SystemColors.Control;
|
|
||||||
this.Panel1.Controls.Add(this.rbDefault);
|
|
||||||
this.Panel1.Controls.Add(this.rbSelected);
|
|
||||||
this.Panel1.Controls.Add(this.rbShow);
|
|
||||||
this.Panel1.Controls.Add(this.lblStartup);
|
|
||||||
this.Panel1.Location = new System.Drawing.Point(4, 228);
|
|
||||||
this.Panel1.Name = "Panel1";
|
|
||||||
this.Panel1.Size = new System.Drawing.Size(264, 84);
|
|
||||||
this.Panel1.TabIndex = 9;
|
|
||||||
//
|
|
||||||
// SelectLanguage
|
|
||||||
//
|
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
||||||
this.ClientSize = new System.Drawing.Size(272, 352);
|
|
||||||
this.Controls.Add(this.lstCultures);
|
|
||||||
this.Controls.Add(this.btOK);
|
|
||||||
this.Controls.Add(this.Panel1);
|
|
||||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
|
||||||
this.Name = "SelectLanguage";
|
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
|
||||||
this.Text = "SelectLanguage";
|
|
||||||
this.Load += new System.EventHandler(this.SelectLanguage_Load);
|
|
||||||
this.Panel1.ResumeLayout(false);
|
|
||||||
this.ResumeLayout(false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
internal System.Windows.Forms.RadioButton rbSelected;
|
|
||||||
internal System.Windows.Forms.RadioButton rbShow;
|
|
||||||
internal System.Windows.Forms.Label lblStartup;
|
|
||||||
internal System.Windows.Forms.RadioButton rbDefault;
|
|
||||||
internal System.Windows.Forms.ListBox lstCultures;
|
|
||||||
internal System.Windows.Forms.Button btOK;
|
|
||||||
internal System.Windows.Forms.Panel Panel1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,120 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
@ -53,9 +53,6 @@
|
|||||||
<setting name="CuidKeyOver" serializeAs="String">
|
<setting name="CuidKeyOver" serializeAs="String">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="Language" serializeAs="String">
|
|
||||||
<value />
|
|
||||||
</setting>
|
|
||||||
</MifareOneTool.Properties.Settings>
|
</MifareOneTool.Properties.Settings>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
38
README.md
@ -1,4 +1,40 @@
|
|||||||
# MifareOneTool
|
# MifareOneTool
|
||||||
A GUI Mifare Classic tool on Windows
|
A GUI Mifare Classic tool on Windows
|
||||||
|
|
||||||
因作者事务繁忙,软件不再更新。
|
## 文档版本
|
||||||
|
- v1.5.0
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
1. [下载最新发布](https://github.com/xcicode/MifareOneTool/releases/latest)
|
||||||
|
2. 解压M1T-Release.zip到独立目录(建议目录中不要出现空格)
|
||||||
|
3. 就绪!
|
||||||
|
|
||||||
|
## 兼容设备
|
||||||
|
PN532-UART
|
||||||
|
ACR122U(需要手动打开支持)
|
||||||
|
|
||||||
|
## 高级界面功能说明
|
||||||
|
检测:检测NFC设备连接状态
|
||||||
|
手动扫描: 扫描读卡器上的卡片并显示基本信息
|
||||||
|
手动CLI: 打开cmd,切换到nfc-bin/下,可手动调用命令行工具
|
||||||
|
读卡: 读取普通卡片,需要指定KeyA/B,如果不是默认密码或空白卡片,需要指定密钥文件
|
||||||
|
写卡: 写入普通卡片,需要指定KeyA/B,如果不是默认密码或空白卡片,需要指定密钥文件
|
||||||
|
选择key.mfd: 指定密钥文件
|
||||||
|
UID重置: 将UID卡的UID重置为随机数
|
||||||
|
UID全格: 执行[UID重置]并清空所有扇区数据、恢复访问控制位
|
||||||
|
UID写号: 将UID卡的UID设置为指定号码
|
||||||
|
MFOC: 执行半加密卡Nested破解(仅建议针对SAK=08的卡片使用)
|
||||||
|
`注:按住Ctrl点击该按钮可添加已知密钥。`
|
||||||
|
后门读: 读取UID卡,忽视扇区密钥
|
||||||
|
后门写: 写入UID卡,忽视扇区密钥
|
||||||
|
清空终端: 清空终端缓冲区显示的文本
|
||||||
|
保存日志: 将终端缓冲区的文本保存至m1t.log文件中
|
||||||
|
停止运行: 强行停止正在运行的功能
|
||||||
|
MFCUK爆密钥: 调用MFCUK工具爆破全加密卡的密钥
|
||||||
|
CUID写: 写入CUID卡(一种使用普通指令写0块的卡片)
|
||||||
|
锁Ufuid: 锁定Ufuid卡片的0扇区使其不可再写入
|
||||||
|
清M1卡: 使用选择的key.mfd清空卡内数据
|
||||||
|
启用ACR122U支持: 打开对ACR122U的支持
|
||||||
|
`注:打开后可能会导致运行速度变慢。`
|
||||||
|
Hex编辑器: 打开集成编辑器S50HTool
|
||||||
|
检加密:查看M1卡的加密情况
|
||||||
|
|||||||