老歌新唱--使用VB6开发的ActiveX实现.NET程序的混淆加密
生活随笔
收集整理的這篇文章主要介紹了
老歌新唱--使用VB6开发的ActiveX实现.NET程序的混淆加密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼下載地址:http://files.cnblogs.com/wuhuacong/VBActiveX.rar
由于存在一下幾種特點:
1、.NET程序反編譯容易,而使用一些混淆工具會導致有些程序不能運行
2、VB6開發ActiveX控件,那叫一個快,VB代碼也不是很容易被反編譯。
3、結合兩者的特點,如果在.NET中使用了封裝一些關鍵代碼的ActiveX控件,那么程序的安全性是否好一點呢?
對于這種做法,請大家拍磚討論,本人提供一個如何實現這種做法的思路。
一、 編寫一個封裝關鍵字符串或者實現邏輯的ActiveX控件
???1、首先使用VB6創建一個ActiveX的工程項目
2、設置VB ActiveX的工程屬性
??
3、編寫類模塊函數
Option?ExplicitPublic?Function?GetString()?As?String
????GetString?=?"ABCDEFG"
End?Function
Public?Function?ValidateString(ByVal?str?As?String)?As?Boolean
????ValidateString?=?False
????
????If?str?=?"ABCD"?Then
????????ValidateString?=?True
????Else
????????Err.Raise?Err.Number,?,?"不正確"
????End?If
End?Function
Public?Function?GetDateTime()?As?Date
????GetDateTime?=?Now
????
End?Function
注意:如果使用Err.Raise函數,在調用過程中會拋出一個異常
二、在.NET程序中引用并使用該ActiveX控件
1、創建一個Windows Form程序
2、添加ActiveX控件的引用
3、編寫按鈕事件及ActiveX控件調用代碼
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
namespace?TestMyVBControl
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?btnTest_Click(object?sender,?EventArgs?e)
????????{
????????????MyVBControl.TestClass?test?=?new?MyVBControl.TestClass();
????????????MessageBox.Show(test.GetString());
????????}
????????private?void?btnValidate_Click(object?sender,?EventArgs?e)
????????{
????????????MyVBControl.TestClass?test?=?new?MyVBControl.TestClass();
????????????try
????????????{
????????????????MessageBox.Show(test.ValidateString("ABCD").ToString());//正確
????????????????MessageBox.Show(test.ValidateString("ABCDE").ToString());//有錯誤
????????????}
????????????catch(Exception?ex)
????????????{
????????????????MessageBox.Show(ex.Message);
????????????????return;
????????????}
????????}
????????private?void?btnGetDate_Click(object?sender,?EventArgs?e)
????????{
????????????MyVBControl.TestClass?test?=?new?MyVBControl.TestClass();
????????????MessageBox.Show(test.GetDateTime().ToString());
????????}
????}
}
結束,收工
總結
以上是生活随笔為你收集整理的老歌新唱--使用VB6开发的ActiveX实现.NET程序的混淆加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle实现mysql的if_ora
- 下一篇: 高清人脸数据集—FFHQ