Merge pull request #19 from Semen8991/beta

New Material design
This commit is contained in:
0x10 2019-05-12 22:41:29 +08:00 committed by GitHub
commit 2bc6a8da40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
52 changed files with 17488 additions and 8429 deletions

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -196,7 +197,7 @@ namespace MifareOneTool
} }
public Sector(byte[] uid) public Sector(byte[] uid)
{ {
if (uid.Length != 4) { throw new Exception("不恰当的4字节UID长度"); } if (uid.Length != 4) { throw new Exception(Resources.4UID长度); }
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]);
@ -240,7 +241,7 @@ namespace MifareOneTool
} }
public string Info(int sec) public string Info(int sec)
{ {
string info = "扇区" + sec.ToString(); string info = Resources. + 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]) &&
@ -251,15 +252,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 += " 空扇区"; info += Resources._空扇区;
} }
else else
{ {
info += " 有数据"; info += Resources._有数据;
} }
if (this.Verify() != 0x00) if (this.Verify() != 0x00)
{ {
info += " 有错误"; info += Resources._有错误;
} }
return info; return info;
} }
@ -333,7 +334,7 @@ namespace MifareOneTool
public S50(byte[] uid) public S50(byte[] uid)
{ {
_sectors.Capacity = 16; _sectors.Capacity = 16;
if (uid.Length != 4) { throw new Exception("不恰当的4字节UID长度"); } if (uid.Length != 4) { throw new Exception(Resources.4UID长度); }
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)); }
@ -365,17 +366,17 @@ namespace MifareOneTool
} }
public void LoadFromMfd(string file) public void LoadFromMfd(string file)
{ {
if (!File.Exists(file)) { throw new IOException("加载的文件不存在。"); } if (!File.Exists(file)) { throw new IOException(Resources.); }
if (new FileInfo(file).Length != 1024) { throw new IOException("加载的S50卡文件大小异常。"); } if (new FileInfo(file).Length != 1024) { throw new IOException(Resources.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("加载的文件不存在。"); } if (!File.Exists(file)) { throw new IOException(Resources.); }
long fileLength=new FileInfo(file).Length; long fileLength=new FileInfo(file).Length;
if (fileLength < 2200 || fileLength > 2400) { throw new IOException("加载的S50卡文件大小异常。"); } if (fileLength < 2200 || fileLength > 2400) { throw new IOException(Resources.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)
@ -391,7 +392,7 @@ namespace MifareOneTool
} }
if (lines.Count != 64) if (lines.Count != 64)
{ {
throw new Exception("文件内不是含有64个块数据可能不完整或不兼容。"); throw new Exception(Resources.64_可能不完整或不兼容);
} }
this.Wipe(); this.Wipe();
for (int i = 0; i < lines.Count; i++) for (int i = 0; i < lines.Count; i++)
@ -409,7 +410,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("+Sector: " + i.ToString()); sb.AppendLine(Resources._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]));

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
@ -13,6 +14,7 @@ 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
{ {
@ -20,6 +22,8 @@ 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();
} }
@ -29,8 +33,8 @@ namespace MifareOneTool
private void buttonListDev_Click(object sender, EventArgs e) private void buttonListDev_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; Form1.ActiveForm.Text = Resources.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();
@ -47,7 +51,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 = "设备串口:" + devstr.Replace("pn532_uart:", "").Replace(":115200", ""); curDevice.Text = Resources. + devstr.Replace("pn532_uart:", "").Replace(":115200", "");
} }
void default_rpt(object sender, ProgressChangedEventArgs e) void default_rpt(object sender, ProgressChangedEventArgs e)
@ -56,7 +60,7 @@ namespace MifareOneTool
{ {
logAppend((string)e.UserState); logAppend((string)e.UserState);
logAppend(""); logAppend("");
Text = "MifareOne Tool - 运行完毕"; Text = Resources.MifareOne_Tool_运行完毕;
} }
else if (e.ProgressPercentage == 101) else if (e.ProgressPercentage == 101)
{ {
@ -72,12 +76,12 @@ namespace MifareOneTool
File.Delete(filename); File.Delete(filename);
} }
File.Move(omfd, filename); File.Move(omfd, filename);
logAppend("##已自动保存-" + filename + "##"); logAppend(Resources._已自动保存 + filename + "##");
} }
else else
{ {
File.Delete(omfd); File.Delete(omfd);
logAppend("##缓存文件异常##"); logAppend(Resources._缓存文件异常);
} }
lastuid = ""; lastuid = "";
} }
@ -86,9 +90,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 = "请选择MFD文件保存位置及文件名"; ofd.Title = Resources.MFD文件保存位置及文件名;
ofd.OverwritePrompt = true; ofd.OverwritePrompt = true;
ofd.Filter = "DUMP文件|*.dump|MFD文件|*.mfd"; ofd.Filter = Resources.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)
@ -98,36 +102,36 @@ namespace MifareOneTool
File.Delete(ofd.FileName); File.Delete(ofd.FileName);
} }
File.Move(omfd, ofd.FileName); File.Move(omfd, ofd.FileName);
logAppend("##已保存-" + ofd.FileName + "##"); logAppend(Resources._已保存 + ofd.FileName + "##");
} }
else else
{ {
File.Delete(omfd); File.Delete(omfd);
logAppend("##未保存##"); logAppend(Resources._未保存);
} }
} }
else else
{ {
File.Delete(omfd); File.Delete(omfd);
logAppend("##缓存文件异常##"); logAppend(Resources._缓存文件异常);
} }
} }
omfd = ""; omfd = "";
logAppend(""); logAppend("");
Text = "MifareOne Tool - 运行完毕"; Text = Resources.MifareOne_Tool_运行完毕;
} }
else if (e.ProgressPercentage == 102) else if (e.ProgressPercentage == 102)
{ {
logAppend((string)e.UserState); logAppend((string)e.UserState);
logAppend("##Nonce收集完毕##"); logAppend(Resources._Nonce收集完毕);
logAppend("您可以上传到云计算服务节点进行计算。"); logAppend(Resources.);
logAppend(""); logAppend("");
Text = "MifareOne Tool - 运行完毕"; Text = Resources.MifareOne_Tool_运行完毕;
} }
else if (e.ProgressPercentage == 103) else if (e.ProgressPercentage == 103)
{ {
logAppend("识别了以下设备:"); logAppend(Resources.);
List<string> myReaders = (List<string>)(e.UserState); List<string> myReaders = (List<string>)(e.UserState);
foreach (string reader in myReaders) foreach (string reader in myReaders)
{ {
@ -135,7 +139,7 @@ namespace MifareOneTool
} }
if (myReaders.Count > 0) if (myReaders.Count > 0)
{ {
logAppend("将自动选择首个设备:" + myReaders.First()); logAppend(Resources. + myReaders.First());
writeConfig(myReaders.First()); writeConfig(myReaders.First());
SetDeviceCombo.Items.Clear(); SetDeviceCombo.Items.Clear();
SetDeviceCombo.Items.AddRange(myReaders.ToArray()); SetDeviceCombo.Items.AddRange(myReaders.ToArray());
@ -143,8 +147,8 @@ namespace MifareOneTool
} }
else else
{ {
logAppend("没有发现任何有效的NFC设备。"); logAppend(Resources.NFC设备);
logAppend("请检查接线是否正确/驱动是否正常安装/设备电源是否已经打开(对于具有电源开关的型号)。"); logAppend(Resources.线_驱动是否正常安装_设备电源是否已经打开_);
} }
} }
else else
@ -171,7 +175,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, "开始执行检测设备……"); running = true; b.ReportProgress(0, Resources.); running = true;
List<string> myReader = new List<string>(); List<string> myReader = new List<string>();
process.OutputDataReceived += (s, _e) => process.OutputDataReceived += (s, _e) =>
{ {
@ -196,13 +200,13 @@ namespace MifareOneTool
lprocess = false; lprocess = false;
running = false; running = false;
b.ReportProgress(103, myReader); b.ReportProgress(103, myReader);
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void Form1_Load(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e)
{ {
logAppend("#软件版本 " + Assembly.GetExecutingAssembly().GetName().Version.ToString()); logAppend(Resources._软件版本 + Assembly.GetExecutingAssembly().GetName().Version.ToString());
localVersionLabel.Text = "本地版本 " + Assembly.GetExecutingAssembly().GetName().Version.ToString(); localVersionLabel.Text = Resources. + 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;
@ -228,7 +232,7 @@ namespace MifareOneTool
{ {
if (line.StartsWith("device.connstring = \"pn532_uart:")) if (line.StartsWith("device.connstring = \"pn532_uart:"))
{ {
curDevice.Text = "设备串口:" + line.Replace("device.connstring = \"pn532_uart:", "").Replace(":115200\"", ""); curDevice.Text = Resources. + line.Replace("device.connstring = \"pn532_uart:", "").Replace(":115200\"", "");
} }
} }
} }
@ -237,7 +241,7 @@ namespace MifareOneTool
private void buttonScanCard_Click(object sender, EventArgs e) private void buttonScanCard_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.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;
@ -256,7 +260,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,"开始执行扫描卡片……"); b.ReportProgress(0,Resources.);
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);
@ -265,7 +269,7 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
string omfd = ""; string omfd = "";
@ -300,14 +304,14 @@ namespace MifareOneTool
return; return;
} }
if (uid.Length < 8) { return; } if (uid.Length < 8) { return; }
logAppend("正在检索是否存在key.mfd…"); logAppend(Resources.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("已找到K=" + files[i]); logAppend(Resources._K + files[i]);
keymfd = files[i]; keymfd = files[i];
buttonSelectKey.Text = "K=" + files[i]; buttonSelectKey.Text = "K=" + files[i];
return; return;
@ -320,7 +324,7 @@ namespace MifareOneTool
private void buttonMfRead_Click(object sender, EventArgs e) private void buttonMfRead_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
string rmfd = "MfRead.tmp"; string rmfd = "MfRead.tmp";
string kt = "A"; string kt = "A";
string nn = ""; string nn = "";
@ -337,11 +341,11 @@ namespace MifareOneTool
if (checkBoxAutoABN.Checked && keymfd != "") if (checkBoxAutoABN.Checked && keymfd != "")
{ {
kt = "C"; kt = "C";
logAppend("正在使用智能KeyABN…"); logAppend(Resources.使KeyABN);
} }
else else
{ {
switch (MessageBox.Show("使用KeyA或KeyB还是不使用用于全新白卡取消", "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)) switch (MessageBox.Show(Resources.使KeyA_是_或KeyB_否_还是不使用_用于全新白卡_, "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
{ {
case DialogResult.No: case DialogResult.No:
kt = "B"; kt = "B";
@ -378,7 +382,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, "开始执行读取卡片……"); running = true; b.ReportProgress(0, Resources.); 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;
@ -388,11 +392,11 @@ namespace MifareOneTool
lprocess = false; running = false; lprocess = false; running = false;
if (process.ExitCode == 0) if (process.ExitCode == 0)
{ {
b.ReportProgress(101, "##运行完毕##"); b.ReportProgress(101, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
File.Delete(args[0]); File.Delete(args[0]);
} }
} }
@ -410,8 +414,8 @@ namespace MifareOneTool
{ {
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "MFD文件|*.mfd|DUMP文件|*.dump"; ofd.Filter = Resources.MFD文件_mfd_DUMP文件_dump;
ofd.Title = "请选择一个包含目标卡密钥的MFD文件通常是已经破解出的该卡的MFD文件"; ofd.Title = Resources.MFD文件_通常是已经破解出的该卡;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -421,7 +425,7 @@ namespace MifareOneTool
else else
{ {
keymfd = ""; keymfd = "";
buttonSelectKey.Text = "选择key.mfd"; buttonSelectKey.Text = Resources.key_mfd;
} }
} }
@ -436,7 +440,7 @@ namespace MifareOneTool
} }
catch (IOException ioe) catch (IOException ioe)
{ {
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ioe.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
return false; return false;
} }
if (card.Verify()[16] == 0x00) if (card.Verify()[16] == 0x00)
@ -451,12 +455,12 @@ namespace MifareOneTool
private void buttonMfWrite_Click(object sender, EventArgs e) private void buttonMfWrite_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.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 = Resources.MFD文件_mfd_dump;
ofd.Title = "请选择需要写入的MFD文件"; ofd.Title = Resources.MFD文件;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -466,17 +470,17 @@ namespace MifareOneTool
{ {
return; return;
} }
if (!writecheck(rmfd)) { MessageBox.Show("将要写入的文件存在错误请用高级模式中的Hex工具打开查看。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!writecheck(rmfd)) { MessageBox.Show(Resources._请用高级模式中的Hex工具打开查看, Resources., 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("正在使用智能KeyABN…"); logAppend(Resources.使KeyABN);
} }
else else
{ {
switch (MessageBox.Show("使用KeyA或KeyB还是不使用用于全新白卡取消", "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)) switch (MessageBox.Show(Resources.使KeyA_是_或KeyB_否_还是不使用_用于全新白卡_, Resources.KeyA_B_N, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
{ {
case DialogResult.No: case DialogResult.No:
kt = "B"; kt = "B";
@ -511,7 +515,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, "开始执行写入M1卡片……"); running = true; b.ReportProgress(0, Resources.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;
@ -519,17 +523,17 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonMfoc_Click(object sender, EventArgs e) private void buttonMfoc_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.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("请输入已知的Key以英文半角逗号分隔。", "请输入已知Key", Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(','); string[] ks = Interaction.InputBox(Resources.Key_以英文半角逗号分隔, Resources.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);
@ -568,7 +572,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, "开始执行MFOC解密……"); running = true; b.ReportProgress(0, Resources.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;
@ -578,18 +582,18 @@ namespace MifareOneTool
lprocess = false; running = false; lprocess = false; running = false;
if (process.ExitCode == 0) if (process.ExitCode == 0)
{ {
b.ReportProgress(101, "##运行完毕##"); b.ReportProgress(101, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
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("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.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;
@ -623,7 +627,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, "开始执行重置UID卡片卡号……"); running = true; b.ReportProgress(0, Resources.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;
@ -631,13 +635,13 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonUidFormat_Click(object sender, EventArgs e) private void buttonUidFormat_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
if (MessageBox.Show("该操作将会清空UID卡内全部数据\n清空后不可恢复请确认是否要继续操作", "危险操作警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) if (MessageBox.Show(Resources.UID卡内全部数据_清空后不可恢复_请确认是否, Resources., 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);
@ -661,7 +665,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, "开始执行UID卡片全格……"); running = true; b.ReportProgress(0, Resources.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;
@ -669,12 +673,12 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonBmfRead_Click(object sender, EventArgs e) private void buttonBmfRead_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中";
string rmfd = "BmfRead.tmp"; string rmfd = "BmfRead.tmp";
if (checkBoxAutoSave.Checked) if (checkBoxAutoSave.Checked)
{ {
@ -701,7 +705,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, "开始执行UID卡片读取……"); running = true; b.ReportProgress(0, Resources.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;
@ -711,23 +715,23 @@ namespace MifareOneTool
lprocess = false; running = false; lprocess = false; running = false;
if (process.ExitCode == 0) if (process.ExitCode == 0)
{ {
b.ReportProgress(101, "##运行完毕##"); b.ReportProgress(101, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
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("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., 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 = "请选择需要写入的MFD文件"; ofd.Title = Resources.MFD文件;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -761,7 +765,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, "开始执行UID卡片写入……"); running = true; b.ReportProgress(0, Resources.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;
@ -769,7 +773,7 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonConClr_Click(object sender, EventArgs e) private void buttonConClr_Click(object sender, EventArgs e)
@ -781,22 +785,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("终端内容已保存至m1t.log文件", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show(Resources.m1t_log文件, Resources.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("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.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("请输入需要写入的UID卡号共8位十六进制数如E44A3BF1。", "请输入UID号", hex(buid), -1, -1).Trim(); string uid = Interaction.InputBox(Resources.UID卡号_共8位十六进制数_如E44A3B, Resources.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("输入的UID号不合法", "InputError", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.UID号不合法, "InputError", MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
} }
BackgroundWorker bgw = new BackgroundWorker(); BackgroundWorker bgw = new BackgroundWorker();
@ -818,7 +822,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, "开始执行UID卡片设定卡号……"); running = true; b.ReportProgress(0, Resources.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;
@ -826,13 +830,13 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonMfcuk_Click(object sender, EventArgs e) private void buttonMfcuk_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
Text = "MifareOne Tool - 运行中"; Text = Resources.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;
@ -842,29 +846,29 @@ namespace MifareOneTool
void Mfcuk(object sender, DoWorkEventArgs e) void Mfcuk(object sender, DoWorkEventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., 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, "开始执行全加密卡片爆破……"); b.ReportProgress(0, Resources.);
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
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("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.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 = Resources.MFD文件_mfd_dump;
ofd.Title = "请选择需要写入的MFD文件"; ofd.Title = Resources.MFD文件;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -874,7 +878,7 @@ namespace MifareOneTool
{ {
return; return;
} }
if (!writecheck(rmfd)) { MessageBox.Show("将要写入的文件存在错误请用高级模式中的Hex工具打开查看。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!writecheck(rmfd)) { MessageBox.Show(Resources._请用高级模式中的Hex工具打开查看, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
if (keymfd == "" && Properties.Settings.Default.CuidKeyOver) if (keymfd == "" && Properties.Settings.Default.CuidKeyOver)
{ {
cuidKeyOver = true; cuidKeyOver = true;
@ -882,18 +886,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("已启用CUID空卡写入补丁"); logAppend(Resources.CUID空卡写入补丁);
} }
string kt = "A"; string kt = "A";
string nn = ""; string nn = "";
if (checkBoxAutoABN.Checked && keymfd != "") if (checkBoxAutoABN.Checked && keymfd != "")
{ {
kt = "C"; kt = "C";
logAppend("正在使用智能KeyABN…"); logAppend(Resources.使KeyABN);
} }
else else
{ {
switch (MessageBox.Show("使用KeyA或KeyB还是不使用用于全新白卡取消", "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information)) switch (MessageBox.Show(Resources.使KeyA_是_或KeyB_否_还是不使用_用于全新白卡_, "KeyA/B/N", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information))
{ {
case DialogResult.No: case DialogResult.No:
kt = "B"; kt = "B";
@ -928,7 +932,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, "开始执行CUID/FUID卡片写入……"); running = true; b.ReportProgress(0, Resources.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;
@ -942,7 +946,7 @@ namespace MifareOneTool
cuidKeyOver = false; cuidKeyOver = false;
File.Delete("cuid_empty.kmf"); File.Delete("cuid_empty.kmf");
} }
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonKill_Click(object sender, EventArgs e) private void buttonKill_Click(object sender, EventArgs e)
@ -952,16 +956,16 @@ namespace MifareOneTool
if (process.HasExited == false) if (process.HasExited == false)
{ {
process.Kill(); process.Kill();
Form1.ActiveForm.Text = "MifareOne Tool - 已终止"; Form1.ActiveForm.Text = Resources.MifareOne_Tool_已终止;
logAppend("##程序已被强制停止##"); logAppend(Resources._程序已被强制停止);
} }
} }
} }
private void buttonLockUfuid_Click(object sender, EventArgs e) private void buttonLockUfuid_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
if (MessageBox.Show("该操作将会锁死UFUID卡片\n锁死后不可恢复无法再次更改0块请确认是否要继续操作", "危险操作警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) if (MessageBox.Show(Resources.UFUID卡片_锁死后不可恢复_无法再次更改0, Resources., 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);
@ -985,7 +989,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, "开始执行UFUID卡片锁定……"); running = true; b.ReportProgress(0, Resources.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;
@ -993,23 +997,23 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonMfFormat_Click(object sender, EventArgs e) private void buttonMfFormat_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
if (keymfd == "") { MessageBox.Show("未选择有效key.mfd。", "无密钥", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (keymfd == "") { MessageBox.Show(Resources.key_mfd, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Form1.ActiveForm.Text = Resources.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("正在使用智能KeyABN…"); logAppend(Resources.使KeyABN);
} }
else else
{ {
switch (MessageBox.Show("使用KeyA或KeyB", "KeyA/B", MessageBoxButtons.YesNo, MessageBoxIcon.Information)) switch (MessageBox.Show(Resources.使KeyA_是_或KeyB_否, "KeyA/B", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{ {
case DialogResult.No: case DialogResult.No:
kt = "B"; kt = "B";
@ -1037,7 +1041,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, "开始执行格式化M1卡片……"); running = true; b.ReportProgress(0, Resources.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;
@ -1045,7 +1049,7 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; running = false; lprocess = false; running = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonEMfoc_Click(object sender, EventArgs e) private void buttonEMfoc_Click(object sender, EventArgs e)
@ -1065,10 +1069,10 @@ namespace MifareOneTool
private void buttonECmfoc_Click(object sender, EventArgs e) private void buttonECmfoc_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
string rmfd = "Mfoc.tmp"; string rmfd = "Mfoc.tmp";
string key = ""; string key = "";
string[] ks = Interaction.InputBox("请输入已知的Key以英文半角逗号分隔。", "请输入已知Key", "FFFFFFFFFFFF", -1, -1).Trim().Split(','); string[] ks = Interaction.InputBox(Resources.Key_以英文半角逗号分隔, Resources.Key, "FFFFFFFFFFFF", -1, -1).Trim().Split(',');
if (ks.Length > 0) if (ks.Length > 0)
{ {
foreach (string k in ks) foreach (string k in ks)
@ -1125,48 +1129,48 @@ namespace MifareOneTool
private void buttonEnAcr122u_Click(object sender, EventArgs e) private void buttonEnAcr122u_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
if (MessageBox.Show("同时打开ACR122U支持可能会引起操作速度下降。\n请确认是否要继续操作", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel) if (MessageBox.Show(Resources.ACR122U支持可能会引起操作速度下降_请确认是否, Resources., 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("ACR122U支持已经打开过。"); logAppend(Resources.ACR122U支持已经打开过);
} }
if (File.Exists("nfc-bin/libnfc(ACR122U).dll")) if (File.Exists("nfc-bin/libnfc(ACR122U).dll"))
{ {
logAppend("正在打开ACR122U支持……"); logAppend(Resources.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("已打开。"); logAppend(Resources.);
} }
lprocess = false; running = false; lprocess = false; running = false;
Text = "MifareOne Tool - 运行完毕"; Text = Resources.MifareOne_Tool_运行完毕;
logAppend("##运行完毕##"); logAppend(Resources._运行完毕);
} }
private void timer1_Tick(object sender, EventArgs e) private void timer1_Tick(object sender, EventArgs e)
{ {
if (running) if (running)
{ {
statusLabel.Text = "运行中"; statusLabel.Text = Resources.;
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 = "运行时间:" + ((int)runtime.TotalSeconds).ToString() + "秒"; runTimeLabel.Text = Resources. + ((int)runtime.TotalSeconds).ToString() + Resources.;
} }
} }
else { statusLabel.Text = "空闲"; } else { statusLabel.Text = Resources.; }
} }
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("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
string key = ""; string key = "";
if (Control.ModifierKeys == Keys.Control) if (Control.ModifierKeys == Keys.Control)
{ {
string[] ks = Interaction.InputBox("请输入已知的Key以英文半角逗号分隔。", "请输入已知Key", Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(','); string[] ks = Interaction.InputBox(Resources.Key_以英文半角逗号分隔, Resources.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);
@ -1199,7 +1203,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, "开始执行检测卡片加密……"); running = true; b.ReportProgress(0, Resources.); 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;
@ -1210,11 +1214,11 @@ namespace MifareOneTool
lprocess = false; running = false; lprocess = false; running = false;
if (process.ExitCode == 0) if (process.ExitCode == 0)
{ {
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
} }
} }
@ -1242,10 +1246,10 @@ namespace MifareOneTool
private void buttonnKeysMfoc_Click(object sender, EventArgs e) private void buttonnKeysMfoc_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
string rmfd = "Mfoc.tmp"; string rmfd = "Mfoc.tmp";
string key = ""; string key = "";
string[] ks = Interaction.InputBox("请输入已知的Key以英文半角逗号分隔。", "请输入已知Key", Properties.Settings.Default.LastTryKey, -1, -1).Trim().Split(','); string[] ks = Interaction.InputBox(Resources.Key_以英文半角逗号分隔, Resources.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);
@ -1272,7 +1276,7 @@ namespace MifareOneTool
private void buttonDictMfoc_Click(object sender, EventArgs e) private void buttonDictMfoc_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
string cmd_mode = "/k"; string cmd_mode = "/k";
//if (Control.ModifierKeys == Keys.Control) //if (Control.ModifierKeys == Keys.Control)
//{ //{
@ -1281,8 +1285,8 @@ namespace MifareOneTool
string filename = ""; string filename = "";
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "密钥字典文件|*.dic"; ofd.Filter = Resources._dic;
ofd.Title = "请选择需要打开的密钥字典文件"; ofd.Title = Resources.;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -1290,7 +1294,7 @@ namespace MifareOneTool
} }
else else
{ {
Text = "MifareOne Tool - 已取消"; Text = Resources.MifareOne_Tool_已取消;
return; return;
} }
string rmfd = "Mfoc.tmp"; string rmfd = "Mfoc.tmp";
@ -1322,16 +1326,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, "开始执行字典模式MFOC解密……"); running = true; b.ReportProgress(0, Resources.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, "##运行完毕##"); b.ReportProgress(101, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
File.Delete(args[0]); File.Delete(args[0]);
} }
} }
@ -1358,7 +1362,7 @@ namespace MifareOneTool
private void buttonHardNested_Click(object sender, EventArgs e) private void buttonHardNested_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = "MifareOne Tool - 运行中"; if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Form1.ActiveForm.Text = Resources.MifareOne_Tool_运行中;
FormHardNes fhn = new FormHardNes(); FormHardNes fhn = new FormHardNes();
if (fhn.ShowDialog() == DialogResult.Yes) if (fhn.ShowDialog() == DialogResult.Yes)
{ {
@ -1379,7 +1383,7 @@ namespace MifareOneTool
} }
else else
{ {
Text = "MifareOne Tool - 已取消"; Text = Resources.MifareOne_Tool_已取消;
} }
} }
void Hardnest(object sender, DoWorkEventArgs e) void Hardnest(object sender, DoWorkEventArgs e)
@ -1398,7 +1402,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, "开始执行HardNested解密强化卡……"); running = true; b.ReportProgress(0, Resources.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;
@ -1408,18 +1412,18 @@ namespace MifareOneTool
lprocess = false; running = false; lprocess = false; running = false;
if (process.ExitCode == 0) if (process.ExitCode == 0)
{ {
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
} }
} }
void CollectNonce(object sender, DoWorkEventArgs e) void CollectNonce(object sender, DoWorkEventArgs e)
{ {
if (lprocess) { return; } if (lprocess) { return; }
ProcessStartInfo psi = new ProcessStartInfo("nfc-bin/collect.exe"); ProcessStartInfo psi = new ProcessStartInfo(Resources.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;
@ -1428,7 +1432,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, "开始执行HardNested收集数据……"); running = true; b.ReportProgress(0, Resources.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;
@ -1438,11 +1442,11 @@ namespace MifareOneTool
lprocess = false; running = false; lprocess = false; running = false;
if (process.ExitCode == 0) if (process.ExitCode == 0)
{ {
b.ReportProgress(102, "##运行完毕##"); b.ReportProgress(102, Resources._运行完毕);
} }
else else
{ {
b.ReportProgress(100, "##运行出错##"); b.ReportProgress(100, Resources._运行出错);
} }
} }
@ -1505,7 +1509,7 @@ namespace MifareOneTool
if (SetDeviceCombo.SelectedIndex >= 0) if (SetDeviceCombo.SelectedIndex >= 0)
{ {
writeConfig(SetDeviceCombo.SelectedItem.ToString()); writeConfig(SetDeviceCombo.SelectedItem.ToString());
logAppend("已指定使用该NFC设备" + SetDeviceCombo.SelectedItem.ToString()); logAppend(Resources.使NFC设备 + SetDeviceCombo.SelectedItem.ToString());
} }
} }
@ -1539,5 +1543,51 @@ namespace MifareOneTool
{ {
} }
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedItem.ToString() == Resources.)
{
System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-ZH");
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("zh-ZH");
Properties.Settings.Default.Language = "zh-ZH";
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();
}
}
private void label5_Click(object sender, EventArgs e)
{
}
private void tableLayoutPanel15_Paint(object sender, PaintEventArgs e)
{
}
private void label6_Click(object sender, EventArgs e)
{
}
private void label8_Click(object sender, EventArgs e)
{
}
private void groupBox4_Enter(object sender, EventArgs e)
{
}
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -157,16 +157,16 @@
<value>Запишите CUID / FUID карту (может понадобиться файл ключа)</value> <value>Запишите CUID / FUID карту (может понадобиться файл ключа)</value>
</data> </data>
<data name="buttonConClr.Text" xml:space="preserve"> <data name="buttonConClr.Text" xml:space="preserve">
<value>Очистить терминал</value> <value>Очистить</value>
</data> </data>
<data name="buttonConSave.Text" xml:space="preserve"> <data name="buttonConSave.Text" xml:space="preserve">
<value>Сохранить журнал</value> <value>Сохранить</value>
</data> </data>
<data name="buttonDictMfoc.Text" xml:space="preserve"> <data name="buttonDictMfoc.Text" xml:space="preserve">
<value>Тест словаря</value> <value>Тест словаря</value>
</data> </data>
<data name="buttonDictMfoc.ToolTip" xml:space="preserve"> <data name="buttonDictMfoc.ToolTip" xml:space="preserve">
<value>Импорт файлов словарей для взлома</value> <value>Импортируйте файл словаря для Nested crack.</value>
</data> </data>
<data name="buttonDiffTool.Text" xml:space="preserve"> <data name="buttonDiffTool.Text" xml:space="preserve">
<value>Сравнение дампов</value> <value>Сравнение дампов</value>
@ -196,7 +196,7 @@
<value>Определить считыватель</value> <value>Определить считыватель</value>
</data> </data>
<data name="buttonESelectKey.Text" xml:space="preserve"> <data name="buttonESelectKey.Text" xml:space="preserve">
<value>Загрузить ключ ...</value> <value>Загрузить ключ...</value>
</data> </data>
<data name="buttonEStop.Text" xml:space="preserve"> <data name="buttonEStop.Text" xml:space="preserve">
<value>Остановить</value> <value>Остановить</value>
@ -227,7 +227,8 @@
<value>MFUK</value> <value>MFUK</value>
</data> </data>
<data name="buttonMfcuk.ToolTip" xml:space="preserve"> <data name="buttonMfcuk.ToolTip" xml:space="preserve">
<value>Инструмент Darkside (не обязательно успешный)</value> <value>Инструмент Darkside (не обязательно успешный)
</value>
</data> </data>
<data name="buttonMFF08.Text" xml:space="preserve"> <data name="buttonMFF08.Text" xml:space="preserve">
<value>MFF08 CUID ремонт</value> <value>MFF08 CUID ремонт</value>
@ -239,7 +240,7 @@
<value>Отформатируйте нормальную карту M1 (необходимо загрузить файл ключа)</value> <value>Отформатируйте нормальную карту M1 (необходимо загрузить файл ключа)</value>
</data> </data>
<data name="buttonMfoc.Text" xml:space="preserve"> <data name="buttonMfoc.Text" xml:space="preserve">
<value>MFOC</value> <value>Чтение MFOC</value>
</data> </data>
<data name="buttonMfoc.ToolTip" xml:space="preserve"> <data name="buttonMfoc.ToolTip" xml:space="preserve">
<value>Взлом на полушифрованных картах. <value>Взлом на полушифрованных картах.
@ -258,7 +259,7 @@
<value>Напишите нормальную карту M1 (возможно, потребуется загрузить файл ключа)</value> <value>Напишите нормальную карту M1 (возможно, потребуется загрузить файл ключа)</value>
</data> </data>
<data name="buttonnKeysMfoc.Text" xml:space="preserve"> <data name="buttonnKeysMfoc.Text" xml:space="preserve">
<value>Ввод известного ключа</value> <value>Ввод ключа</value>
</data> </data>
<data name="buttonnKeysMfoc.ToolTip" xml:space="preserve"> <data name="buttonnKeysMfoc.ToolTip" xml:space="preserve">
<value>Введите известный ключ для взлома.</value> <value>Введите известный ключ для взлома.</value>
@ -307,16 +308,17 @@
<value>CUID запись патча пустой карты</value> <value>CUID запись патча пустой карты</value>
</data> </data>
<data name="checkBoxDefIsAdv.Text" xml:space="preserve"> <data name="checkBoxDefIsAdv.Text" xml:space="preserve">
<value>Автоматический переход в <value>Автоматический переход в расширенный режим работы</value>
расширенный режим работы</value>
</data> </data>
<data name="checkBoxHardLowCost.Text" xml:space="preserve"> <data name="checkBoxHardLowCost.Text" xml:space="preserve">
<value>Однопоточные вычисления</value> <value>Однопоточные вычисления
</value>
</data> </data>
<data name="checkBoxMultiDev.Text" xml:space="preserve"> <data name="checkBoxMultiDev.Text" xml:space="preserve">
<value>Режим нескольких устройств <value>Режим нескольких устройств. Пожалуйста, укажите ваше собственное устройство</value>
Multi-Open обнаружение будет отключено <comment>Previous text: 多实例运行模式
Пожалуйста, укажите ваше собственное устройство</value> 会禁用多开检测
请自行指定设备</comment>
</data> </data>
<data name="checkBoxNewScan.Text" xml:space="preserve"> <data name="checkBoxNewScan.Text" xml:space="preserve">
<value>Уменьшить задержку оборудования</value> <value>Уменьшить задержку оборудования</value>
@ -324,11 +326,17 @@ Multi-Open обнаружение будет отключено
<data name="checkBoxWriteProtect.Text" xml:space="preserve"> <data name="checkBoxWriteProtect.Text" xml:space="preserve">
<value>Защита от записи данных (рекомендуется)</value> <value>Защита от записи данных (рекомендуется)</value>
</data> </data>
<data name="comboBox1.Items" xml:space="preserve">
<value>Китайский</value>
</data>
<data name="comboBox1.Items1" xml:space="preserve">
<value>Русский</value>
</data>
<data name="groupBox1.Text" xml:space="preserve"> <data name="groupBox1.Text" xml:space="preserve">
<value>Управление устройством</value> <value>Управление устройством</value>
</data> </data>
<data name="groupBox10.Text" xml:space="preserve"> <data name="groupBox10.Text" xml:space="preserve">
<value>Взлом</value> <value>Взломать</value>
</data> </data>
<data name="groupBox12.Text" xml:space="preserve"> <data name="groupBox12.Text" xml:space="preserve">
<value>Настройки интерфейса</value> <value>Настройки интерфейса</value>
@ -339,14 +347,20 @@ Multi-Open обнаружение будет отключено
<data name="groupBox14.Text" xml:space="preserve"> <data name="groupBox14.Text" xml:space="preserve">
<value>Настройки оптимизации</value> <value>Настройки оптимизации</value>
</data> </data>
<data name="groupBox15.Text" xml:space="preserve">
<value>Язык и регион</value>
</data>
<data name="groupBox16.Text" xml:space="preserve">
<value>1. Начните здесь</value>
</data>
<data name="groupBox2.Text" xml:space="preserve"> <data name="groupBox2.Text" xml:space="preserve">
<value>Обычные операции с картой</value> <value>Обычные операции</value>
</data> </data>
<data name="groupBox3.Text" xml:space="preserve"> <data name="groupBox3.Text" xml:space="preserve">
<value>Терминал</value> <value>Терминал</value>
</data> </data>
<data name="groupBox4.Text" xml:space="preserve"> <data name="groupBox4.Text" xml:space="preserve">
<value>Дополнительные инструменты</value> <value>Дополнительно</value>
</data> </data>
<data name="groupBox5.Text" xml:space="preserve"> <data name="groupBox5.Text" xml:space="preserve">
<value>2. Прочитать карту</value> <value>2. Прочитать карту</value>
@ -355,7 +369,7 @@ Multi-Open обнаружение будет отключено
<value>Операция с картой</value> <value>Операция с картой</value>
</data> </data>
<data name="groupBox7.Text" xml:space="preserve"> <data name="groupBox7.Text" xml:space="preserve">
<value>3. Записать новую карту</value> <value>3. Записать карту</value>
</data> </data>
<data name="groupBox8.Text" xml:space="preserve"> <data name="groupBox8.Text" xml:space="preserve">
<value>Операции с UID/UFUID</value> <value>Операции с UID/UFUID</value>
@ -371,31 +385,28 @@ Multi-Open обнаружение будет отключено
<value>Размер текста терминала</value> <value>Размер текста терминала</value>
</data> </data>
<data name="label11.Text" xml:space="preserve"> <data name="label11.Text" xml:space="preserve">
<value>Укажите устройство</value> <value>Укажите устройство
</data>
<data name="label5.Text" xml:space="preserve">
<value>1. Начните здесь
Этот инструмент поддерживает только SAK = 08/18/28
Копия карты. SAK28 не имеет одного ключа для расшифровки.
Чтобы скопировать карты S70, пожалуйста, в продвинутом мире
Снимите флажок «Защита от записи данных» на поверхности.
</value> </value>
</data>
<data name="label12.Text" xml:space="preserve">
<value>Выберите язык интерфейса</value>
</data>
<data name="label13.Text" xml:space="preserve">
<value>Этот инструмент поддерживает только копирование
карт SAK=08/18/28. SAK28 расшифровывается без ключа.
Чтобы скопировать карту S70, снимите флажок
“Защита от записи данных” в настройках программы.</value>
</data> </data>
<data name="label6.Text" xml:space="preserve"> <data name="label6.Text" xml:space="preserve">
<value>&gt;&gt;&gt; Проверьте результат</value> <value>Проверьте результат</value>
</data> </data>
<data name="label7.Text" xml:space="preserve"> <data name="label7.Text" xml:space="preserve">
<value>Пожалуйста, <value>Пожалуйста,
вставьте оигинальную карту</value> вставьте карту</value>
</data> </data>
<data name="label8.Text" xml:space="preserve"> <data name="label8.Text" xml:space="preserve">
<value>Пожалуйста, вставьте <value>Пожалуйста,
вставьте
новую карту</value> новую карту</value>
</data> </data>
<data name="label9.Text" xml:space="preserve"> <data name="label9.Text" xml:space="preserve">
@ -403,12 +414,10 @@ Multi-Open обнаружение будет отключено
</data> </data>
<data name="richTextBox1.Lines[0]" xml:space="preserve"> <data name="richTextBox1.Lines[0]" xml:space="preserve">
<value>Привет!</value> <value>Привет!</value>
<comment>Previous text: ппппппппппппппппппп</comment>
</data> </data>
<data name="richTextBox1.Lines[1]" xml:space="preserve"> <data name="runTimeLabel.Text" xml:space="preserve">
<value>Для первого запуска нажмите «Определить устройство», чтобы ускорить последующие запуски.</value> <value>Таймер</value>
</data>
<data name="richTextBox1.Text" xml:space="preserve">
<value>Рекомендуется нажать «Определить», чтобы ускорить последующую операцию.</value>
</data> </data>
<data name="statusLabel.Text" xml:space="preserve"> <data name="statusLabel.Text" xml:space="preserve">
<value>Готов</value> <value>Готов</value>
@ -423,215 +432,559 @@ Multi-Open обнаружение будет отключено
<value>Настройки программы</value> <value>Настройки программы</value>
</data> </data>
<data name="toolStripCheckUpdate.Text" xml:space="preserve"> <data name="toolStripCheckUpdate.Text" xml:space="preserve">
<value>Проверьте наличие обновлений</value> <value>Проверка обновлений</value>
</data> </data>
<data name="toolStripCheckUpdate.ToolTipText" xml:space="preserve"> <data name="toolStripCheckUpdate.ToolTipText" xml:space="preserve">
<value>Проверьте наличие обновлений</value> <value>Проверка обновлений</value>
</data>
<data name="groupBox1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="richTextBox1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonKill.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonConSave.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonConClr.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox3.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonHexTool.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonDiffTool.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonMFF08.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox4.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEStop.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label8.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label7.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label6.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label4.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label3.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonECheckEncrypt.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttoEScanCard.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonECuidWrite.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEUIDWrite.ToolTip" xml:space="preserve">
<value />
</data>
<data name="button4.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEMfWrite.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox7.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEscan.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEReadUID.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonESelectKey.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonECmfoc.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEMfRead.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonEMfoc.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox5.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label5.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage2.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonHardNested.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox10.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox9.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox8.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage1.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxMultiDev.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label11.ToolTip" xml:space="preserve">
<value />
</data>
<data name="SetDeviceCombo.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxNewScan.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox14.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxAutoSave.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxDefIsAdv.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox13.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxHardLowCost.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox11.ToolTip" xml:space="preserve">
<value />
</data>
<data name="numericCLIFontSize.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label10.ToolTip" xml:space="preserve">
<value />
</data>
<data name="buttonCLIColor.ToolTip" xml:space="preserve">
<value />
</data>
<data name="label9.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox12.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxCuidKeyOver.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxWriteProtect.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxAutoLoadKey.ToolTip" xml:space="preserve">
<value />
</data>
<data name="checkBoxAutoABN.ToolTip" xml:space="preserve">
<value />
</data>
<data name="groupBox6.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabPage3.ToolTip" xml:space="preserve">
<value />
</data>
<data name="tabControl1.ToolTip" xml:space="preserve">
<value />
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripCheckUpdate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tableLayoutPanel5.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 74</value>
</data>
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 96</value>
</data>
<data name="flowLayoutPanel12.Size" type="System.Drawing.Size, System.Drawing">
<value>133, 29</value>
</data>
<data name="buttonScanCard.Size" type="System.Drawing.Size, System.Drawing">
<value>129, 25</value>
</data>
<data name="flowLayoutPanel11.Size" type="System.Drawing.Size, System.Drawing">
<value>154, 29</value>
</data>
<data name="buttonListDev.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 25</value>
</data>
<data name="buttonCLI.Location" type="System.Drawing.Point, System.Drawing">
<value>86, 2</value>
</data>
<data name="buttonCLI.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 25</value>
</data>
<data name="richTextBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>1098, 174</value>
</data>
<data name="buttonMfRead.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 25</value>
</data>
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>170, 2</value>
</data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>200, 96</value>
</data>
<data name="tableLayoutPanel7.Size" type="System.Drawing.Size, System.Drawing">
<value>196, 74</value>
</data>
<data name="flowLayoutPanel14.Size" type="System.Drawing.Size, System.Drawing">
<value>107, 29</value>
</data>
<data name="buttonSelectKey.Size" type="System.Drawing.Size, System.Drawing">
<value>103, 25</value>
</data>
<data name="flowLayoutPanel13.Size" type="System.Drawing.Size, System.Drawing">
<value>190, 29</value>
</data>
<data name="buttonMfWrite.Location" type="System.Drawing.Point, System.Drawing">
<value>62, 2</value>
</data>
<data name="buttonMfWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 25</value>
</data>
<data name="buttonMfFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>122, 2</value>
</data>
<data name="buttonMfFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 25</value>
</data>
<data name="buttonBmfWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 27</value>
</data>
<data name="buttonBmfRead.Size" type="System.Drawing.Size, System.Drawing">
<value>77, 27</value>
</data>
<data name="buttonMfoc.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 25</value>
</data>
<data name="buttonUidWrite.Location" type="System.Drawing.Point, System.Drawing">
<value>84, 2</value>
</data>
<data name="buttonUidWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>114, 27</value>
</data>
<data name="buttonUidFormat.Location" type="System.Drawing.Point, System.Drawing">
<value>159, 2</value>
</data>
<data name="buttonUidFormat.Size" type="System.Drawing.Size, System.Drawing">
<value>89, 27</value>
</data>
<data name="buttonUidReset.Location" type="System.Drawing.Point, System.Drawing">
<value>83, 2</value>
</data>
<data name="buttonUidReset.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 27</value>
</data>
<data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
<value>586, 2</value>
</data>
<data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
<value>156, 96</value>
</data>
<data name="tableLayoutPanel10.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 74</value>
</data>
<data name="flowLayoutPanel20.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 29</value>
</data>
<data name="buttonKill.Size" type="System.Drawing.Size, System.Drawing">
<value>79, 25</value>
</data>
<data name="flowLayoutPanel19.Size" type="System.Drawing.Size, System.Drawing">
<value>146, 29</value>
</data>
<data name="buttonConClr.Size" type="System.Drawing.Size, System.Drawing">
<value>66, 25</value>
</data>
<data name="buttonConSave.Location" type="System.Drawing.Point, System.Drawing">
<value>72, 2</value>
</data>
<data name="buttonConSave.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 25</value>
</data>
<data name="buttonMfcuk.Location" type="System.Drawing.Point, System.Drawing">
<value>177, 2</value>
</data>
<data name="buttonMfcuk.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 25</value>
</data>
<data name="buttonHexTool.Size" type="System.Drawing.Size, System.Drawing">
<value>102, 25</value>
</data>
<data name="buttonDiffTool.Size" type="System.Drawing.Size, System.Drawing">
<value>115, 27</value>
</data>
<data name="buttonCheckEncrypt.Size" type="System.Drawing.Size, System.Drawing">
<value>136, 25</value>
</data>
<data name="buttonLockUfuid.Location" type="System.Drawing.Point, System.Drawing">
<value>202, 2</value>
</data>
<data name="buttonLockUfuid.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 27</value>
</data>
<data name="buttonCmfWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 25</value>
</data>
<data name="buttonDictMfoc.Location" type="System.Drawing.Point, System.Drawing">
<value>142, 2</value>
</data>
<data name="buttonDictMfoc.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 25</value>
</data>
<data name="buttonnKeysMfoc.Location" type="System.Drawing.Point, System.Drawing">
<value>95, 2</value>
</data>
<data name="buttonnKeysMfoc.Size" type="System.Drawing.Size, System.Drawing">
<value>78, 25</value>
</data>
<data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
<value>256, 96</value>
</data>
<data name="tableLayoutPanel6.Size" type="System.Drawing.Size, System.Drawing">
<value>252, 74</value>
</data>
<data name="flowLayoutPanel10.Size" type="System.Drawing.Size, System.Drawing">
<value>106, 29</value>
</data>
<data name="flowLayoutPanel9.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 31</value>
</data>
<data name="buttonMFF08.Location" type="System.Drawing.Point, System.Drawing">
<value>122, 3</value>
</data>
<data name="buttonMFF08.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 25</value>
</data>
<data name="tabPage2.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 225</value>
</data>
<data name="tabPage1.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 225</value>
</data>
<data name="tabPage3.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 225</value>
</data>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
JQAAFiUBSVIk8AAAAgNJREFUOE+lkutLk2EYxvePhJaHShFBUTEPiCieQOmDiEZgrEbpYGiCQxkqA80I LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
RUkUEZ0YRMS+DDI70MkTmzJnDc8iU8QT2mAEItnle90wHwTDyBduXnie5/rd133Q4ZKfAJqHFs9E08A8 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk
zD1emDpmYXjqRlnTFIrMk8iuGkNaxWekGEaQrHecBfw+/vPXODw6hj9whN2fh/Bt/8LSRgA3cxr/DeBZ CwAAAk1TRnQBSQFMAgEBBAEAAaABAAGgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
9kvmTNMoHGNbIrYN+3Aj23IxgJkpds0doP3VstgmsNexhutZ9QrAms8T0zYzU5xXM46kcjsmvfvoeL2i AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AeoUgA07T8yaaZuZKab1rzN74jgys1YB2O2gmBZzH49LODXrrJlnzEzxe9cOLH1ziMioVgCOiuIFX0CE AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
Q+/WYf+yieiCFrRp9tkwxnP7Kt5MbKGm6wfC000KwDlTXNLgEvHMkh+Db32o7fYivtQm1l9+3IBOp5P7 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
yjYPwlKNCsAluWudxgvtknb5t9oWcL/VLU2Mvd2JFq3uqs7vAtE/ceNayiMF4KiYMSjmY2O7B4Ua+NaD AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
YQGEJumRbvyG1IcfBHI12aAAXM8R57aIWTNrLLY4tfNPiCvpR1SeVeu6WWzHFD6THSDwFMDdpmUG62NJ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
PKM4Or9ZxBxb8H8l7g5CEu8pAOfM3WanSeeS8CFHxW4zM2umbWamOCShXAH+/wNOANABIDUxWnDPAAAA AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
AElFTkSuQmCC ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AGwAE/yEA
BP8HAAG8AgABbQwAAQcC7QHvBwAB/wH0AfMB9AH/FAAB/wHyAewBbQHxAf8GAAHrAgABFQgABP8BbQIA
ARUE/wMAAf8B7AEUAW0B8QH/EgAB/wHyAW0CAAHsAf8DAAHqAfABvAQAAewB8gHqAbwDAAH/AfQB7wG8
Ae8BEQIAAQ4B7wHwAe8B8wH/AgAB/wETAgABEgHxAf8RAAHyAeoDAAH3Af8BAAH/AewKAAETAf8CAAH/
AZIBDgEQAQ8EAAEOAREBDgHsAf8CAAH/AewDAAETAfEQAAHyARIDAAHrAfMB/wEAAfIFAAHrAZIBEAQA
Ae8CAAHzAQ8DAAFDAfcB7wERAwABDwHxAf8BAAH/AfMB7AMAARUB8g4AAfIBFAMAAesB8wH/AgAB/wH3
AQ4BAAEOAfEB/wEAAfQBDgIAAW0B9AIAAf8B7AIAAUMB8gL/AfIBDwIAAW0B9AH/AgAB/wHzAesDAAEQ
AfIJAAH/AfIB8AG8ARUDAAFtAfMB/wUAAW0BAAESBAAB7QIAAfMEAAH0AeoBAAHsAfQCAAH/Ae0BAAET
AfMGAAH0AW0DAAEQAfIGAAH/AfABQwYAAeoB9AYAAf8BFAEAAUMB/wIAAf8BbQIAAfADAAH/AfMBEgEA
AesB9AIAAf8B7AEAARQB8gH/BgAB9AFtAwABFAHyAf8EAAHwBwAB6gH0BgAB9AEOAwAB7QH/AQAB8QMA
AQ4B8gIAAfQBbQIAAQ4BBwL0AbwBDwIAAeoB8wH/BgAB9AFtAgABDgH3Av8CAAH/AUMBAAIOBAAB8QcA
AfQBDgQAARUB6gEOAwABDgHyAgAB8wERAwABDwHrAW0BDgMAARAB8gH/BwAB9AHsAQ4B7QHxAe8B8gH/
AQAB9AEAARABkgH3AUMDAAHwCAAB8AoAAewDAAH/Ae8BDgFDARAEAAEOARUBDgGSAf8JAAH0AQcB8gHs
AQ4B7AH0AQAB9AEPAQcC/wGSAQ4CAAHxCQABvALzARECAAEOAfEB9AG8AfMDAAH/AfQBvAHxAbwBQwIA
AQ8BBwHyAbwB9AH/CgAB/wG8AQ4BEAEHAf8BAAH/AbwB/wEAAf8B7QEOAQABEAH/DAAB7AIAARMIAAT/
AW0CAAEVBP8LAAH/AfQB9wEHAv8CAAH/AQAB/wHvARACAAG8Af8MAAHzAu8B8AwAAfAC9wEHEAAD/wUA
Af8BvAEQAQABFQHwAf9HAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/gQAC/wH8
AT8D/wHhAfwBPwH8AT8BgwL/AcAB/AE/AcABAwGBAv8BgAHgAQMBgAEBAYAC/wKAAQEBgAEBAYAC/wEA
AYABAQGAAQABgAF/Af4BAQGAAYEBgAEAAcABPwHgAQMB4wHDAcEBgwHwAR8BgAEPAcEBgwKBAfgBBwGA
AR8BgAGBAYABAAH8AQMBAAE/AYABAQGAAQAB/gEBAQABPwHAAQMBgAEBAf8BAQEAAT8B4AEDAYABAQH/
AYEBEAE/AfwBPwHAAQMB/wGBAaABPwH8AT8B/AE/Af8BxwHAAX8I/ws=
</value> </value>
</data> </data>
<data name="statusStrip1.ToolTip" xml:space="preserve"> <data name="tabControl1.Size" type="System.Drawing.Size, System.Drawing">
<value /> <value>1098, 253</value>
</data>
<data name="tableLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>1086, 221</value>
</data>
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
<value>623, 3</value>
</data>
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>92, 215</value>
</data>
<data name="label8.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 51</value>
</data>
<data name="pictureBox3.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 54</value>
</data>
<data name="pictureBox3.Size" type="System.Drawing.Size, System.Drawing">
<value>86, 29</value>
</data>
<data name="groupBox16.Size" type="System.Drawing.Size, System.Drawing">
<value>424, 215</value>
</data>
<data name="tableLayoutPanel15.Size" type="System.Drawing.Size, System.Drawing">
<value>406, 140</value>
</data>
<data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
<value>402, 68</value>
</data>
<data name="label7.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 34</value>
</data>
<data name="buttonEscan.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 30</value>
</data>
<data name="buttonECheckEncrypt.Location" type="System.Drawing.Point, System.Drawing">
<value>202, 2</value>
</data>
<data name="buttonECheckEncrypt.Size" type="System.Drawing.Size, System.Drawing">
<value>162, 30</value>
</data>
<data name="buttoEScanCard.Location" type="System.Drawing.Point, System.Drawing">
<value>202, 36</value>
</data>
<data name="buttoEScanCard.Size" type="System.Drawing.Size, System.Drawing">
<value>162, 30</value>
</data>
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>167, 3</value>
</data>
<data name="pictureBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 3</value>
</data>
<data name="label13.Size" type="System.Drawing.Size, System.Drawing">
<value>400, 68</value>
</data>
<data name="groupBox5.Location" type="System.Drawing.Point, System.Drawing">
<value>432, 2</value>
</data>
<data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 217</value>
</data>
<data name="tableLayoutPanel11.Size" type="System.Drawing.Size, System.Drawing">
<value>182, 195</value>
</data>
<data name="buttonEReadUID.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 27</value>
</data>
<data name="buttonEMfRead.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 27</value>
</data>
<data name="buttonECmfoc.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 27</value>
</data>
<data name="buttonEMfoc.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 27</value>
</data>
<data name="buttonESelectKey.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 27</value>
</data>
<data name="tableLayoutPanel3.Location" type="System.Drawing.Point, System.Drawing">
<value>893, 3</value>
</data>
<data name="tableLayoutPanel3.Size" type="System.Drawing.Size, System.Drawing">
<value>190, 215</value>
</data>
<data name="flowLayoutPanel24.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 32</value>
</data>
<data name="label6.Size" type="System.Drawing.Size, System.Drawing">
<value>141, 32</value>
</data>
<data name="buttonEStop.Location" type="System.Drawing.Point, System.Drawing">
<value>104, 186</value>
</data>
<data name="buttonEStop.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 27</value>
</data>
<data name="groupBox7.Location" type="System.Drawing.Point, System.Drawing">
<value>720, 2</value>
</data>
<data name="groupBox7.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 217</value>
</data>
<data name="tableLayoutPanel13.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 195</value>
</data>
<data name="buttonEUIDWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 27</value>
</data>
<data name="button4.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 27</value>
</data>
<data name="buttonECuidWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 27</value>
</data>
<data name="buttonEMfWrite.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 166</value>
</data>
<data name="buttonEMfWrite.Size" type="System.Drawing.Size, System.Drawing">
<value>158, 27</value>
</data>
<data name="tableLayoutPanel4.Size" type="System.Drawing.Size, System.Drawing">
<value>862, 212</value>
</data>
<data name="flowLayoutPanel8.Size" type="System.Drawing.Size, System.Drawing">
<value>856, 100</value>
</data>
<data name="groupBox10.Location" type="System.Drawing.Point, System.Drawing">
<value>262, 2</value>
</data>
<data name="groupBox10.Size" type="System.Drawing.Size, System.Drawing">
<value>320, 96</value>
</data>
<data name="tableLayoutPanel8.Size" type="System.Drawing.Size, System.Drawing">
<value>316, 74</value>
</data>
<data name="flowLayoutPanel18.Size" type="System.Drawing.Size, System.Drawing">
<value>312, 35</value>
</data>
<data name="buttonHardNested.Location" type="System.Drawing.Point, System.Drawing">
<value>234, 2</value>
</data>
<data name="flowLayoutPanel17.Size" type="System.Drawing.Size, System.Drawing">
<value>310, 29</value>
</data>
<data name="flowLayoutPanel7.Size" type="System.Drawing.Size, System.Drawing">
<value>856, 100</value>
</data>
<data name="groupBox8.Location" type="System.Drawing.Point, System.Drawing">
<value>374, 2</value>
</data>
<data name="groupBox8.Size" type="System.Drawing.Size, System.Drawing">
<value>334, 96</value>
</data>
<data name="tableLayoutPanel9.Size" type="System.Drawing.Size, System.Drawing">
<value>330, 74</value>
</data>
<data name="flowLayoutPanel16.Size" type="System.Drawing.Size, System.Drawing">
<value>324, 31</value>
</data>
<data name="flowLayoutPanel15.Size" type="System.Drawing.Size, System.Drawing">
<value>250, 31</value>
</data>
<data name="groupBox9.Location" type="System.Drawing.Point, System.Drawing">
<value>712, 2</value>
</data>
<data name="groupBox9.Size" type="System.Drawing.Size, System.Drawing">
<value>142, 96</value>
</data>
<data name="flowLayoutPanel21.Size" type="System.Drawing.Size, System.Drawing">
<value>138, 74</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 34</value>
</data>
<data name="tableLayoutPanel14.Size" type="System.Drawing.Size, System.Drawing">
<value>1090, 225</value>
</data>
<data name="flowLayoutPanel6.Size" type="System.Drawing.Size, System.Drawing">
<value>1084, 120</value>
</data>
<data name="groupBox6.Size" type="System.Drawing.Size, System.Drawing">
<value>266, 116</value>
</data>
<data name="flowLayoutPanel2.Size" type="System.Drawing.Size, System.Drawing">
<value>262, 94</value>
</data>
<data name="checkBoxAutoABN.Size" type="System.Drawing.Size, System.Drawing">
<value>240, 19</value>
</data>
<data name="checkBoxAutoLoadKey.Size" type="System.Drawing.Size, System.Drawing">
<value>237, 19</value>
</data>
<data name="checkBoxWriteProtect.Size" type="System.Drawing.Size, System.Drawing">
<value>258, 19</value>
</data>
<data name="checkBoxCuidKeyOver.Size" type="System.Drawing.Size, System.Drawing">
<value>200, 19</value>
</data>
<data name="groupBox12.Location" type="System.Drawing.Point, System.Drawing">
<value>272, 2</value>
</data>
<data name="groupBox12.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 116</value>
</data>
<data name="tableLayoutPanel12.Size" type="System.Drawing.Size, System.Drawing">
<value>216, 56</value>
</data>
<data name="numericCLIFontSize.Location" type="System.Drawing.Point, System.Drawing">
<value>150, 31</value>
</data>
<data name="label9.Size" type="System.Drawing.Size, System.Drawing">
<value>131, 15</value>
</data>
<data name="label10.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 15</value>
</data>
<data name="buttonCLIColor.Location" type="System.Drawing.Point, System.Drawing">
<value>150, 2</value>
</data>
<data name="groupBox14.Location" type="System.Drawing.Point, System.Drawing">
<value>504, 2</value>
</data>
<data name="groupBox14.Size" type="System.Drawing.Size, System.Drawing">
<value>487, 116</value>
</data>
<data name="flowLayoutPanel5.Size" type="System.Drawing.Size, System.Drawing">
<value>483, 94</value>
</data>
<data name="checkBoxNewScan.Size" type="System.Drawing.Size, System.Drawing">
<value>223, 19</value>
</data>
<data name="checkBoxMultiDev.Size" type="System.Drawing.Size, System.Drawing">
<value>477, 19</value>
</data>
<data name="label11.Size" type="System.Drawing.Size, System.Drawing">
<value>118, 15</value>
</data>
<data name="flowLayoutPanel22.Size" type="System.Drawing.Size, System.Drawing">
<value>1084, 93</value>
</data>
<data name="groupBox15.Size" type="System.Drawing.Size, System.Drawing">
<value>170, 68</value>
</data>
<data name="flowLayoutPanel23.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 44</value>
</data>
<data name="label12.Size" type="System.Drawing.Size, System.Drawing">
<value>158, 15</value>
</data>
<data name="comboBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>158, 23</value>
</data>
<data name="groupBox13.Location" type="System.Drawing.Point, System.Drawing">
<value>178, 2</value>
</data>
<data name="groupBox13.Size" type="System.Drawing.Size, System.Drawing">
<value>346, 70</value>
</data>
<data name="flowLayoutPanel4.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 48</value>
</data>
<data name="checkBoxDefIsAdv.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 19</value>
</data>
<data name="checkBoxAutoSave.Size" type="System.Drawing.Size, System.Drawing">
<value>281, 19</value>
</data>
<data name="groupBox11.Location" type="System.Drawing.Point, System.Drawing">
<value>528, 2</value>
</data>
<data name="groupBox11.Size" type="System.Drawing.Size, System.Drawing">
<value>186, 70</value>
</data>
<data name="flowLayoutPanel3.Size" type="System.Drawing.Size, System.Drawing">
<value>182, 48</value>
</data>
<data name="checkBoxHardLowCost.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 19</value>
</data>
<data name="statusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 434</value>
</data>
<data name="statusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>1098, 22</value>
</data>
<data name="statusLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="localVersionLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>18, 23</value>
</data>
<data name="toolStripCheckUpdate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIGSURBVDhPrZLrS5NhGMbff0RMs4OKCEaJR0ISD4Hih5CM
wJiOtMHQBEcxVAZqEYpiJCK6MIiIfRl4qshzsiVz1vAsMUXURBuMQCS7eq9bx+MHw5BeuHnheZ7rd1/3
QfsvX33PAo5HXfccLO0+mFtmYHzqQVHdZ+RbJpFZMY608iGkGAeQZHDiSH4I+HXw+6+xt3+AQHAf33/s
wb/5E4trQURn1f4bwLsUkMwZ5jE4xzdEbO/z43Km9XQAM1Psnt1F85slsU1gh/MbLt14rACs+SQxbTMz
xTlVE0gsdmDSt4OWt8s64JECsGEniVkzbTMzxbQ+Mr0tjb6YUa0A7HZITIvZDyckXLp11swzZqb4nXsL
1s5ZXLheqQAcFcXz/qAIewZX4RheR+zNBjTp9tkwRptjBb2fNlD1/Cui0s0KwDlTXFjjFvH0YgAv+/2o
fuHDldt2sf76wxoFcv+gyYvzqSYF4JLctU3hlX5Ju/zb7PMoeeKRJsYXtKJBr7ui9YtADI0eRKaUKQBH
xYwhMR+bmr3I08HJpX0COJdoQLppFKn33wskIsmoAFzPAdemiFkza7xldelr+xEJhV2IybHpXbeI7bi8
Z7IDBB7JNY27TcsM1seSeEZxbG69iDm20D8s4Q7Cr91TAM6Zu81Ok84l4UOOit1mZtZM28xMcfjVYgU4
+6dpfwAbFjEWhbPs1wAAAABJRU5ErkJggg==
</value>
</data>
<data name="toolStripCheckUpdate.Size" type="System.Drawing.Size, System.Drawing">
<value>165, 22</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>1098, 456</value>
</data> </data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
@ -1765,7 +2118,4 @@ Multi-Open обнаружение будет отключено
//////////////////////////////////8= //////////////////////////////////8=
</value> </value>
</data> </data>
<data name="$this.ToolTip" xml:space="preserve">
<value />
</data>
</root> </root>

View File

@ -117,6 +117,345 @@
<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="buttoEScanCard.Text" xml:space="preserve">
<value>扫描卡片</value>
</data>
<data name="button4.Text" xml:space="preserve">
<value>锁UFUID卡</value>
</data>
<data name="buttonBmfRead.Text" xml:space="preserve">
<value>UID读</value>
</data>
<data name="buttonBmfRead.ToolTip" xml:space="preserve">
<value>读取UID卡片。</value>
</data>
<data name="buttonBmfWrite.Text" xml:space="preserve">
<value>UID写</value>
</data>
<data name="buttonBmfWrite.ToolTip" xml:space="preserve">
<value>写入UID卡片。</value>
</data>
<data name="buttonCheckEncrypt.Text" xml:space="preserve">
<value>检加密</value>
</data>
<data name="buttonCheckEncrypt.ToolTip" xml:space="preserve">
<value>检测卡片加密情况。</value>
</data>
<data name="buttonCLI.Text" xml:space="preserve">
<value>手动CLI</value>
</data>
<data name="buttonCLI.ToolTip" xml:space="preserve">
<value>打开NFC命令行以进行高级操作。</value>
</data>
<data name="buttonCLIColor.Text" xml:space="preserve">
<value>#M1T#</value>
</data>
<data name="buttonCmfWrite.Text" xml:space="preserve">
<value>CUID写</value>
</data>
<data name="buttonCmfWrite.ToolTip" xml:space="preserve">
<value>写入CUID/FUID卡片可能需要密钥文件</value>
</data>
<data name="buttonConClr.Text" xml:space="preserve">
<value>清终端</value>
</data>
<data name="buttonConSave.Text" xml:space="preserve">
<value>存日志</value>
</data>
<data name="buttonDictMfoc.Text" xml:space="preserve">
<value>字典测试</value>
</data>
<data name="buttonDictMfoc.ToolTip" xml:space="preserve">
<value>导入字典文件进行Nested破解。</value>
</data>
<data name="buttonDiffTool.Text" xml:space="preserve">
<value>差异比较</value>
</data>
<data name="buttonECheckEncrypt.Text" xml:space="preserve">
<value>检测加密</value>
</data>
<data name="buttonECmfoc.Text" xml:space="preserve">
<value>知一密破解</value>
</data>
<data name="buttonECuidWrite.Text" xml:space="preserve">
<value>写C/FUID卡</value>
</data>
<data name="buttonEMfoc.Text" xml:space="preserve">
<value>一键解原卡</value>
</data>
<data name="buttonEMfRead.Text" xml:space="preserve">
<value>已知密钥读</value>
</data>
<data name="buttonEMfWrite.Text" xml:space="preserve">
<value>写入普通卡</value>
</data>
<data name="buttonEReadUID.Text" xml:space="preserve">
<value>从UID卡读回</value>
</data>
<data name="buttonEscan.Text" xml:space="preserve">
<value>检测连接</value>
</data>
<data name="buttonESelectKey.Text" xml:space="preserve">
<value>加载密钥…</value>
</data>
<data name="buttonEStop.Text" xml:space="preserve">
<value>停止</value>
</data>
<data name="buttonEUIDWrite.Text" xml:space="preserve">
<value>写(UF)UID卡</value>
</data>
<data name="buttonHardNested.Text" xml:space="preserve">
<value>HardNested</value>
</data>
<data name="buttonHexTool.Text" xml:space="preserve">
<value>Hex编辑器</value>
</data>
<data name="buttonKill.Text" xml:space="preserve">
<value>停运行</value>
</data>
<data name="buttonListDev.Text" xml:space="preserve">
<value>检测设备</value>
</data>
<data name="buttonListDev.ToolTip" xml:space="preserve">
<value>扫描已连接的NFC设备
(目前支持PN532、ACR122U)</value>
</data>
<data name="buttonLockUfuid.Text" xml:space="preserve">
<value>锁Ufuid</value>
</data>
<data name="buttonLockUfuid.ToolTip" xml:space="preserve">
<value>锁死UFUID卡片0块数据测试中</value>
</data>
<data name="buttonMfcuk.Text" xml:space="preserve">
<value>全加密爆破</value>
</data>
<data name="buttonMfcuk.ToolTip" xml:space="preserve">
<value>对卡片执行Darkside工具不一定成功</value>
</data>
<data name="buttonMFF08.Text" xml:space="preserve">
<value>MFF08 CUID修复</value>
</data>
<data name="buttonMfFormat.Text" xml:space="preserve">
<value>清M1</value>
</data>
<data name="buttonMfFormat.ToolTip" xml:space="preserve">
<value>格式化普通M1卡必须加载密钥文件</value>
</data>
<data name="buttonMfoc.Text" xml:space="preserve">
<value>MFOC读</value>
</data>
<data name="buttonMfoc.ToolTip" xml:space="preserve">
<value>对半加密卡片进行Nested破解。
按住Ctrl点击该按钮可添加已知密钥。</value>
</data>
<data name="buttonMfRead.Text" xml:space="preserve">
<value>读M1</value>
</data>
<data name="buttonMfRead.ToolTip" xml:space="preserve">
<value>读取普通M1卡片可能需要加载密钥文件</value>
</data>
<data name="buttonMfWrite.Text" xml:space="preserve">
<value>写M1</value>
</data>
<data name="buttonMfWrite.ToolTip" xml:space="preserve">
<value>写入普通M1卡可能需要加载密钥文件</value>
</data>
<data name="buttonnKeysMfoc.Text" xml:space="preserve">
<value>知n密</value>
</data>
<data name="buttonnKeysMfoc.ToolTip" xml:space="preserve">
<value>输入已知密钥进行Nested破解。</value>
</data>
<data name="buttonScanCard.Text" xml:space="preserve">
<value>手动扫描</value>
</data>
<data name="buttonScanCard.ToolTip" xml:space="preserve">
<value>扫描有效卡片。</value>
</data>
<data name="buttonSelectKey.Text" xml:space="preserve">
<value>选择key.mfd</value>
</data>
<data name="buttonSelectKey.ToolTip" xml:space="preserve">
<value>加载含有正确读写卡密钥及正确控制位的MFD文件。</value>
</data>
<data name="buttonUidFormat.Text" xml:space="preserve">
<value>UID全格</value>
</data>
<data name="buttonUidFormat.ToolTip" xml:space="preserve">
<value>将全卡清空并重新初始化。
可用于ACbit损坏/KEY全部被改等情况的急救。</value>
</data>
<data name="buttonUidReset.Text" xml:space="preserve">
<value>UID重置</value>
</data>
<data name="buttonUidReset.ToolTip" xml:space="preserve">
<value>重置UID卡片0块UID随机厂商号为复旦。</value>
</data>
<data name="buttonUidWrite.Text" xml:space="preserve">
<value>UID写号</value>
</data>
<data name="buttonUidWrite.ToolTip" xml:space="preserve">
<value>向UID卡片写入置顶卡号厂商设置为复旦。</value>
</data>
<data name="checkBoxAutoABN.Text" xml:space="preserve">
<value>自动判断Key(beta)</value>
</data>
<data name="checkBoxAutoLoadKey.Text" xml:space="preserve">
<value>自动加载uid.Key文件</value>
</data>
<data name="checkBoxAutoSave.Text" xml:space="preserve">
<value>自动以UID名保存文件</value>
</data>
<data name="checkBoxCuidKeyOver.Text" xml:space="preserve">
<value>CUID写空卡补丁</value>
</data>
<data name="checkBoxDefIsAdv.Text" xml:space="preserve">
<value>自动转到高级操作模式</value>
</data>
<data name="checkBoxHardLowCost.Text" xml:space="preserve">
<value>单线程计算</value>
</data>
<data name="checkBoxMultiDev.Text" xml:space="preserve">
<value>多实例运行模式 会禁用多开检测 请自行指定设备</value>
<comment>Previous text: 多实例运行模式
会禁用多开检测
请自行指定设备</comment>
</data>
<data name="checkBoxNewScan.Text" xml:space="preserve">
<value>减少找设备延迟</value>
</data>
<data name="checkBoxWriteProtect.Text" xml:space="preserve">
<value>数据写入保护(建议)</value>
</data>
<data name="comboBox1.Items" xml:space="preserve">
<value>标准</value>
</data>
<data name="comboBox1.Items1" xml:space="preserve">
<value>俄语</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>MifareOne Tool</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>设备控制</value>
</data>
<data name="groupBox10.Text" xml:space="preserve">
<value>破解工具</value>
</data>
<data name="groupBox11.Text" xml:space="preserve">
<value>HardNested</value>
</data>
<data name="groupBox12.Text" xml:space="preserve">
<value>界面设置</value>
</data>
<data name="groupBox13.Text" xml:space="preserve">
<value>偏好设置</value>
</data>
<data name="groupBox14.Text" xml:space="preserve">
<value>优化设置</value>
</data>
<data name="groupBox15.Text" xml:space="preserve">
<value>语言和地区</value>
</data>
<data name="groupBox16.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="groupBox4.Text" xml:space="preserve">
<value>集成辅助工具</value>
</data>
<data name="groupBox5.Text" xml:space="preserve">
<value>[2]读取原卡</value>
</data>
<data name="groupBox6.Text" xml:space="preserve">
<value>卡操作相关</value>
</data>
<data name="groupBox7.Text" xml:space="preserve">
<value>[3]写入新卡</value>
</data>
<data name="groupBox8.Text" xml:space="preserve">
<value>UID/UFUID卡操作</value>
</data>
<data name="groupBox9.Text" xml:space="preserve">
<value>C/FUID卡操作</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>该卡种读取
同普通卡</value>
</data>
<data name="label10.Text" xml:space="preserve">
<value>终端文字大小</value>
</data>
<data name="label11.Text" xml:space="preserve">
<value>指定设备</value>
</data>
<data name="label12.Text" xml:space="preserve">
<value>选择界面语言</value>
</data>
<data name="label13.Text" xml:space="preserve">
<value>本工具仅支持SAK=08/18/28的
卡片复制。SAK28无一键解密。
若要复制S70卡片请在高级界
面上取消勾选“数据写入保护”。
</value>
</data>
<data name="label6.Text" xml:space="preserve">
<value>尝试一下是否成功</value>
</data>
<data name="label7.Text" xml:space="preserve">
<value>请放
原卡</value>
</data>
<data name="label8.Text" xml:space="preserve">
<value>请放
新卡</value>
</data>
<data name="label9.Text" xml:space="preserve">
<value>终端文字颜色</value>
</data>
<data name="richTextBox1.Lines[0]" xml:space="preserve">
<value>Hello,cardman!</value>
<comment>Previous text: ппппппппппппппппппп</comment>
</data>
<data name="runTimeLabel.Text" xml:space="preserve">
<value>计时器</value>
</data>
<data name="statusLabel.Text" xml:space="preserve">
<value>就绪</value>
</data>
<data name="statusStrip1.Text" xml:space="preserve">
<value>statusStrip1</value>
</data>
<data name="tabPage1.ImageKey" xml:space="preserve">
<value>round_build_black_18pt_1x.png</value>
</data>
<data name="tabPage1.Text" xml:space="preserve">
<value>高级操作模式</value>
</data>
<data name="tabPage2.ImageKey" xml:space="preserve">
<value>sharp_file_copy_black_18pt_1x.png</value>
<comment>Previous text: round_create_black_18pt_1x.png</comment>
</data>
<data name="tabPage2.Text" xml:space="preserve">
<value>复制卡模式</value>
</data>
<data name="tabPage3.ImageKey" xml:space="preserve">
<value>round_settings_black_18pt_1x.png</value>
</data>
<data name="tabPage3.Text" xml:space="preserve">
<value>软件设置</value>
</data>
<data name="toolStripCheckUpdate.Text" xml:space="preserve">
<value>检查更新</value>
</data>
<data name="toolStripCheckUpdate.ToolTipText" xml:space="preserve">
<value>检查更新</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolStripCheckUpdate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="toolStripCheckUpdate.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

View File

@ -33,15 +33,22 @@
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;
this.richTextBox1.ForeColor = System.Drawing.Color.Orange;
resources.ApplyResources(this.richTextBox1, "richTextBox1"); resources.ApplyResources(this.richTextBox1, "richTextBox1");
this.richTextBox1.ForeColor = System.Drawing.Color.Orange;
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);
// //
// button1 // button1
// //
@ -64,20 +71,44 @@
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"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.button3); this.Controls.Add(this.flowLayoutPanel2);
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.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();
} }
@ -87,5 +118,8 @@
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;
} }
} }

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
@ -26,8 +27,8 @@ namespace MifareOneTool
{ {
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "MFD文件|*.mfd;*.dump"; ofd.Filter = Resources.MFD文件_mfd_dump;
ofd.Title = "请选择需要打开的MFD文件(比较A)"; ofd.Title = Resources.MFD文件_比较A;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -45,7 +46,7 @@ namespace MifareOneTool
} }
catch (IOException ioe) catch (IOException ioe)
{ {
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ioe.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
sa = new S50(); sa = new S50();
return; return;
} }
@ -64,8 +65,8 @@ namespace MifareOneTool
{ {
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "MFD文件|*.mfd;*.dump"; ofd.Filter = Resources.MFD文件_mfd_dump;
ofd.Title = "请选择需要打开的MFD文件(比较B)"; ofd.Title = Resources.MFD文件_比较B;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -83,7 +84,7 @@ namespace MifareOneTool
} }
catch (IOException ioe) catch (IOException ioe)
{ {
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ioe.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
sb = new S50(); sb = new S50();
return; return;
} }
@ -98,7 +99,7 @@ namespace MifareOneTool
} }
else else
{ {
logAppend("AB文件中一个或两个无效。"); logAppend(Resources.AB文件中一个或两个无效);
} }
} }
private string Compare() private string Compare()
@ -108,7 +109,7 @@ namespace MifareOneTool
for (int i = 0; i < 16; i++) for (int i = 0; i < 16; i++)
{ {
stb.AppendLine("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"); stb.AppendLine("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
stb.AppendLine("扇区 " + i.ToString()); stb.AppendLine(Resources.0 + i.ToString());
for (int a = 0; a < 4; a++) for (int a = 0; a < 4; a++)
{ {
string res = ""; string res = "";
@ -133,7 +134,12 @@ namespace MifareOneTool
} }
} }
return "共找到 " + diffCount.ToString() + " 个块不同\n" + stb.ToString(); return Resources. + diffCount.ToString() + Resources._个块不同 + stb.ToString();
}
private void RichTextBox1_TextChanged(object sender, EventArgs e)
{
} }
} }
} }

View File

@ -151,19 +151,22 @@
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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" /> <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"> <data name="richTextBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 99</value> <value>2, 69</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="richTextBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="richTextBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value> <value>2, 3, 2, 3</value>
</data> </data>
<data name="richTextBox1.ScrollBars" type="System.Windows.Forms.RichTextBoxScrollBars, System.Windows.Forms"> <data name="richTextBox1.ScrollBars" type="System.Windows.Forms.RichTextBoxScrollBars, System.Windows.Forms">
<value>ForcedVertical</value> <value>ForcedVertical</value>
</data> </data>
<data name="richTextBox1.Size" type="System.Drawing.Size, System.Drawing"> <data name="richTextBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>527, 631</value> <value>348, 221</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="richTextBox1.TabIndex" type="System.Int32, mscorlib"> <data name="richTextBox1.TabIndex" type="System.Int32, mscorlib">
@ -176,19 +179,19 @@
<value>System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;richTextBox1.Parent" xml:space="preserve"> <data name="&gt;&gt;richTextBox1.Parent" xml:space="preserve">
<value>$this</value> <value>flowLayoutPanel2</value>
</data> </data>
<data name="&gt;&gt;richTextBox1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;richTextBox1.ZOrder" xml:space="preserve">
<value>3</value> <value>1</value>
</data> </data>
<data name="button1.Location" type="System.Drawing.Point, System.Drawing"> <data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 16</value> <value>2, 3</value>
</data> </data>
<data name="button1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="button1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value> <value>2, 3, 2, 3</value>
</data> </data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing"> <data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>436, 33</value> <value>291, 21</value>
</data> </data>
<data name="button1.TabIndex" type="System.Int32, mscorlib"> <data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@ -203,19 +206,19 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;button1.Parent" xml:space="preserve"> <data name="&gt;&gt;button1.Parent" xml:space="preserve">
<value>$this</value> <value>flowLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>2</value> <value>0</value>
</data> </data>
<data name="button2.Location" type="System.Drawing.Point, System.Drawing"> <data name="button2.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 57</value> <value>2, 30</value>
</data> </data>
<data name="button2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="button2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value> <value>2, 3, 2, 3</value>
</data> </data>
<data name="button2.Size" type="System.Drawing.Size, System.Drawing"> <data name="button2.Size" type="System.Drawing.Size, System.Drawing">
<value>436, 33</value> <value>291, 21</value>
</data> </data>
<data name="button2.TabIndex" type="System.Int32, mscorlib"> <data name="button2.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@ -230,19 +233,28 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;button2.Parent" xml:space="preserve"> <data name="&gt;&gt;button2.Parent" xml:space="preserve">
<value>$this</value> <value>flowLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;button2.ZOrder" xml:space="preserve"> <data name="&gt;&gt;button2.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </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"> <data name="button3.Location" type="System.Drawing.Point, System.Drawing">
<value>457, 16</value> <value>303, 3</value>
</data> </data>
<data name="button3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="button3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value> <value>2, 3, 2, 3</value>
</data> </data>
<data name="button3.Size" type="System.Drawing.Size, System.Drawing"> <data name="button3.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 75</value> <value>41, 54</value>
</data> </data>
<data name="button3.TabIndex" type="System.Int32, mscorlib"> <data name="button3.TabIndex" type="System.Int32, mscorlib">
<value>3</value> <value>3</value>
@ -254,19 +266,130 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;button3.Parent" xml:space="preserve"> <data name="&gt;&gt;button3.Parent" xml:space="preserve">
<value>$this</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;button3.ZOrder" xml:space="preserve"> <data name="&gt;&gt;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="&gt;&gt;flowLayoutPanel1.Name" xml:space="preserve">
<value>flowLayoutPanel1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;flowLayoutPanel1.Parent" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>flowLayoutPanel2</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="flowLayoutPanel1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="button3" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</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="&gt;&gt;flowLayoutPanel2.Name" xml:space="preserve">
<value>flowLayoutPanel2</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;flowLayoutPanel2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;flowLayoutPanel2.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>9, 20</value> <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>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>555, 747</value> <value>370, 456</value>
</data> </data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 4, 3, 4</value> <value>2, 3, 2, 3</value>
</data> </data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>FormDiff</value> <value>FormDiff</value>

View File

@ -118,13 +118,16 @@
<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"> <data name="button1.Text" xml:space="preserve">
<value /> <value>A</value>
</data> </data>
<data name="button2.Text" xml:space="preserve"> <data name="button2.Text" xml:space="preserve">
<value>В</value> <value>В</value>
</data> </data>
<data name="button3.Text" xml:space="preserve"> <data name="button3.Text" xml:space="preserve">
<value>сравнить</value> <value>Сравнить</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Сравнение дампов</value>
</data> </data>
<data name="richTextBox1.Lines[0]" xml:space="preserve"> <data name="richTextBox1.Lines[0]" xml:space="preserve">
<value>Добро пожаловать во встроенный инструмент различий M1T!</value> <value>Добро пожаловать во встроенный инструмент различий M1T!</value>
@ -139,10 +142,9 @@
<value>Затем нажмите «Сравнить», чтобы увидеть результаты.</value> <value>Затем нажмите «Сравнить», чтобы увидеть результаты.</value>
</data> </data>
<data name="richTextBox1.Text" xml:space="preserve"> <data name="richTextBox1.Text" xml:space="preserve">
<value>Добро пожаловать во встроенный инструмент различий M1T! <value>Добро пожаловать во встроенный инструмент сравнения дампов!
Описание: Описание:
Нажмите две кнопки AB выше, чтобы выбрать файл MFD. 1. Нажмите А или В, чтобы выбрать файл MFD.
Затем нажмите «Сравнить», чтобы увидеть результаты. 2. Нажмите «Сравнить», чтобы увидеть результаты.</value>
</value>
</data> </data>
</root> </root>

View File

@ -75,12 +75,24 @@
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();
// //
@ -249,27 +261,8 @@
// //
// groupBox2 // groupBox2
// //
this.groupBox2.Controls.Add(this.buttonSaveSectorEdit);
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);
resources.ApplyResources(this.groupBox2, "groupBox2"); resources.ApplyResources(this.groupBox2, "groupBox2");
this.groupBox2.Controls.Add(this.tableLayoutPanel2);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.TabStop = false; this.groupBox2.TabStop = false;
// //
@ -432,8 +425,8 @@
// //
// groupBox3 // groupBox3
// //
this.groupBox3.Controls.Add(this.richTextBox1);
resources.ApplyResources(this.groupBox3, "groupBox3"); resources.ApplyResources(this.groupBox3, "groupBox3");
this.groupBox3.Controls.Add(this.richTextBox1);
this.groupBox3.Name = "groupBox3"; this.groupBox3.Name = "groupBox3";
this.groupBox3.TabStop = false; this.groupBox3.TabStop = false;
// //
@ -445,6 +438,63 @@
this.richTextBox1.Name = "richTextBox1"; this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.ReadOnly = true; this.richTextBox1.ReadOnly = true;
// //
// tableLayoutPanel1
//
resources.ApplyResources(this.tableLayoutPanel1, "tableLayoutPanel1");
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
// //
this.s50BindingSource.DataSource = typeof(MifareOneTool.S50); this.s50BindingSource.DataSource = typeof(MifareOneTool.S50);
@ -454,9 +504,7 @@
this.AcceptButton = this.buttonSaveSectorEdit; this.AcceptButton = this.buttonSaveSectorEdit;
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox3); this.Controls.Add(this.tableLayoutPanel1);
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;
@ -470,6 +518,18 @@
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();
@ -524,5 +584,11 @@
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;
} }
} }

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
@ -30,7 +31,7 @@ namespace MifareOneTool
{ {
int sectorIndex = dataGridView1.SelectedRows[0].Index; int sectorIndex = dataGridView1.SelectedRows[0].Index;
reloadEdit(sectorIndex); reloadEdit(sectorIndex);
logAppend("显示扇区" + sectorIndex.ToString()); logAppend(Resources. + sectorIndex.ToString());
} }
} }
private void logAppend(string msg) private void logAppend(string msg)
@ -52,10 +53,10 @@ namespace MifareOneTool
this.block2Edit.Text = ""; this.block2Edit.Text = "";
this.block1Edit.Text = ""; this.block1Edit.Text = "";
this.block0Edit.Text = ""; this.block0Edit.Text = "";
this.labelCurSec.Text = "当前选定扇区:??"; this.labelCurSec.Text = Resources.;
return; return;
} }
labelCurSec.Text = "当前选定扇区:" + sectorIndex.ToString(); labelCurSec.Text = Resources.0 + 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]);
@ -76,7 +77,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 += "该扇区UID校验值错误已经自动为您更正。\n"; msg += Resources.UID校验值错误_已经自动为您更正;
} }
if ((res & 0x02) == 0x02) if ((res & 0x02) == 0x02)
{ {
@ -84,7 +85,7 @@ namespace MifareOneTool
comboBox2.SelectedIndex = 0; comboBox2.SelectedIndex = 0;
comboBox3.SelectedIndex = 0; comboBox3.SelectedIndex = 0;
comboBox4.SelectedIndex = 1; comboBox4.SelectedIndex = 1;
msg += "该扇区访问控制位无效,写入将会损坏卡片,已重新设置。\n"; msg += Resources.访_写入将会损坏卡片_已重新设置;
} }
if ((res & 0x04) == 0x04) if ((res & 0x04) == 0x04)
{ {
@ -92,7 +93,7 @@ namespace MifareOneTool
comboBox2.SelectedIndex = 0; comboBox2.SelectedIndex = 0;
comboBox3.SelectedIndex = 0; comboBox3.SelectedIndex = 0;
comboBox4.SelectedIndex = 1; comboBox4.SelectedIndex = 1;
msg += "该扇区访问控制位损坏,写入将会损坏卡片,已重新设置。\n"; msg += Resources.访_写入将会损坏卡片_已重新设置;
} }
if (res != 0x00) { MessageBox.Show(msg.Trim()); } if (res != 0x00) { MessageBox.Show(msg.Trim()); }
@ -104,8 +105,8 @@ namespace MifareOneTool
reloadEdit(-1); reloadEdit(-1);
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "MFD文件|*.mfd;*.dump"; ofd.Filter = Resources.MFD文件_mfd_dump;
ofd.Title = "请选择需要打开的MFD文件"; ofd.Title = Resources.MFD文件;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -122,12 +123,12 @@ namespace MifareOneTool
} }
catch (IOException ioe) catch (IOException ioe)
{ {
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ioe.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
this.currentS50 = new S50(); this.currentS50 = new S50();
return; return;
} }
reloadList(); reloadList();
logAppend("打开了" + ofd.FileName); logAppend(Resources. + ofd.FileName);
} }
private void reloadList() private void reloadList()
@ -154,9 +155,9 @@ namespace MifareOneTool
} }
catch (Exception ex) catch (Exception ex)
{ {
MessageBox.Show(ex.Message, "写入出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ex.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
logAppend("已保存到" + currentFilename + "。"); logAppend(Resources. + currentFilename + Resources.res);
} }
private void ToolStripMenuItem_Click(object sender, EventArgs e) private void ToolStripMenuItem_Click(object sender, EventArgs e)
@ -165,9 +166,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 = "请选择MFD文件保存位置及文件名"; ofd.Title = Resources.MFD文件保存位置及文件名;
ofd.OverwritePrompt = true; ofd.OverwritePrompt = true;
ofd.Filter = "MFD文件|*.mfd|DUMP文件|*.dump"; ofd.Filter = Resources.MFD文件_mfd_DUMP文件_dump;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
filename = ofd.FileName; filename = ofd.FileName;
@ -182,9 +183,9 @@ namespace MifareOneTool
} }
catch (Exception ex) catch (Exception ex)
{ {
MessageBox.Show(ex.Message, "写入出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ex.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
logAppend("已保存到" + filename + "。"); logAppend(Resources. + filename + "。");
} }
private void block0Edit_Validating(object sender, CancelEventArgs e) private void block0Edit_Validating(object sender, CancelEventArgs e)
@ -232,7 +233,7 @@ namespace MifareOneTool
|| keyAEdit.BackColor != Color.Aquamarine || keyAEdit.BackColor != Color.Aquamarine
|| keyBEdit.BackColor != Color.Aquamarine) || keyBEdit.BackColor != Color.Aquamarine)
{ {
MessageBox.Show("当前扇区数据仍有错误,不能执行修改。"); MessageBox.Show(Resources._不能执行修改);
return; return;
} }
currentS50.Sectors[currentSector].Block[0] = Utils.Hex2Block(block0Edit.Text.Trim(),16); currentS50.Sectors[currentSector].Block[0] = Utils.Hex2Block(block0Edit.Text.Trim(),16);
@ -257,14 +258,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("已更新扇区" + currentSector.ToString()); logAppend(Resources. + 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 == "##文件中的值错误##") if (tb.SelectedIndex < 0 || tb.Text == Resources._文件中的值错误)
{ {
tb.BackColor = Color.Tomato; tb.BackColor = Color.Tomato;
//e.Cancel = true; //e.Cancel = true;
@ -280,29 +281,29 @@ namespace MifareOneTool
int[] res = currentS50.Verify(); int[] res = currentS50.Verify();
if (res[16] == 0) if (res[16] == 0)
{ {
MessageBox.Show("该文件一切正常。"); MessageBox.Show(Resources.);
} }
else else
{ {
string msg = "该文件存在以下错误:\n"; string msg = Resources.;
for (int i = 0; i < 16; i++) for (int i = 0; i < 16; i++)
{ {
msg += "扇区" + i.ToString() + "\n"; msg += Resources. + i.ToString() + "\n";
if ((res[i] & 0x01) == 0x01) if ((res[i] & 0x01) == 0x01)
{ {
msg += "该扇区UID校验值错误请点击打开扇区0来自动更正。\n"; msg += Resources.UID校验值错误_请点击打开扇区0来自动更正;
} }
if ((res[i] & 0x02) == 0x02) if ((res[i] & 0x02) == 0x02)
{ {
msg += "该扇区访问控制位无效,写入将会损坏卡片,请重新设置。\n"; msg += Resources.访_写入将会损坏卡片_请重新设置;
} }
if ((res[i] & 0x04) == 0x04) if ((res[i] & 0x04) == 0x04)
{ {
msg += "该扇区访问控制位损坏,写入将会损坏卡片,请重新设置。\n"; msg += Resources.访_写入将会损坏卡片_请重新设置;
} }
if (res[i] == 0) if (res[i] == 0)
{ {
msg += "该扇区一切正常。\n"; msg += Resources.;
} }
} }
richTextBox1.Clear(); richTextBox1.Clear();
@ -316,11 +317,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("请输入需要更改的UID卡号共8位十六进制数如E44A3BF1。", "请输入UID号", Form1.hex(buid), -1, -1).Trim(); string uid = Interaction.InputBox(Resources.UID卡号_共8位十六进制数_如E44A3B, Resources.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("输入的UID号不合法", "InputError", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.UID号不合法, Resources.InputError, MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
} }
buid = Utils.Hex2Block(uid, 4); buid = Utils.Hex2Block(uid, 4);
@ -330,7 +331,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("UID已改为" + Form1.hex(buid) + "计算得到BCC=" + Form1.hex(new byte[]{bcc})); logAppend(Resources.UID已改为 + Form1.hex(buid) + Resources._计算得到BCC + Form1.hex(new byte[]{bcc}));
reloadEdit(0); reloadEdit(0);
} }
@ -339,7 +340,7 @@ namespace MifareOneTool
reloadEdit(-1); reloadEdit(-1);
this.currentS50 = new S50(); this.currentS50 = new S50();
reloadList(); reloadList();
logAppend("已重置并新建卡。"); logAppend(Resources.);
} }
private void ToolStripMenuItem_Click(object sender, EventArgs e) private void ToolStripMenuItem_Click(object sender, EventArgs e)
@ -348,14 +349,14 @@ namespace MifareOneTool
int[] res = currentS50.Verify(); int[] res = currentS50.Verify();
if (res[16] == 0) if (res[16] == 0)
{ {
MessageBox.Show("该文件一切正常。"); MessageBox.Show(Resources.);
} }
else else
{ {
string msg = "该文件存在以下错误:\n"; string msg = Resources.;
for (int i = 0; i < 16; i++) for (int i = 0; i < 16; i++)
{ {
msg += "扇区" + i.ToString() + "\n"; msg += Resources. + 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]
@ -364,7 +365,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 += "该扇区UID校验值错误已自动更正。\n"; msg += Resources.UID校验值错误_已自动更正;
} }
if ((res[i] & 0x02) == 0x02) if ((res[i] & 0x02) == 0x02)
{ {
@ -372,7 +373,7 @@ namespace MifareOneTool
{ {
currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6]; currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6];
} }
msg += "该扇区访问控制位无效,写入将会损坏卡片,已重新设置。\n"; msg += Resources.访_写入将会损坏卡片_已重新设置;
} }
if ((res[i] & 0x04) == 0x04) if ((res[i] & 0x04) == 0x04)
{ {
@ -380,11 +381,11 @@ namespace MifareOneTool
{ {
currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6]; currentS50.Sectors[i].Block[3][j] = defaultAC[j - 6];
} }
msg += "该扇区访问控制位损坏,写入将会损坏卡片,已重新设置。\n"; msg += Resources.访_写入将会损坏卡片_已重新设置;
} }
if (res[i] == 0) if (res[i] == 0)
{ {
msg += "该扇区一切正常。\n"; msg += Resources.;
} }
} }
richTextBox1.Clear(); richTextBox1.Clear();
@ -398,9 +399,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 = "请选择MCT.txt文件保存位置及文件名"; ofd.Title = Resources.MCT_txt文件保存位置及文件名;
ofd.OverwritePrompt = true; ofd.OverwritePrompt = true;
ofd.Filter = "txt文件|*.txt"; ofd.Filter = Resources.txt文件_txt;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
filename = ofd.FileName; filename = ofd.FileName;
@ -415,9 +416,9 @@ namespace MifareOneTool
} }
catch (Exception ex) catch (Exception ex)
{ {
MessageBox.Show(ex.Message, "写入出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ex.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
logAppend("已导出MCT文件" + filename + "。"); logAppend(Resources.MCT文件 + filename + "。");
} }
private void ToolStripMenuItem_Click(object sender, EventArgs e) private void ToolStripMenuItem_Click(object sender, EventArgs e)
@ -426,9 +427,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 = "请选择密钥字典文件保存位置及文件名"; ofd.Title = Resources.;
ofd.OverwritePrompt = true; ofd.OverwritePrompt = true;
ofd.Filter = "字典文件|*.dic"; ofd.Filter = Resources._dic;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
filename = ofd.FileName; filename = ofd.FileName;
@ -438,7 +439,7 @@ namespace MifareOneTool
return; return;
} }
File.WriteAllLines(filename, this.currentS50.KeyListStr().ToArray()); File.WriteAllLines(filename, this.currentS50.KeyListStr().ToArray());
logAppend("已导出密钥字典文件" + filename + "。"); logAppend(Resources. + filename + "。");
} }
private void MCT格式ToolStripMenuItem_Click(object sender, EventArgs e) private void MCT格式ToolStripMenuItem_Click(object sender, EventArgs e)
@ -446,8 +447,8 @@ namespace MifareOneTool
reloadEdit(-1); reloadEdit(-1);
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "MCT格式|*.*"; ofd.Filter = Resources.MCT格式;
ofd.Title = "请选择需要打开的MCT格式文件"; ofd.Title = Resources.MCT格式文件;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -464,12 +465,12 @@ namespace MifareOneTool
} }
catch (IOException ioe) catch (IOException ioe)
{ {
MessageBox.Show(ioe.Message, "打开出错", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(ioe.Message, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
this.currentS50 = new S50(); this.currentS50 = new S50();
return; return;
} }
reloadList(); reloadList();
logAppend("打开了" + ofd.FileName); logAppend(Resources. + ofd.FileName);
} }
private void ToolStripMenuItem_Click(object sender, EventArgs e) private void ToolStripMenuItem_Click(object sender, EventArgs e)
@ -477,7 +478,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("#扇区 " + i.ToString()); sb.AppendLine(Resources._扇区 + 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));
} }

File diff suppressed because it is too large Load Diff

View File

@ -117,10 +117,201 @@
<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="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"> <data name="label4.Text" xml:space="preserve">
<value>KEYA</value> <value>Ключ A</value>
</data> </data>
<data name="label5.Text" xml:space="preserve"> <data name="label5.Text" xml:space="preserve">
<value>KEYB</value> <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> </data>
</root> </root>

View File

@ -47,8 +47,20 @@
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
@ -60,22 +72,16 @@
// //
// button2 // button2
// //
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
resources.ApplyResources(this.button2, "button2"); resources.ApplyResources(this.button2, "button2");
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button2.Name = "button2"; this.button2.Name = "button2";
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
// //
this.groupBox1.Controls.Add(this.radioKey1B);
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);
resources.ApplyResources(this.groupBox1, "groupBox1"); resources.ApplyResources(this.groupBox1, "groupBox1");
this.groupBox1.Controls.Add(this.tableLayoutPanel1);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
// //
@ -150,13 +156,8 @@
// //
// groupBox2 // groupBox2
// //
this.groupBox2.Controls.Add(this.checkBoxColOnly);
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);
resources.ApplyResources(this.groupBox2, "groupBox2"); resources.ApplyResources(this.groupBox2, "groupBox2");
this.groupBox2.Controls.Add(this.tableLayoutPanel4);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.TabStop = false; this.groupBox2.TabStop = false;
// //
@ -171,6 +172,57 @@
resources.ApplyResources(this.sector2, "sector2"); resources.ApplyResources(this.sector2, "sector2");
this.sector2.Name = "sector2"; this.sector2.Name = "sector2";
// //
// tableLayoutPanel1
//
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;
@ -178,11 +230,7 @@
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button2; this.CancelButton = this.button2;
this.ControlBox = false; this.ControlBox = false;
this.Controls.Add(this.groupBox2); this.Controls.Add(this.tableLayoutPanel3);
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.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
@ -191,6 +239,18 @@
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();
@ -216,5 +276,11 @@
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;
} }
} }

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
@ -115,7 +116,7 @@ namespace MifareOneTool
} }
if (error) if (error)
{ {
MessageBox.Show("设置错误,请修改。"); MessageBox.Show(Resources._请修改);
return; return;
} }
this.DialogResult = DialogResult.Yes; this.DialogResult = DialogResult.Yes;

View File

@ -180,14 +180,21 @@
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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" /> <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"> <data name="button1.Location" type="System.Drawing.Point, System.Drawing">
<value>346, 250</value> <value>64, 3</value>
</data> </data>
<data name="button1.Size" type="System.Drawing.Size, System.Drawing"> <data name="button1.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 33</value> <value>55, 30</value>
</data> </data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="button1.TabIndex" type="System.Int32, mscorlib"> <data name="button1.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
</data> </data>
@ -198,16 +205,25 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;button1.Parent" xml:space="preserve"> <data name="&gt;&gt;button1.Parent" xml:space="preserve">
<value>$this</value> <value>tableLayoutPanel5</value>
</data> </data>
<data name="&gt;&gt;button1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;button1.ZOrder" xml:space="preserve">
<value>4</value> <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>
<data name="button2.Location" type="System.Drawing.Point, System.Drawing"> <data name="button2.Location" type="System.Drawing.Point, System.Drawing">
<value>255, 250</value> <value>3, 3</value>
</data> </data>
<data name="button2.Size" type="System.Drawing.Size, System.Drawing"> <data name="button2.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 33</value> <value>55, 30</value>
</data> </data>
<data name="button2.TabIndex" type="System.Int32, mscorlib"> <data name="button2.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@ -219,16 +235,61 @@
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;button2.Parent" xml:space="preserve"> <data name="&gt;&gt;button2.Parent" xml:space="preserve">
<value>$this</value> <value>tableLayoutPanel5</value>
</data> </data>
<data name="&gt;&gt;button2.ZOrder" xml:space="preserve"> <data name="&gt;&gt;button2.ZOrder" xml:space="preserve">
<value>3</value> <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="&gt;&gt;tableLayoutPanel1.Name" xml:space="preserve">
<value>tableLayoutPanel1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel1.Parent" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel1.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioKey1B" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="label2" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="radioKey1A" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="keyEdit" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label4" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="sector1" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</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="&gt;&gt;groupBox1.Name" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;groupBox1.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
<value>0</value>
</data> </data>
<data name="radioKey1B.AutoSize" type="System.Boolean, mscorlib"> <data name="radioKey1B.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="radioKey1B.Location" type="System.Drawing.Point, System.Drawing"> <data name="radioKey1B.Location" type="System.Drawing.Point, System.Drawing">
<value>291, 53</value> <value>283, 23</value>
</data> </data>
<data name="radioKey1B.Size" type="System.Drawing.Size, System.Drawing"> <data name="radioKey1B.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 24</value> <value>71, 24</value>
@ -243,7 +304,7 @@
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;radioKey1B.Parent" xml:space="preserve"> <data name="&gt;&gt;radioKey1B.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;radioKey1B.ZOrder" xml:space="preserve"> <data name="&gt;&gt;radioKey1B.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
@ -252,7 +313,7 @@
<value>True</value> <value>True</value>
</data> </data>
<data name="radioKey1A.Location" type="System.Drawing.Point, System.Drawing"> <data name="radioKey1A.Location" type="System.Drawing.Point, System.Drawing">
<value>218, 53</value> <value>206, 23</value>
</data> </data>
<data name="radioKey1A.Size" type="System.Drawing.Size, System.Drawing"> <data name="radioKey1A.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 24</value> <value>71, 24</value>
@ -267,23 +328,29 @@
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;radioKey1A.Parent" xml:space="preserve"> <data name="&gt;&gt;radioKey1A.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;radioKey1A.ZOrder" xml:space="preserve"> <data name="&gt;&gt;radioKey1A.ZOrder" xml:space="preserve">
<value>1</value> <value>2</value>
</data> </data>
<data name="label4.AutoSize" type="System.Boolean, mscorlib"> <data name="label4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </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"> <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
<value>213, 28</value> <value>206, 0</value>
</data> </data>
<data name="label4.Size" type="System.Drawing.Size, System.Drawing"> <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value> <value>71, 20</value>
</data> </data>
<data name="label4.TabIndex" type="System.Int32, mscorlib"> <data name="label4.TabIndex" type="System.Int32, mscorlib">
<value>13</value> <value>13</value>
</data> </data>
<data name="label4.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;label4.Name" xml:space="preserve"> <data name="&gt;&gt;label4.Name" xml:space="preserve">
<value>label4</value> <value>label4</value>
</data> </data>
@ -291,16 +358,19 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;label4.Parent" xml:space="preserve"> <data name="&gt;&gt;label4.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;label4.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
<value>2</value> <value>4</value>
</data> </data>
<data name="label3.AutoSize" type="System.Boolean, mscorlib"> <data name="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </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"> <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>148, 28</value> <value>143, 0</value>
</data> </data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing"> <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>57, 20</value> <value>57, 20</value>
@ -308,6 +378,9 @@
<data name="label3.TabIndex" type="System.Int32, mscorlib"> <data name="label3.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
</data> </data>
<data name="label3.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;label3.Name" xml:space="preserve"> <data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value> <value>label3</value>
</data> </data>
@ -315,16 +388,19 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve"> <data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>3</value> <value>5</value>
</data>
<data name="sector1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data> </data>
<data name="sector1.Location" type="System.Drawing.Point, System.Drawing"> <data name="sector1.Location" type="System.Drawing.Point, System.Drawing">
<value>152, 52</value> <value>143, 23</value>
</data> </data>
<data name="sector1.Size" type="System.Drawing.Size, System.Drawing"> <data name="sector1.Size" type="System.Drawing.Size, System.Drawing">
<value>52, 26</value> <value>57, 26</value>
</data> </data>
<data name="sector1.TabIndex" type="System.Int32, mscorlib"> <data name="sector1.TabIndex" type="System.Int32, mscorlib">
<value>11</value> <value>11</value>
@ -336,13 +412,16 @@
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;sector1.Parent" xml:space="preserve"> <data name="&gt;&gt;sector1.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;sector1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;sector1.ZOrder" xml:space="preserve">
<value>4</value> <value>6</value>
</data>
<data name="keyEdit.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data> </data>
<data name="keyEdit.Location" type="System.Drawing.Point, System.Drawing"> <data name="keyEdit.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 52</value> <value>3, 23</value>
</data> </data>
<data name="keyEdit.Size" type="System.Drawing.Size, System.Drawing"> <data name="keyEdit.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 26</value> <value>134, 26</value>
@ -357,23 +436,29 @@
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;keyEdit.Parent" xml:space="preserve"> <data name="&gt;&gt;keyEdit.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;keyEdit.ZOrder" xml:space="preserve"> <data name="&gt;&gt;keyEdit.ZOrder" xml:space="preserve">
<value>5</value> <value>3</value>
</data> </data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib"> <data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </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"> <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 28</value> <value>3, 0</value>
</data> </data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing"> <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 20</value> <value>134, 20</value>
</data> </data>
<data name="label2.TabIndex" type="System.Int32, mscorlib"> <data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
</data> </data>
<data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve"> <data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value> <value>label2</value>
</data> </data>
@ -381,44 +466,29 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve"> <data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>groupBox1</value> <value>tableLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>6</value> <value>1</value>
</data>
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 17</value>
</data>
<data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>417, 108</value>
</data>
<data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
<value>groupBox1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;groupBox1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
<value>2</value>
</data> </data>
<data name="label1.AutoSize" type="System.Boolean, mscorlib"> <data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </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"> <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 257</value> <value>3, 0</value>
</data> </data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing"> <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>217, 20</value> <value>217, 42</value>
</data> </data>
<data name="label1.TabIndex" type="System.Int32, mscorlib"> <data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>3</value> <value>3</value>
</data> </data>
<data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve"> <data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value> <value>label1</value>
</data> </data>
@ -426,16 +496,16 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve"> <data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>$this</value> <value>flowLayoutPanel1</value>
</data> </data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>1</value> <value>0</value>
</data> </data>
<data name="radioKey2B.AutoSize" type="System.Boolean, mscorlib"> <data name="radioKey2B.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="radioKey2B.Location" type="System.Drawing.Point, System.Drawing"> <data name="radioKey2B.Location" type="System.Drawing.Point, System.Drawing">
<value>291, 53</value> <value>143, 23</value>
</data> </data>
<data name="radioKey2B.Size" type="System.Drawing.Size, System.Drawing"> <data name="radioKey2B.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 24</value> <value>71, 24</value>
@ -450,16 +520,16 @@
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;radioKey2B.Parent" xml:space="preserve"> <data name="&gt;&gt;radioKey2B.Parent" xml:space="preserve">
<value>groupBox2</value> <value>tableLayoutPanel2</value>
</data> </data>
<data name="&gt;&gt;radioKey2B.ZOrder" xml:space="preserve"> <data name="&gt;&gt;radioKey2B.ZOrder" xml:space="preserve">
<value>1</value> <value>0</value>
</data> </data>
<data name="radioKey2A.AutoSize" type="System.Boolean, mscorlib"> <data name="radioKey2A.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="radioKey2A.Location" type="System.Drawing.Point, System.Drawing"> <data name="radioKey2A.Location" type="System.Drawing.Point, System.Drawing">
<value>218, 53</value> <value>66, 23</value>
</data> </data>
<data name="radioKey2A.Size" type="System.Drawing.Size, System.Drawing"> <data name="radioKey2A.Size" type="System.Drawing.Size, System.Drawing">
<value>71, 24</value> <value>71, 24</value>
@ -474,23 +544,29 @@
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;radioKey2A.Parent" xml:space="preserve"> <data name="&gt;&gt;radioKey2A.Parent" xml:space="preserve">
<value>groupBox2</value> <value>tableLayoutPanel2</value>
</data> </data>
<data name="&gt;&gt;radioKey2A.ZOrder" xml:space="preserve"> <data name="&gt;&gt;radioKey2A.ZOrder" xml:space="preserve">
<value>2</value> <value>1</value>
</data> </data>
<data name="label5.AutoSize" type="System.Boolean, mscorlib"> <data name="label5.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </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"> <data name="label5.Location" type="System.Drawing.Point, System.Drawing">
<value>213, 28</value> <value>66, 0</value>
</data> </data>
<data name="label5.Size" type="System.Drawing.Size, System.Drawing"> <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 20</value> <value>71, 20</value>
</data> </data>
<data name="label5.TabIndex" type="System.Int32, mscorlib"> <data name="label5.TabIndex" type="System.Int32, mscorlib">
<value>13</value> <value>13</value>
</data> </data>
<data name="label5.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;label5.Name" xml:space="preserve"> <data name="&gt;&gt;label5.Name" xml:space="preserve">
<value>label5</value> <value>label5</value>
</data> </data>
@ -498,7 +574,7 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;label5.Parent" xml:space="preserve"> <data name="&gt;&gt;label5.Parent" xml:space="preserve">
<value>groupBox2</value> <value>tableLayoutPanel2</value>
</data> </data>
<data name="&gt;&gt;label5.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
<value>3</value> <value>3</value>
@ -506,8 +582,11 @@
<data name="label6.AutoSize" type="System.Boolean, mscorlib"> <data name="label6.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </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"> <data name="label6.Location" type="System.Drawing.Point, System.Drawing">
<value>148, 28</value> <value>3, 0</value>
</data> </data>
<data name="label6.Size" type="System.Drawing.Size, System.Drawing"> <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
<value>57, 20</value> <value>57, 20</value>
@ -515,6 +594,9 @@
<data name="label6.TabIndex" type="System.Int32, mscorlib"> <data name="label6.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
</data> </data>
<data name="label6.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;label6.Name" xml:space="preserve"> <data name="&gt;&gt;label6.Name" xml:space="preserve">
<value>label6</value> <value>label6</value>
</data> </data>
@ -522,61 +604,40 @@
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;label6.Parent" xml:space="preserve"> <data name="&gt;&gt;label6.Parent" xml:space="preserve">
<value>groupBox2</value> <value>tableLayoutPanel2</value>
</data> </data>
<data name="&gt;&gt;label6.ZOrder" xml:space="preserve"> <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
<value>4</value> <value>2</value>
</data> </data>
<data name="checkBoxColOnly.AutoSize" type="System.Boolean, mscorlib"> <data name="groupBox2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="checkBoxColOnly.Location" type="System.Drawing.Point, System.Drawing"> <data name="groupBox2.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>8, 32</value> <value>GrowAndShrink</value>
</data> </data>
<data name="checkBoxColOnly.Size" type="System.Drawing.Size, System.Drawing"> <data name="&gt;&gt;tableLayoutPanel4.Name" xml:space="preserve">
<value>131, 24</value> <value>tableLayoutPanel4</value>
</data> </data>
<data name="checkBoxColOnly.TabIndex" type="System.Int32, mscorlib"> <data name="&gt;&gt;tableLayoutPanel4.Type" xml:space="preserve">
<value>17</value> <value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;checkBoxColOnly.Name" xml:space="preserve"> <data name="&gt;&gt;tableLayoutPanel4.Parent" xml:space="preserve">
<value>checkBoxColOnly</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;checkBoxColOnly.Parent" xml:space="preserve">
<value>groupBox2</value> <value>groupBox2</value>
</data> </data>
<data name="&gt;&gt;checkBoxColOnly.ZOrder" xml:space="preserve"> <data name="&gt;&gt;tableLayoutPanel4.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="sector2.Location" type="System.Drawing.Point, System.Drawing"> <data name="tableLayoutPanel4.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>152, 52</value> <value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="tableLayoutPanel2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="checkBoxColOnly" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,Absolute,20" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data> </data>
<data name="sector2.Size" type="System.Drawing.Size, System.Drawing"> <data name="groupBox2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>52, 26</value> <value>Fill</value>
</data>
<data name="sector2.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="&gt;&gt;sector2.Name" xml:space="preserve">
<value>sector2</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;sector2.Parent" xml:space="preserve">
<value>groupBox2</value>
</data>
<data name="&gt;&gt;sector2.ZOrder" xml:space="preserve">
<value>5</value>
</data> </data>
<data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing"> <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 132</value> <value>3, 86</value>
</data> </data>
<data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing"> <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>417, 108</value> <value>438, 83</value>
</data> </data>
<data name="groupBox2.TabIndex" type="System.Int32, mscorlib"> <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
<value>16</value> <value>16</value>
@ -588,14 +649,266 @@
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;groupBox2.Parent" xml:space="preserve"> <data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
<value>$this</value> <value>tableLayoutPanel3</value>
</data> </data>
<data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve"> <data name="&gt;&gt;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="&gt;&gt;checkBoxColOnly.Name" xml:space="preserve">
<value>checkBoxColOnly</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;checkBoxColOnly.Parent" xml:space="preserve">
<value>tableLayoutPanel4</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;sector2.Name" xml:space="preserve">
<value>sector2</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;sector2.Parent" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel2.Name" xml:space="preserve">
<value>tableLayoutPanel2</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel2.Parent" xml:space="preserve">
<value>tableLayoutPanel4</value>
</data>
<data name="&gt;&gt;tableLayoutPanel2.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="tableLayoutPanel2.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="radioKey2B" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="radioKey2A" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="label6" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="label5" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="sector2" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</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="&gt;&gt;tableLayoutPanel5.Name" xml:space="preserve">
<value>tableLayoutPanel5</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel5.Parent" xml:space="preserve">
<value>flowLayoutPanel1</value>
</data>
<data name="&gt;&gt;tableLayoutPanel5.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tableLayoutPanel5.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="button2" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="button1" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,50,Percent,50" /&gt;&lt;Rows Styles="Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</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="&gt;&gt;flowLayoutPanel1.Name" xml:space="preserve">
<value>flowLayoutPanel1</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;flowLayoutPanel1.Parent" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel3.Name" xml:space="preserve">
<value>tableLayoutPanel3</value>
</data>
<data name="&gt;&gt;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="&gt;&gt;tableLayoutPanel3.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tableLayoutPanel3.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tableLayoutPanel3.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="groupBox1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="flowLayoutPanel1" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="groupBox2" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="AutoSize,0" /&gt;&lt;Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0" /&gt;&lt;/TableLayoutSettings&gt;</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"> <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>9, 20</value> <value>9, 20</value>
</data> </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"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>444, 298</value> <value>444, 298</value>
</data> </data>

View File

@ -118,22 +118,23 @@
<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"> <data name="button1.Text" xml:space="preserve">
<value>Исполнение!</value> <value>Начать!</value>
</data> </data>
<data name="button2.Text" xml:space="preserve"> <data name="button2.Text" xml:space="preserve">
<value>Отмена</value> <value>Отмена</value>
</data> </data>
<data name="checkBoxColOnly.Text" xml:space="preserve"> <data name="checkBoxColOnly.Text" xml:space="preserve">
<value>Только сбор не рассчитывается</value> <value>Только сбор
не засчитывается</value>
</data> </data>
<data name="$this.Text" xml:space="preserve"> <data name="$this.Text" xml:space="preserve">
<value>Инициализировать HardNested расшифровку</value> <value>Расшифровка HardNested</value>
</data> </data>
<data name="groupBox1.Text" xml:space="preserve"> <data name="groupBox1.Text" xml:space="preserve">
<value>Целевая карта - известная информация</value> <value>Известная информция о карте</value>
</data> </data>
<data name="groupBox2.Text" xml:space="preserve"> <data name="groupBox2.Text" xml:space="preserve">
<value>Настройки расшифровки целевого сектора</value> <value>Настройка расшифровки сектора</value>
</data> </data>
<data name="keyEdit.Lines[0]" xml:space="preserve"> <data name="keyEdit.Lines[0]" xml:space="preserve">
<value>FFFFFFFFFFFF</value> <value>FFFFFFFFFFFF</value>
@ -142,7 +143,8 @@
<value>FFFFFFFFFFFF</value> <value>FFFFFFFFFFFF</value>
</data> </data>
<data name="label1.Text" xml:space="preserve"> <data name="label1.Text" xml:space="preserve">
<value>Обратите внимание на теплоотдачу устройства при непрерывной работе!</value> <value>Обратите внимание на устройство
при непрерывной работе!</value>
</data> </data>
<data name="label2.Text" xml:space="preserve"> <data name="label2.Text" xml:space="preserve">
<value>Известный ключ</value> <value>Известный ключ</value>
@ -151,24 +153,24 @@
<value>Номер сектора</value> <value>Номер сектора</value>
</data> </data>
<data name="label4.Text" xml:space="preserve"> <data name="label4.Text" xml:space="preserve">
<value>тип</value> <value>Тип ключа</value>
</data> </data>
<data name="label5.Text" xml:space="preserve"> <data name="label5.Text" xml:space="preserve">
<value>тип</value> <value>Тип ключа</value>
</data> </data>
<data name="label6.Text" xml:space="preserve"> <data name="label6.Text" xml:space="preserve">
<value>Номер сектора</value> <value>Номер сектора</value>
</data> </data>
<data name="radioKey1A.Text" xml:space="preserve"> <data name="radioKey1A.Text" xml:space="preserve">
<value>KEYA</value> <value>Ключ A</value>
</data> </data>
<data name="radioKey1B.Text" xml:space="preserve"> <data name="radioKey1B.Text" xml:space="preserve">
<value>KEYB</value> <value>Ключ B</value>
</data> </data>
<data name="radioKey2A.Text" xml:space="preserve"> <data name="radioKey2A.Text" xml:space="preserve">
<value>KEYA</value> <value>Ключ A</value>
</data> </data>
<data name="radioKey2B.Text" xml:space="preserve"> <data name="radioKey2B.Text" xml:space="preserve">
<value>KEYB</value> <value>Ключ B</value>
</data> </data>
</root> </root>

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
@ -22,8 +23,8 @@ namespace MifareOneTool
{ {
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true; ofd.CheckFileExists = true;
ofd.Filter = "MFD文件|*.mfd|DUMP文件|*.dump"; ofd.Filter = Resources.MFD文件_mfd_DUMP文件_dump;
ofd.Title = "请选择最后一次写卡导致0块损坏的卡数据文件"; ofd.Title = Resources.0;
ofd.Multiselect = false; ofd.Multiselect = false;
if (ofd.ShowDialog() == DialogResult.OK) if (ofd.ShowDialog() == DialogResult.OK)
{ {
@ -66,7 +67,7 @@ namespace MifareOneTool
private void buttonWriteEmpty_Click(object sender, EventArgs e) private void buttonWriteEmpty_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., 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();
@ -101,17 +102,17 @@ namespace MifareOneTool
process.BeginErrorReadLine(); process.BeginErrorReadLine();
process.WaitForExit(); process.WaitForExit();
lprocess = false; lprocess = false;
b.ReportProgress(100, "##运行完毕##"); b.ReportProgress(100, Resources._运行完毕);
} }
private void buttonKeyWrite_Click(object sender, EventArgs e) private void buttonKeyWrite_Click(object sender, EventArgs e)
{ {
if (lprocess) { MessageBox.Show("有任务运行中,不可执行。", "设备忙", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (lprocess) { MessageBox.Show(Resources._不可执行, Resources., 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("您没有给定最后一次写卡导致0块损坏的卡数据文件来作为写卡时的密钥源。\n操作终止。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.0, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
} }
BackgroundWorker bgw = new BackgroundWorker(); BackgroundWorker bgw = new BackgroundWorker();
@ -125,7 +126,7 @@ namespace MifareOneTool
{ {
if (!File.Exists("nfc-bin/mff08.exe")) if (!File.Exists("nfc-bin/mff08.exe"))
{ {
MessageBox.Show("无法找到MFF08程序文件。\n操作终止。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.MFF08程序文件_操作终止, Resources., MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }
} }

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -13,7 +14,7 @@ namespace MifareOneTool
class GitHubUpdate class GitHubUpdate
{ {
public Version localVersion; public Version localVersion;
public string remoteVersion="未知"; public string remoteVersion=Resources.;
public void Update(string GitHubR) public void Update(string GitHubR)
{ {
try try

View File

@ -35,7 +35,7 @@
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath> <OutputPath>..\..\Сборки\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
@ -104,12 +104,6 @@
<Compile Include="GitHubUpdate.cs" /> <Compile Include="GitHubUpdate.cs" />
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SelectLanguage.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SelectLanguage.designer.cs">
<DependentUpon>SelectLanguage.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="Form1.resx"> <EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
@ -156,19 +150,20 @@
<DependentUpon>FormMFF08.cs</DependentUpon> <DependentUpon>FormMFF08.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx"> <EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator> <Generator>PublicResXFileCodeGenerator</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="SelectLanguage.resx"> <EmbeddedResource Include="Properties\Resources.ru.resx">
<DependentUpon>SelectLanguage.cs</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="SelectLanguage.zh.resx"> <EmbeddedResource Include="Properties\Resources.zh.resx">
<DependentUpon>SelectLanguage.cs</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<None Include="app.config" /> <None Include="app.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
@ -206,6 +201,23 @@
<ItemGroup> <ItemGroup>
<Content Include="MifareOneTool_ml.xml" /> <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.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
using System; using MifareOneTool.Properties;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
@ -19,13 +20,6 @@ namespace MifareOneTool
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
//Show the language select dialog
MultiLang.SelectLanguage frmLang = new MultiLang.SelectLanguage() ;
frmLang.LoadSettingsAndShow() ;
frmLang.Dispose() ;
frmLang = null ;
Application.Run(new Form1()); Application.Run(new Form1());
} }
else else
@ -41,7 +35,7 @@ namespace MifareOneTool
} }
else else
{ {
if (MessageBox.Show("您已经运行了MifareOne Tool打开多个本程序可能会造成冲突及不可预料到的错误。\n确认要继续吗", "您正在试图重复运行", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) if (MessageBox.Show(Resources.MifareOne_Tool_打开多个本程序可能, Resources., MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);

File diff suppressed because it is too large Load Diff

View File

@ -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.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.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,6 +60,7 @@
: 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">
@ -68,9 +69,10 @@
<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" type="xsd:string" /> <xsd:attribute name="name" use="required" 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">
@ -85,9 +87,10 @@
<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" msdata:Ordinal="1" /> <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="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">
@ -109,9 +112,494 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.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="_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>

View File

@ -0,0 +1,556 @@
<?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>

View File

@ -0,0 +1,565 @@
<?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>

View File

@ -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", "10.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.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,5 +175,17 @@ 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;
}
}
} }
} }

View File

@ -41,5 +41,8 @@
<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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

View File

@ -28,7 +28,6 @@ namespace MultiLang
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SelectLanguage));
this.rbSelected = new System.Windows.Forms.RadioButton(); this.rbSelected = new System.Windows.Forms.RadioButton();
this.rbShow = new System.Windows.Forms.RadioButton(); this.rbShow = new System.Windows.Forms.RadioButton();
this.lblStartup = new System.Windows.Forms.Label(); this.lblStartup = new System.Windows.Forms.Label();
@ -41,61 +40,108 @@ namespace MultiLang
// //
// rbSelected // rbSelected
// //
resources.ApplyResources(this.rbSelected, "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.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); this.rbSelected.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged);
// //
// rbShow // rbShow
// //
resources.ApplyResources(this.rbShow, "rbShow"); this.rbShow.AccessibleDescription = "";
this.rbShow.AccessibleName = "";
this.rbShow.Checked = true; 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.Name = "rbShow";
this.rbShow.Size = new System.Drawing.Size(209, 20);
this.rbShow.TabIndex = 1;
this.rbShow.TabStop = true; this.rbShow.TabStop = true;
this.rbShow.Text = "Show this form again";
this.rbShow.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged); this.rbShow.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged);
// //
// lblStartup // lblStartup
// //
resources.ApplyResources(this.lblStartup, "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.Name = "lblStartup";
this.lblStartup.Size = new System.Drawing.Size(209, 17);
this.lblStartup.TabIndex = 0;
this.lblStartup.Text = "Next time ...";
// //
// rbDefault // rbDefault
// //
resources.ApplyResources(this.rbDefault, "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.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); this.rbDefault.CheckedChanged += new System.EventHandler(this.OnStartup_CheckedChanged);
// //
// lstCultures // lstCultures
// //
resources.ApplyResources(this.lstCultures, "lstCultures"); this.lstCultures.AccessibleDescription = "";
this.lstCultures.AccessibleName = "";
this.lstCultures.DisplayMember = "NativeName"; 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.Name = "lstCultures";
this.lstCultures.Size = new System.Drawing.Size(264, 220);
this.lstCultures.TabIndex = 7;
this.lstCultures.DoubleClick += new System.EventHandler(this.btOK_Click); this.lstCultures.DoubleClick += new System.EventHandler(this.btOK_Click);
// //
// btOK // btOK
// //
resources.ApplyResources(this.btOK, "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.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); this.btOK.Click += new System.EventHandler(this.btOK_Click);
// //
// Panel1 // Panel1
// //
resources.ApplyResources(this.Panel1, "Panel1"); this.Panel1.AccessibleDescription = "";
this.Panel1.AccessibleName = "";
this.Panel1.BackColor = System.Drawing.SystemColors.Control; this.Panel1.BackColor = System.Drawing.SystemColors.Control;
this.Panel1.Controls.Add(this.rbDefault); this.Panel1.Controls.Add(this.rbDefault);
this.Panel1.Controls.Add(this.rbSelected); this.Panel1.Controls.Add(this.rbSelected);
this.Panel1.Controls.Add(this.rbShow); this.Panel1.Controls.Add(this.rbShow);
this.Panel1.Controls.Add(this.lblStartup); this.Panel1.Controls.Add(this.lblStartup);
this.Panel1.Location = new System.Drawing.Point(4, 228);
this.Panel1.Name = "Panel1"; this.Panel1.Name = "Panel1";
this.Panel1.Size = new System.Drawing.Size(264, 84);
this.Panel1.TabIndex = 9;
// //
// SelectLanguage // SelectLanguage
// //
resources.ApplyResources(this, "$this"); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(272, 352);
this.Controls.Add(this.lstCultures); this.Controls.Add(this.lstCultures);
this.Controls.Add(this.btOK); this.Controls.Add(this.btOK);
this.Controls.Add(this.Panel1); this.Controls.Add(this.Panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "SelectLanguage"; this.Name = "SelectLanguage";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "SelectLanguage";
this.Load += new System.EventHandler(this.SelectLanguage_Load); this.Load += new System.EventHandler(this.SelectLanguage_Load);
this.Panel1.ResumeLayout(false); this.Panel1.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);

View File

@ -117,289 +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="btOK.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="lblStartup.Text" xml:space="preserve">
<value>Next time ...</value>
</data>
<data name="rbDefault.Text" xml:space="preserve">
<value>Use the default language</value>
</data>
<data name="rbSelected.Text" xml:space="preserve">
<value>Use the selected language</value>
</data>
<data name="rbShow.Text" xml:space="preserve">
<value>Show this form again</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>SelectLanguage</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="rbSelected.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="rbSelected.AccessibleName" xml:space="preserve">
<value />
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="rbSelected.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>System</value>
</data>
<data name="rbSelected.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="rbSelected.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 62</value>
</data>
<data name="rbSelected.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="rbSelected.Size" type="System.Drawing.Size, System.Drawing">
<value>314, 31</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="rbSelected.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;rbSelected.Name" xml:space="preserve">
<value>rbSelected</value>
</data>
<data name="&gt;&gt;rbSelected.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="&gt;&gt;rbSelected.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;rbSelected.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="rbShow.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="rbShow.AccessibleName" xml:space="preserve">
<value />
</data>
<data name="rbShow.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>System</value>
</data>
<data name="rbShow.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="rbShow.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 31</value>
</data>
<data name="rbShow.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="rbShow.Size" type="System.Drawing.Size, System.Drawing">
<value>314, 31</value>
</data>
<data name="rbShow.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;rbShow.Name" xml:space="preserve">
<value>rbShow</value>
</data>
<data name="&gt;&gt;rbShow.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="&gt;&gt;rbShow.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;rbShow.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="lblStartup.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="lblStartup.AccessibleName" xml:space="preserve">
<value />
</data>
<data name="lblStartup.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblStartup.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 5</value>
</data>
<data name="lblStartup.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="lblStartup.Size" type="System.Drawing.Size, System.Drawing">
<value>314, 26</value>
</data>
<data name="lblStartup.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;lblStartup.Name" xml:space="preserve">
<value>lblStartup</value>
</data>
<data name="&gt;&gt;lblStartup.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="&gt;&gt;lblStartup.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;lblStartup.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="rbDefault.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="rbDefault.AccessibleName" xml:space="preserve">
<value />
</data>
<data name="rbDefault.FlatStyle" type="System.Windows.Forms.FlatStyle, System.Windows.Forms">
<value>System</value>
</data>
<data name="rbDefault.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="rbDefault.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 92</value>
</data>
<data name="rbDefault.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="rbDefault.Size" type="System.Drawing.Size, System.Drawing">
<value>314, 31</value>
</data>
<data name="rbDefault.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;rbDefault.Name" xml:space="preserve">
<value>rbDefault</value>
</data>
<data name="&gt;&gt;rbDefault.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="&gt;&gt;rbDefault.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;rbDefault.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="lstCultures.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="lstCultures.AccessibleName" xml:space="preserve">
<value />
</data>
<data name="lstCultures.Font" type="System.Drawing.Font, System.Drawing">
<value>Arial, 9.75pt</value>
</data>
<data name="lstCultures.IntegralHeight" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="lstCultures.ItemHeight" type="System.Int32, mscorlib">
<value>23</value>
</data>
<data name="lstCultures.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 6</value>
</data>
<data name="lstCultures.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="lstCultures.Size" type="System.Drawing.Size, System.Drawing">
<value>394, 336</value>
</data>
<data name="lstCultures.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="&gt;&gt;lstCultures.Name" xml:space="preserve">
<value>lstCultures</value>
</data>
<data name="&gt;&gt;lstCultures.Type" xml:space="preserve">
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lstCultures.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lstCultures.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btOK.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="btOK.AccessibleName" xml:space="preserve">
<value />
</data>
<data name="btOK.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="btOK.Location" type="System.Drawing.Point, System.Drawing">
<value>270, 486</value>
</data>
<data name="btOK.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="btOK.Size" type="System.Drawing.Size, System.Drawing">
<value>135, 49</value>
</data>
<data name="btOK.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;btOK.Name" xml:space="preserve">
<value>btOK</value>
</data>
<data name="&gt;&gt;btOK.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="&gt;&gt;btOK.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;btOK.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="Panel1.AccessibleDescription" xml:space="preserve">
<value />
</data>
<data name="Panel1.AccessibleName" xml:space="preserve">
<value />
</data>
<data name="Panel1.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 351</value>
</data>
<data name="Panel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
<value>396, 129</value>
</data>
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;Panel1.Name" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;Panel1.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Panel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;Panel1.ZOrder" xml:space="preserve">
<value>2</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>408, 542</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 5, 4, 5</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>SelectLanguage</value>
</data>
<data name="&gt;&gt;$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>

View File

@ -1,138 +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="btOK.Text" xml:space="preserve">
<value>OK</value>
</data>
<data name="lblStartup.Text" xml:space="preserve">
<value>Next time ...</value>
</data>
<data name="rbDefault.Text" xml:space="preserve">
<value>Use the default language</value>
</data>
<data name="rbSelected.Text" xml:space="preserve">
<value>Use the selected language</value>
</data>
<data name="rbShow.Text" xml:space="preserve">
<value>Show this form again</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>SelectLanguage</value>
</data>
</root>

View File

@ -53,6 +53,9 @@
<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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff