代码下载地址: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 Explicit

Public 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程序的混淆加密相关推荐

  1. 百度智能云 x 天脉聚源 | 广电的夏天 如何老歌新唱?

    2019年,广电仍在寻找新的发展机遇. 这个夏天,传统电视媒体依旧面临收视率下滑.广告资源减少.营收下降等棘手问题.无论是产业趋势,还是国家战略,都在倒逼着电视的创新和变革,未到边际,但岌岌可危. 天 ...

  2. python开发小程序拼团_微信小程序新功能,正合适开发拼团类小程序|明智科技...

    1.分享 微信小程序的任何一个页面都可以增加分享功能,用户可以把小程序便捷的分享给通讯录的好友和微信群.但不能分享到朋友圈. 也可以进一步理解为小程序开发者可以创造一种诱导用户分享给好友和微信群的应用 ...

  3. 《Right Here Waiting》新唱,笑笑吧!老兄!

    今天刚看了荣耀先生(optimizer)专栏里他翻译的那首<King of the Code>的歌词. http://www.csdn.net/Develop/read_article.a ...

  4. 不怕新歌有多嗨,就怕老歌带DJ,Python批量对DJ歌曲进行下载

    絮絮叨叨 俗话说,不怕新歌有多嗨,就怕老歌带dj,为了验证这句话,于是我直接找了个dj网,用Python把dj都下载下来,亲身体验一下! 环境模块 软件 Python3.8 pycharm2021 没 ...

  5. 老歌回顾之射雕英雄传

    老歌回顾之射雕英雄传 From http://www.ccqtv.com/20030117/26481.shtml 某天,我一夜无眠,勉强写了篇"射雕歌曲"的小文,很多朋友看了后, ...

  6. 微信小程序之网易云音乐(三)- 主页面底部导航、轮播图、歌单及歌曲模块开发

    微信小程序之网易云音乐(三)- 主页面底部导航.轮播图.歌单及歌曲模块开发 前言 一. 主页面底部导航 二. 轮播图区域 三. 歌单区域 四. 歌曲区域 微信小程序之网易云音乐导航 前言 创建一个新模 ...

  7. 计算机音乐谱水手,Aloha Heja He简谱-Achim Reichel-抖音神曲,一首德国水手老歌再次燃爆整个少年青春...

    Aloha Heja He (加油加油) - Achim Reichel Hab' die ganze Welt geseh'n 我曾看过整个世界 Von Singapur bis Aberdeen ...

  8. 英文经典老歌翻译与鉴赏:Hotel California(加州旅馆)

    英文经典老歌翻译与鉴赏:Hotel California(加州旅馆) 很喜欢的一首歌词,推荐给大家(中英文对照) 所翻译的内容借鉴了很多前辈高人的成果,非本人独立翻译的结果,特此申明,呵呵. [@mo ...

  9. 裂变营销引爆用户增长:拼多多式的老带新活动

    ​ 老带新,也称MGM(Members Get Members)是指APP内的老用户邀请好友注册下载APP,好友完成相关任务后,老用户即可领取相关邀请礼,好友也可得受邀礼. 在这里,我们一般将老用户称 ...

最新文章

  1. 创立创造创建的区别_【干货|知识分享】Solidworks与Rhino有什么区别呢?
  2. java Executor实例_Executor框架+实例
  3. 01. elasticsearch certification 练习题
  4. JavaSE 7,8:确定特定文件系统支持的视图
  5. java tm无响应_Java(TM) Platform SE binary 未响应 是怎么个情况?
  6. 交流充电桩电路图_直流充电桩和交流充电桩给电动汽车充电过程中是如何工作的?...
  7. javascript 模仿点击链接
  8. python用xlrd怎么清洗数据_利用Python进行数据清洗
  9. Java之品优购课程讲义_day05(8)
  10. 系统技巧之如何巧妙的整理磁盘碎片
  11. Atitit node.js问题解决总结t99 目录 1.1. 找不到node程序 1 1.2. GBK编码问题 1 2. 按行读取gbk编码问题 2 2.1. 先写入txt utf8 encode
  12. C# WinForm技巧“将Form嵌入到Panel”
  13. 三大变换与自控(七)拉普拉斯变换
  14. 2021华硕秋季新品发布会:每一幕,都精彩
  15. 云南高中信息技术测试软件,(整理)云南省高中信息技术学业水平考试各种操作....
  16. imagenet2012 label
  17. php获取后缀的文件名,php获取文件名及其后缀方法一览
  18. 安卓手机管理_安卓手机会越用越卡?关闭这几个功能,还可以用三年
  19. CentOS 7 关闭 swap 分区
  20. 安装纯净版win10系统

热门文章

  1. 每日英语:Five Really Dumb Money Moves You've Got to Avoid
  2. 越来越觉得现在的工作很枯燥
  3. LeetCode—211. 添加与搜索单词 - 数据结构设计
  4. java反射 获取方法_java反射之获取类的信息方法(推荐)
  5. VSCode从下载到配置Ubuntu系统
  6. 全国计算机等级考试题库二级C操作题100套(第36套)
  7. python日志配置文件解释_python 之 logger日志 字典配置文件
  8. java 独占锁_锁分类(独占锁、分拆锁、分离锁、分布式锁)
  9. 数据加密辅助类(默认编码UTF-8)
  10. String、StringBuuffer、StringBuilder三者的区别