└── SDKDecryption
├── .vs
└── SDKDecryption
│ └── v14
│ └── .suo
├── SDKDecryption.sln
└── SDKDecryption
├── BodyDecryption.cs
├── Decryption.cs
├── DecryptionFormatJson.cs
├── DecryptionViewer.Designer.cs
├── DecryptionViewer.cs
├── DecryptionViewer.resx
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
└── Resources.resx
├── SDKDecryption.csproj
└── SDKDecryption.csproj.user
/SDKDecryption/.vs/SDKDecryption/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/willysys/SDKDecryption/5af5aa2512247294725572bb612597e84c7817e8/SDKDecryption/.vs/SDKDecryption/v14/.suo
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDKDecryption", "SDKDecryption\SDKDecryption.csproj", "{832E3205-6609-4AA5-B41C-F22B87CEE2A0}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {832E3205-6609-4AA5-B41C-F22B87CEE2A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {832E3205-6609-4AA5-B41C-F22B87CEE2A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {832E3205-6609-4AA5-B41C-F22B87CEE2A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {832E3205-6609-4AA5-B41C-F22B87CEE2A0}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/BodyDecryption.cs:
--------------------------------------------------------------------------------
1 | using Fiddler;
2 | using Org.BouncyCastle.Crypto;
3 | using Org.BouncyCastle.Crypto.Encodings;
4 | using Org.BouncyCastle.Crypto.Engines;
5 | using Org.BouncyCastle.OpenSsl;
6 | using System;
7 | using System.Collections.Generic;
8 | using System.IO;
9 | using System.IO.Compression;
10 | using System.Linq;
11 | using System.Reflection;
12 | using System.Resources;
13 | using System.Security.Cryptography;
14 | using System.Text;
15 | using System.Threading.Tasks;
16 |
17 | namespace SDKDecryption
18 | {
19 | class BodyDecryption
20 | {
21 | private static string iv = "";
22 |
23 | public static string decryptSDKBody(String skey,String bodyContent)
24 | {
25 | string result;
26 | //将url_safe_base64编码的数据转换为base64编码的RSA加密的AES密钥
27 | String skey_base64 = url_safe_base64_decode(skey);
28 | //将RSA加密的skey进行解密,得到AES私钥
29 | byte[] aes_key = RSADecryptionWithXMLKey(skey_base64);
30 | String Result = Convert.ToBase64String(aes_key);
31 | result = AESDecryption(bodyContent, Result, iv);
32 | return result;
33 | }
34 |
35 | public static string decryptSDKBody(string skey,byte[] bodyContent)
36 | {
37 | string result;
38 | //将url_safe_base64编码的数据转换为base64编码的RSA加密的AES密钥
39 | String skey_base64 = url_safe_base64_decode(skey);
40 | //将RSA加密的skey进行解密,得到AES私钥
41 | byte[] aes_key = RSADecryptionWithXMLKey(skey_base64);
42 | String Result = Convert.ToBase64String(aes_key);
43 | result = AESDecryption(bodyContent, Result, iv);
44 | return result;
45 | }
46 |
47 |
48 | public static byte[] RSADecryptionWithXMLKey(string decryptString)
49 | {
50 | Assembly assm = Assembly.GetExecutingAssembly();
51 | Stream istr = assm.GetManifestResourceStream("SDKDecryption.Resources.PrivateKey.xml");
52 | StreamReader sr = new StreamReader(istr, Encoding.Default);
53 | StringBuilder buffer = new StringBuilder();
54 | string strline;
55 | while ((strline = sr.ReadLine()) != null)
56 | {
57 | buffer.Append(strline);
58 | }
59 | String xmlPrivateKey = (buffer.ToString());
60 | System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
61 | rsa.FromXmlString(xmlPrivateKey);
62 | byte[] PlainTextBArray = Convert.FromBase64String(decryptString);
63 | byte[] DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
64 | String Result = Convert.ToBase64String(DypherTextBArray);
65 | return DypherTextBArray;
66 | }
67 |
68 | //AES解密
69 | //解密内容是字符串
70 | public static string AESDecryption(byte[] text, string AesKey, string AesIV)
71 | {
72 | try
73 | {
74 |
75 | //判断是否是16位 如果不够补0
76 | //16进制数据转换成byte
77 | byte[] encryptedData = text;
78 | RijndaelManaged rijndaelCipher = new RijndaelManaged();
79 | rijndaelCipher.Key = Convert.FromBase64String(AesKey);
80 | rijndaelCipher.IV = Encoding.ASCII.GetBytes(AesIV);
81 | rijndaelCipher.Mode = CipherMode.CBC;
82 | rijndaelCipher.Padding = PaddingMode.None;
83 | ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
84 | byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
85 | byte[] contentText = Decompress(plainText);
86 | string result = Encoding.UTF8.GetString(contentText);
87 | if (result == null)
88 | {
89 | FiddlerApplication.Log.LogString("aes decryption result is null");
90 | }
91 | return result;
92 | }
93 | catch (Exception ex)
94 | {
95 | FiddlerApplication.Log.LogString(ex.ToString());
96 | return null;
97 | }
98 | }
99 |
100 |
101 | //AES解密
102 | public static string AESDecryption(string text, string AesKey, string AesIV)
103 | {
104 | try
105 | {
106 |
107 | //判断是否是16位 如果不够补0
108 | //text = tests(text);
109 | //16进制数据转换成byte
110 | byte[] encryptedData = Convert.FromBase64String(text); // strToToHexByte(text);
111 | Console.WriteLine(encryptedData.Length + "");
112 | RijndaelManaged rijndaelCipher = new RijndaelManaged();
113 | rijndaelCipher.Key = Convert.FromBase64String(AesKey); // Encoding.UTF8.GetBytes(AesKey);
114 | rijndaelCipher.IV = Encoding.ASCII.GetBytes(AesIV);
115 | rijndaelCipher.Mode = CipherMode.CBC;
116 | rijndaelCipher.Padding = PaddingMode.None;
117 | ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
118 | byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
119 | byte[] contentText = Decompress(plainText);
120 | string result = Encoding.UTF8.GetString(contentText);
121 | FiddlerApplication.Log.LogString(result);
122 | return result;
123 | }
124 | catch (Exception ex)
125 | {
126 | //Console.WriteLine(ex.ToString());
127 | FiddlerApplication.Log.LogString(ex.ToString());
128 | return null;
129 |
130 | }
131 | }
132 |
133 |
134 | //gzip格式数据解压缩
135 | public static byte[] Decompress(byte[] zippedData)
136 | {
137 | MemoryStream ms = new MemoryStream(zippedData);
138 | GZipStream compressedzipStream = new GZipStream(ms, CompressionMode.Decompress);
139 | MemoryStream outBuffer = new MemoryStream();
140 | byte[] block = new byte[1024];
141 | while (true)
142 | {
143 | int bytesRead = compressedzipStream.Read(block, 0, block.Length);
144 | if (bytesRead <= 0)
145 | break;
146 | else
147 | outBuffer.Write(block, 0, bytesRead);
148 | }
149 | compressedzipStream.Close();
150 | return outBuffer.ToArray();
151 | }
152 |
153 |
154 | //将url_safe_base64编码格式的字符串转换成base64编码格式的url
155 | public static String url_safe_base64_decode(String skey)
156 | {
157 | String decode_skey = skey.Replace("_", "/").Replace("-", "+");
158 | int len = skey.Length % 4;
159 | if (len > 0)
160 | {
161 | skey += "====".Substring(0, 4 - len);
162 | }
163 | return decode_skey;
164 | }
165 | }
166 | }
167 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/Decryption.cs:
--------------------------------------------------------------------------------
1 | using Fiddler;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using Standard;
8 | using System.Windows.Forms;
9 | using System.Text.RegularExpressions;
10 |
11 | namespace SDKDecryption
12 | {
13 | public sealed class Decryption : Inspector2, IRequestInspector2, IBaseInspector2
14 | {
15 |
16 | private DecryptionViewer myControl = new DecryptionViewer();
17 | private bool m_bDirty;
18 | private bool m_bReadOnly;
19 | private byte[] m_entityBody;
20 | private HTTPRequestHeaders m_Headers;
21 | private JSONRequestViewer jsonRequestViewer;
22 |
23 |
24 | public Decryption()
25 | {
26 | this.jsonRequestViewer = new JSONRequestViewer();
27 | }
28 |
29 | public bool bDirty
30 | {
31 | get
32 | {
33 | return this.m_bDirty;
34 | }
35 | }
36 |
37 | public byte[] body
38 | {
39 | get
40 | {
41 | return this.m_entityBody;
42 | }
43 |
44 | set
45 | {
46 | this.m_entityBody = value;
47 | this.DoDecryption();
48 | }
49 | }
50 |
51 |
52 | public void DoDecryption()
53 | {
54 | //如果需要解密
55 | String path = this.m_Headers.RequestPath;
56 | if (this.m_entityBody == null || this.m_entityBody.Length == 0)
57 | {
58 | this.myControl.clearText();
59 | }
60 | else
61 | {
62 | if (path.Contains("skey"))
63 | {
64 | String skey = Regex.Split(path, "skey=")[1];
65 | //此种方式才能将byte[]转换成常见的base64编码的字符串
66 | String base64Body = System.Text.Encoding.Default.GetString(this.m_entityBody);
67 | //此种方式转不了base64编码格式的字符串
68 | String decryptionBody = BodyDecryption.decryptSDKBody(skey, base64Body);
69 | myControl.setText(decryptionBody);
70 | }
71 | else
72 | {
73 | String decodeBody = System.Text.Encoding.Default.GetString(this.m_entityBody);
74 | myControl.setText(decodeBody);
75 | }
76 | }
77 |
78 | }
79 |
80 | public bool bReadOnly
81 | {
82 | get
83 | {
84 | return this.m_bReadOnly;
85 | }
86 |
87 | set
88 | {
89 | this.m_bReadOnly = value;
90 | }
91 | }
92 |
93 | public HTTPRequestHeaders headers
94 | {
95 | get
96 | {
97 | FiddlerApplication.Log.LogString("headers get function.");
98 | return m_Headers;
99 | }
100 | set
101 | {
102 | this.m_Headers = value;
103 |
104 | }
105 |
106 | }
107 |
108 | public override void AddToTab(TabPage o)
109 | {
110 | o.Text = "Decryption";
111 | o.Controls.Add(this.myControl);
112 | o.Controls[0].Dock = DockStyle.Fill;
113 | }
114 |
115 | public void Clear()
116 | {
117 | this.m_entityBody = null;
118 | this.myControl.clearText();
119 | }
120 |
121 |
122 | public override int GetOrder() =>
123 | 100;
124 |
125 |
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/DecryptionFormatJson.cs:
--------------------------------------------------------------------------------
1 | using Fiddler;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using Standard;
9 | using System.Text.RegularExpressions;
10 |
11 | namespace SDKDecryption
12 | {
13 | public class DecryptionFormatJson : Inspector2, IRequestInspector2, IBaseInspector2
14 | {
15 | private bool m_bDirty;
16 | private bool m_bReadOnly;
17 | private byte[] m_entityBody;
18 | private HTTPRequestHeaders m_Headers;
19 | private JSONRequestViewer jsonRequestViewer;
20 |
21 | public DecryptionFormatJson()
22 | {
23 |
24 | }
25 |
26 | public bool bDirty
27 | {
28 | get
29 | {
30 | return this.m_bDirty;
31 | }
32 | }
33 |
34 | public byte[] body
35 | {
36 | get
37 | {
38 | return jsonRequestViewer.body;
39 | }
40 |
41 | set
42 | {
43 | this.m_entityBody = value;
44 | byte[] decodedBody = this.DoDecryption();
45 | if (decodedBody != null)
46 | {
47 | jsonRequestViewer.body = decodedBody;
48 | }
49 | else
50 | {
51 | jsonRequestViewer.body = value;
52 | }
53 | }
54 | }
55 |
56 | public byte[] DoDecryption()
57 | {
58 | //如果需要解密
59 | String path = this.m_Headers.RequestPath;
60 | if (path.Contains("skey"))
61 | {
62 | String skey = Regex.Split(path, "skey=")[1];
63 | //此种方式才能将byte[]转换成常见的base64编码的字符串
64 | String base64Body = System.Text.Encoding.Default.GetString(this.m_entityBody);
65 | //此种方式转不了base64编码格式的字符串
66 | // String bodytext= Convert.ToBase64String(this.m_entityBody);
67 | String decryptionBody = BodyDecryption.decryptSDKBody(skey, base64Body);
68 | byte[] decodeBody = System.Text.Encoding.UTF8.GetBytes(decryptionBody);
69 | return decodeBody;
70 | }
71 | else
72 | {
73 | this.Clear();
74 | return null;
75 | }
76 | }
77 |
78 |
79 | public bool bReadOnly
80 | {
81 | get
82 | {
83 | return this.m_bReadOnly;
84 | }
85 |
86 | set
87 | {
88 | this.m_bReadOnly = value;
89 | jsonRequestViewer.bReadOnly = value;
90 | }
91 | }
92 |
93 | public HTTPRequestHeaders headers
94 | {
95 | get
96 | {
97 | return this.m_Headers;
98 | }
99 |
100 | set
101 | {
102 |
103 | this.m_Headers = value;
104 | jsonRequestViewer.headers = value;
105 | }
106 | }
107 |
108 | public override void AddToTab(TabPage o)
109 | {
110 | jsonRequestViewer = new JSONRequestViewer();
111 | jsonRequestViewer.AddToTab(o);
112 | o.Text = "DecryptionFormatJson";
113 | }
114 |
115 | public void Clear()
116 | {
117 | this.m_entityBody = null;
118 | jsonRequestViewer.Clear();
119 | }
120 |
121 | public override int GetOrder()
122 | {
123 | return jsonRequestViewer.GetOrder();
124 | }
125 |
126 | public override int ScoreForContentType(string sMIMEType)
127 | {
128 | return jsonRequestViewer.ScoreForContentType(sMIMEType);
129 | }
130 |
131 | public override void SetFontSize(float flSizeInPoints)
132 | {
133 | jsonRequestViewer.SetFontSize(flSizeInPoints);
134 | }
135 |
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/DecryptionViewer.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SDKDecryption
2 | {
3 | partial class DecryptionViewer
4 | {
5 | ///
6 | /// 必需的设计器变量。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 清理所有正在使用的资源。
12 | ///
13 | /// 如果应释放托管资源,为 true;否则为 false。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region 组件设计器生成的代码
24 |
25 | ///
26 | /// 设计器支持所需的方法 - 不要修改
27 | /// 使用代码编辑器修改此方法的内容。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.richTextBox1 = new System.Windows.Forms.RichTextBox();
32 | this.SuspendLayout();
33 | //
34 | // richTextBox1
35 | //
36 | this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
37 | this.richTextBox1.Location = new System.Drawing.Point(22, 3);
38 | this.richTextBox1.Name = "richTextBox1";
39 | this.richTextBox1.Size = new System.Drawing.Size(718, 409);
40 | this.richTextBox1.TabIndex = 0;
41 | this.richTextBox1.Text = "";
42 | this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
43 | //
44 | // DecryptionViewer
45 | //
46 | this.Controls.Add(this.richTextBox1);
47 | this.Name = "DecryptionViewer";
48 | this.Size = new System.Drawing.Size(682, 366);
49 | this.ResumeLayout(false);
50 |
51 | }
52 |
53 | #endregion
54 |
55 | private System.Windows.Forms.TreeView treeView1;
56 | private System.Windows.Forms.RichTextBox richTextBox1;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/DecryptionViewer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Drawing;
5 | using System.Data;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace SDKDecryption
12 | {
13 | public partial class DecryptionViewer : UserControl
14 | {
15 | public DecryptionViewer()
16 | {
17 | InitializeComponent();
18 | }
19 |
20 |
21 | private void DecryptionViewer_Load(object sender, EventArgs e)
22 | {
23 |
24 | }
25 |
26 | private void textBox1_TextChanged(object sender, EventArgs e)
27 | {
28 |
29 | }
30 |
31 | public void setText(string content)
32 | {
33 | // this.textBox1.Text = content;
34 | //this.treeView1.
35 | this.richTextBox1.Text = content;
36 | }
37 |
38 | public void clearText()
39 | {
40 | this.richTextBox1.Clear();
41 | }
42 |
43 | private void richTextBox1_TextChanged(object sender, EventArgs e)
44 | {
45 |
46 | }
47 | }
48 |
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/DecryptionViewer.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的一般信息由以下
6 | // 控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("SDKDecryption")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SDKDecryption")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | //将 ComVisible 设置为 false 将使此程序集中的类型
18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | //请将此类型的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("832e3205-6609-4aa5-b41c-f22b87cee2a0")]
24 |
25 | // 程序集的版本信息由下列四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”: :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
38 | //[assembly: Fiddler.RequiredVersion("4.6.20171.26113")]
39 | [assembly: Fiddler.RequiredVersion("4.6.20171.9220")]
40 |
41 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // 此代码由工具生成。
4 | // 运行时版本:4.0.30319.42000
5 | //
6 | // 对此文件的更改可能会导致不正确的行为,并且如果
7 | // 重新生成代码,这些更改将会丢失。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SDKDecryption.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// 一个强类型的资源类,用于查找本地化的字符串等。
17 | ///
18 | // 此类是由 StronglyTypedResourceBuilder
19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21 | // (以 /str 作为命令选项),或重新生成 VS 项目。
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | public class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// 返回此类使用的缓存的 ResourceManager 实例。
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | public static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SDKDecryption.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// 使用此强类型资源类,为所有资源查找
51 | /// 重写当前线程的 CurrentUICulture 属性。
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | public static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// 查找 System.Byte[] 类型的本地化资源。
65 | ///
66 | public static byte[] privatekey {
67 | get {
68 | object obj = ResourceManager.GetObject("privatekey", resourceCulture);
69 | return ((byte[])(obj));
70 | }
71 | }
72 |
73 | ///
74 | /// 查找类似 <RSAKeyValue><Modulus>yapfUQyiOpd0ozaGlBPpEkpN3KD7XLS6LyV48wXoRYnB2yYC6ok9uR05exyyROmY3BDsZXAy4axiLicI0QBpCa/vsnOl3NVUMbiQyqtU+pq/abVKth53oH31y2S2Iv5odf9X/ikeXXjVZDJ44uWqarPz5lmGr9PRxJFT2QqZqas=</Modulus><Exponent>AQAB</Exponent><P>7lq4EvSPMUV0af7HuLnJ6ipeHwUwTlI7l06zcR34mvc0NFwoH0TpjKXRcfF43Irj9i7R9bAe4bPtgRuF5aIuYQ==</P><Q>2JhT7KlleDXDsMqm/4rdK1vgRPUtWXxSMz/3ZNL8P8Ep4wx9zMRMeFMyufITWjCRK/x74sTEltPM7DrgQ85biw==</Q><DP>NodYjzWVwK7kCA+6fz85uzGAINaeC3zylxXxJVK2+jTNo6DlqOmqCHwy4z9b6BB6QGrLq8pj9jykfCHgyv0EYQ==< [字符串的其余部分被截断]"; 的本地化字符串。
75 | ///
76 | public static string PrivateKey1 {
77 | get {
78 | return ResourceManager.GetString("PrivateKey1", resourceCulture);
79 | }
80 | }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 | ..\Resources\privatekey.pem;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
123 |
124 |
125 | ..\Resources\PrivateKey.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312
126 |
127 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/SDKDecryption.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {832E3205-6609-4AA5-B41C-F22B87CEE2A0}
8 | Library
9 | Properties
10 | SDKDecryption
11 | SDKDecryption
12 | v4.5.2
13 | 512
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 |
34 | False
35 | C:\Users\yusheng\Desktop\bccrypto-csharp-1.8.1-bin (1)\BouncyCastle.Crypto.dll
36 |
37 |
38 | ..\..\..\..\Program Files\fiddler\Fiddler4\Fiddler.exe
39 |
40 |
41 | ..\..\..\..\Program Files\fiddler\Fiddler4\Inspectors\Standard.dll
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 | UserControl
60 |
61 |
62 | DecryptionViewer.cs
63 |
64 |
65 |
66 | True
67 | True
68 | Resources.resx
69 |
70 |
71 |
72 |
73 | DecryptionViewer.cs
74 |
75 |
76 | PublicResXFileCodeGenerator
77 | Resources.Designer.cs
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | copy "$(TargetPath)" "D:\Program Files\fiddler\Fiddler4\Inspectors\$(TargetFilename)"
86 |
87 |
94 |
--------------------------------------------------------------------------------
/SDKDecryption/SDKDecryption/SDKDecryption.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Program
5 | D:\Program Files\fiddler\Fiddler4\Fiddler.exe
6 |
7 |
--------------------------------------------------------------------------------