Zi 字媒體
2017-07-25T20:27:27+00:00
C# 防止密碼偵測(竊取/偷窺/透視)工具[spy++]的TextBox元件『myPassBox』(CS_Protect_the_Password_inside_a_TextBox)
資料來源:https://dotblogs.com.tw/ricochen/2009/12/16/12485
https://codingvision.net/security/c-protect-the-password-inside-a-textbox
微軟工具:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\spyxx.exe
外部工具:xkvp_4.5.20090205_azo
實際運用截圖
GITHUB:https://github.com/jash-git/CS_Protect_the_Password_inside_a_TextBox
code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class myPassBox : TextBox
{
// the malicious message, that needs to be handled
private const int WM_GETTEXT = 0x000D;
// 'true' if the messages are sent from our program (from Text property)
// 'false' if they're sent by anything else
bool allowAccess { get; set; }
public override string Text // overriding Text property
{
get
{
allowAccess = true; // allow WM_GETTEXT (because it's an internal call)
return base.Text; //this sends the message above in order to retrieve the TextBox's value
}
set
{
base.Text = value;
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_GETTEXT) // if the message is WM_GETTEXT
{
if (allowAccess) // and it comes from the Text property
{
allowAccess = false; //we temporarily remove the access
base.WndProc(ref m); //and finally, process the message
}
}
else
base.WndProc(ref m);
}
}
}
寫了
5860316篇文章,獲得
23313次喜歡