如何用C#为一个应用程序加一个外壳

如何用C#为一个应用程序加一个外壳,第1张

// 1

System.Diagnostics.Process.Start(@"cpp-console.exe", "/1 /2"御败激)// 立即运行镇袜 // 2

System.Diagnostics.Process process = new System.Diagnostics.Process()

process.StartInfo = new System.Diagnostics.ProcessStartInfo(@"cpp-console.exe", "枯腔/1 /2")

process.Start()// 推迟运行 // 假设cpp-console.exec++控制台程序/1 /2参数

(这是我在中学时写的论文的一部分)

=============================================

所有80x86微机( *** 作系统不限)在启动时,开关按钮先向主板发出一个”Power Good!”信号.CPU收到信号后复位.使SS=DS=ES=IP=0000h,而CS=FFFFh使CPU从FFFF:0000h执行指令,这部分内存区域是BIOS的ROM空间.这里固化一条跳转指令.使CPU转到POST自检部分执行程序.用户在屏幕上可以看到BIOS的厂商,版本等信息,还可以看见内存,驱动器等设备的检测过程.检测完毕后,会显示自检结果,如果发现硬件被更换,则屏幕下方会显示”Update ESCD…”之后,执行INT 19h指令,进入初始引导程序.初始引导程序按在CMOS设置芯片中的顺序,在各驱动器中查找主引导记录,若找到,则将它读到0000:7C00h单元开始的区域.至此, *** 作系统启动第一步完成,用时约10秒.我要研究第二步:Windows9x,MS-DOS *** 作系统的装载.

1.装入IO.SYS文件.

我的依培谈据是在用UltraEdit打开IO.sys时,找到了”Starting MSDOS…”字符串,以及七项启动菜单的字符串.

此时,屏幕显示Starting MSDOS7.1…或Starting Windows95…

IO.sys是MSDOS7.10的内核,其中包携拆括一组设备驱动程序,还有一段程序,用来装配中断向量.它是一个很重要的系统文件,不可删除.

2.解释MSDOS.sys

我的依据是在MSDOS.sys文件中,找到了控制启动的设置.如图2:

此时,屏幕显示漂亮的启动画面

3解释config.sys

Config.sys是MSDOS中的配置文件,用于初始化DOS,创建DOS的工作环境. 它是一个文本文件,可以让用户编辑修改.通常用来安装设备驱动程序,例如光驱,鼠标的驱动程序.它可以删除,但删除之后,一些硬件无法使用.

我的依据是在启动时显示在Config.sys中驱动程序的信息,说明正在安装驱动程序到内存.

4.装入Command.com

Command.com是DOS的默认外壳.它是一个命令解释程序,它用来解释用户输入的命令,以及解释以扩展名为BAT的可执行文件.我的依据是在没有Autoexec.bat的时候,显示版本信息. 而版本信息在Command.com中可以找到.

5.装入Autoexec.bat

Autoexec.bat是DOS中的自动批处理文件,在启动时自动运行,使用户使用时,不必每次在开机时进行相同 *** 作,只要将每次在启动时输入的命令添加在Autoexec.bat中,在开机时就会自动执行,大大提高工作效率.

我的依据是在启动时,显示Autoexec.bat的执行结果.

至此,MSDOS7.10启动结束,显示类似C:\>的提示符,Windows9x启动第二步完成.

6.装入Win.com

Win.com是Windows9x的装载器,用来装入Windows的所有设备驱动程序.

7.装入Wininit.exe

Wininit.exe是Windows的一个设备驱动程序,使Windows支持PNP技术.

8.装入Vmm32.vxd

Vmm32.vxd是一个重要文件.vmm32.vxd将CPU的工作模式从实模式改变成保护模式,使计算机可以使用大于1MB的内存.并按System.ini和注册表配置GUI系统,读取其他驱动程序

9.装入Win16 API

Win16API由3个文件构成:User.exe,GDI.exe,KRNL386.exe.它们提供了一组系统功能调用,使Windows能运行16位的应用程序.

至此,Windows启动第3步结束.

10.装入Win32API

Win32API由Vwin323.386程序装入,有3个文件:User32.dll,Kernel32.dll,Gdi32.dll组成,形成系统内核,使Windows能运行32位应用程序.

11.装入Explorer.exe

Explorer.exe是Windows的默认外壳. 装入之后, 显示任务栏和开始菜单.

至此,Windows9x启动过程结束.

在写论文的过程中,我感到计算机的知识复杂,但具有挑战性,需要我们学习.

SS DS ES IP CS:它们是CPU中的寄存器,SS寄存器的值为堆栈段的段基址,辩中枣DS为数据段的段基址,ES为附加段的段基址,IP为指令指针,CS为代码段的段基址.

PNP技术:PNP为Plug And Play的缩写,意为”即插即用”.使硬件的安装大为简化.

实模式,保护模式:它们是80386及以上的80x86系列CPU的工作模式.在实模式下,超过1088K的内存不能直接使

如何使用外 具完成加密 使用外 密工具,开发商可以在没有程序源 或不对程序源 做任何改动的情况下快捷地完成 加密工作,并保证有着较高的加密强度。若没有相应的硬件狗存在,加密后的程序将无法启动。 外 密工具的特点 1、 使用三种方式加密:外壳、嵌入、内外结合。 外 所谓外壳,是加密工具加到被加密程序的一部分程序。加密程序启动时外 先被执行。外壳 要检查硬件狗的存在性和一致性。如果对应的硬件狗存在,则进入原程序的入 否则终止程序。外壳只 在加密程序启动时执行一次。 嵌入 所谓嵌入,是加密工具在被加密程序中嵌入一个公共程序,加密程序在整个运行期内以一定的 频率执行这个公共程序,该程序检查硬件狗的存在性和一致性。如果对应的硬件狗存在,则继续执行原程 序,否则终止程序。本加密方式可选。 内外结合 如果被加密的程序已经调用了赛孚耐公司提供的接口函数,那么外壳程序会通知接口函数, 外 序是否已经被执行,以防止外壳程序被跳过。如果发现外壳程序没有被执行,会终止程序。 这些数据文件由您的应用程序使用, 或者由受保护的应用程序产生 (输 2、 可以对数据文件进行加密, 出文件) 。这些文件只能由受保护的应用程序读取。 3、 可以通过关联许可证文件灵活地限制使用时间。 4、 可以自定义查硬件狗错误时显示给用户的提示信息,也可以选择不显示提示信息。 5、 外 护是一个多层的体系结构。只有前一层执行成功,才会 紧相连的一层。这种多层体系 结构可为您的应用程序提供额外的保护--这与用多道锁为您的门提供保护的功能相似。突破这 些保护层需要更多资源、时间和技巧,可以有效的阻止黑客攻击。此外,由于采用了多层随机模 式,所以任何两次被外 密的应用程序均不相同。 外 密工具可以加密 32/64 位 Windows 程序,在宏狗安装目录下\10003(您的行枣李软件系列号) \Shell\Win32shl.exe。 应用示例 下面以使用一个硬件狗保护 Notepad.exe 和 Calc.exe 为例说明外 密工具的使用。 在使用之前假设已 经使用开发商工具在文件系统中创建了两个许可证文件(许可证文件的文件夹 ID 为 16128 ,文件 ID 分 别为 10 和 20) 。关于如何创建许可证文件请查阅开发商手册开发商工具的使用一章。 1.请先插入硬件狗,执行步骤 1,如图 1 所示,指定要加密的 EXE 文件。 第 1 页 步骤 1: 单击浏览按钮, 指定要加密的 EXE 文 件;或在“源文件”文 本框中输入 要加密的 EXE 文件的路径和文 件名。 图 1 指定源文件后,系统会在“目标路径”文本框中自动添加加密后的 EXE 文件(即目标文件)存放的路 径。系统默认将目标文件存放到 OUTPUT 路径下,我们建议用户采用这种默认方式。 如果目标文件存在,覆盖它 如果选中“如果目标文件已存在,覆盖它”复选框,当目标文件所在路径下有同名文件存在,加密过 程不再出现是否覆盖文件的提示信息。 2.对加密狗的硬件参档迟数进行设置。 产品名称 加密后的应用程序在运行时会查找与岩拿系列号和产品名称相一致的硬件狗。可以此处指定产品名称。 查找方式 通过选择查找方式,能够更快地、更准 找到硬件狗。请选择适合您的应用程序的查找方式。 用户 加密后的应用程序在运行时会访问硬件狗,请指定硬件狗的用户 。 嵌入 第 2 页 加密软件运行期间,可以不断地检查对应的硬件狗是否存在。如果清空“嵌入”复选框,则在程序运 行期间不检查硬件狗。如果选中“嵌入”复选框,当程序运行期间检查不到对应的硬件狗时,程序会停止 运行。您可以指定检查间隔,间隔以秒为单位。缺省值为 120 秒,即 2 分钟。 .NET 增强 .NET 增强功能为纯.NET 应用程序(EXE 和 DLL)提供了增强的安全性。此功能可执行以下 *** 作: 隐藏原始入口点方法(仅用于.NET 可执行文件) 加密原始应用程序的字符串 加密原始应用程序的常量 (用于 32 位.NET 应用程序) SDNPro64.dll 和 (用于 64 位.NET 如果选择了此功能, 则需要将 SDNPro.dll 应用程序)与受保护应用程序一起提供给最终用户。 注意 使用.NET 增强特征项(使用.Net 增强保护外 NET 应用程序)的前提条件是机器中应安装了同 一版本的.NETFramework 和.NET SDK。.NET 增强选项不支持混合代码应用程序。 多层保护级别 外 提供多层保护。因为应用程序和外 之间的连接处非常容易受到攻击,所以您可以选择使用 多层外 从第 1 级到第 5 级)来保护您的应用程序。第 1 级可提供合理的保护,而第 5 级可提供最强保 护。但是,随着每一保护级别的增加,应用程序的大小和用于启动的时间也会相应增加。在缺省情况下, 使用第 3 级保护方式。 隐藏导入符号 选定此复选框隐藏您的程序中的导入符号。但是,请注意该选项不适用于此处所列出的文件类型使SmartHeap DLLs 的应用程序 当您同时加密数据文件或者使用数据文件加密选项时 如果存在要实施保护的任意数据文件或已指定了文件加密设置,则将忽略隐藏导入符号选项。 我使用了外 SDK 如果您已经使用外壳软件开发工具包(位于\Shell SDK 文件夹下)来保护您的重要 段、常量和字 符串数据,则选中此复选框。参阅该文件夹中的自述文件获得详细信息。 存在调试器时允许我的应用程序运行 您可以不选择该复选框,禁止在出现调试器时执行应用程序。如果在系统中探测到调试器,被保护的 应用程序将退出。非恶意用户可以关闭调试器,重新启动应用程序。但是,如果出于某种原因,您需要在 存在调试器的情况下允许您的应用程序运行,则选择该复选框。 3.执行步骤 2、3、4、5、6,如图 2、3 所示,关联许可证文件。 步骤 2: 单 击“关联 许可证文 件”按钮。 图 2 第 4 页 步骤 3:选择 “关联许可 证文件” 。 步骤 4: 指定文件 夹 ID。 步骤 5: 指定文件 ID。 步骤 6:单击 “ ”按钮。 图 3 注意 许可证文件将被关联到主界面上的源文件。如果主界面上的源文件是一个动态连接库文件,在 此动态连接库被加载到内存中时,会调用 RC_VisitLicenseFile 函数检查许可证文件。关于 RC_VisitLicenseFile 函数的说明,请查阅开发商手册 API 接口函数说明部分。 4.我们提供了 19 种不同错误类型的错误信息,请根据具体情况分别指定其内容。标题限制在 60 字节 内,每条消息限制在 100 字节内。执行步骤 7、8、9、10、11、12,如图 4、5 所示,设置提示消息。 第 5 页 步骤 7:单 击“设置提 示消息”出 , 现如下图的 界面。 图 4 第 6 页 步骤 8: 在查硬件 狗出现错误时, 如需要显示提示 信息,则选中此 复选框;否则清 空此复选框。 步骤 10: 根据 需要, 修改提 示信息对话 框的内容。 步骤 9:根 据需要,修 改提示信息 对话框的标 题。 步骤 12:单击 “ ”按钮。 图 5 步骤 11:根据需 要,选择错误消 息的类型:窗口 消息或者控制台 消息。 5.如果在加密 EXE 文件的同时需要加密数据文件,执行步骤 13,如图 6 所示: 第 7 页 步骤 13: 单击 “设置要加 密的数据文 件”按钮。 图 6 6.指定要加密的数据文件(实际上 Notepad.exe 执行时不需要数据库文件,这里只是一个加密演示) , 执行步骤 14,如图 7 所示: 步骤 14:单 击 浏 览 按 钮,指定要 加密的数据 文件。 图 7 7.执行步骤 15,如图 8 所示,将数据文件加入文件列表。如需加入多个数据文件,请重复步骤 14 和 15。此时文件加密选项会根据文件列表进行自动设置,如果您要进一步对其进行设置,例如,当您要加 第 8 页 密新生成的数据文件(输出文件)时,执行步骤 16 更改文件加密选项。注意:在执行步骤 16 前,请插上 狗。外壳工具会从狗里获得狗的 ID 作为默认的加密种子。 步骤 15: “增 单击 加到文件列表” 按 钮, 将要加密的数 据文件加入文件 列表。 步骤 16: 单击 此处文本。 图 8 8.在文本编辑框中已经包含“*.DBF” ,例如,为了加密受保护的程序在运行过程中生成的文本文件, 执行步骤 17,在文本编辑框中添加“*.TXT” 。如果想要指定自己的加密种子,执行步骤 18,选中“指定 我自己的加密种子”复选框,并在文本编辑框中输入自定义的加密种子。另外,为了提高安全性,2.0 版本 的外壳工具默认会使用 AES 算法对数据文件进行加密,而以前的版本用的是私有算法。如果要保持跟以前 版本的兼容性而使用私有算法,可以不选中“使用 AES 算法加密”复选框。执行步骤 20,返回“设置要 加密的数据文件”对话框,单击 按钮完成数据文件加密设置。 步骤 18:指定自己 的加密种子。 步骤 17:修改或添 加文件过滤器。 步骤 19:指定是否 使用 AES 算法加密 步骤 20:点击 定按钮。 图 9 9.完成有关 Notepad.exe 的所有设置后执行步骤 21,如图 10 所示,将其加入加密中心,成为加密队 列中的一个加密项。然后对 Calc.exe 重复步骤 1-21,如果需要关联许可证文件,请修改“文件 ID” 的值,如图 11 所示。使 Calc.exe 和 Notepad.exe 运行时访问不同的许可证文件。 第 9 页 步骤 21: 单击 “加入加密 队列” 单击此按钮,可 将选中的加密项 清除。 单击此按钮可 查看某个加密 项的所有设置 信息。 单击此按 钮,可清 除所有加 密项。 图 10 将文件 ID 设 置为:20。 图 11 9.可以将加密中心所有加密项的设置存成一个配置文件,以供下一次使用。执行步骤 22-24,如图 12 所示。 第 10 页 步骤 22: 单 击此按钮。 步骤 23: 单击“存 储配置文 件” 命令。 步骤 24:键入 配置文件名后, 单击 “保存”按 钮。 图 12 10.执行步骤 25,如图 13 所示,执行加密 *** 作。 步骤 25: 单击“加 密” 按钮。 图 13 11.加密过程中会出现如下图所示的对话框。 第 11 页 在加密过程中,单 击“中止”按钮可 中止加密 *** 作。 图 14 进程条指示加密正在进行。加密结束后会提示结果。如果加密成功,过 2 秒后,程序自动加密下 一个文件。如果加密失败,会提示失败原因,并给出解决措施或错误码,关于错误码的定义请下面的 保护时的错误 。错误信息会左右移动,以引起您的注意。至此,完成了对 Notepad.exe 和 Calc.exe 的保护。 保护时的错误 下表列出了保护应用程序和数据文件时可能产生的错误,对不不在下表中的错误代码,请参见安 装目录下的 errcode-chn.txt。 错误码 (十六进制) 194 SP_ERR_NOT_ENOUGH_MEMORY 没有足够的资源来保护应用程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12408803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存