gpt4 book ai didi

c# - 有没有办法将 Adob​​e AIR (SWF/Flex) 应用程序封装到 C# 应用程序中以使用 HASP 保护

转载 作者:行者123 更新时间:2023-11-30 20:57:53 25 4
gpt4 key购买 nike

我们有一个使用 Flex Framework 的 Adob​​e AIR 应用程序。它最初是为浏览器版本构建的,但现在我们也需要将它作为独立应用程序来使用。使用 Adob​​e AIR 可以做到这一点。

但是我们需要对此应用程序使用 IP 保护,对于我们的服务器端应用程序,我们使用 SafeNet(以前称为 Alladin)HASP key 。相同的 key 可用于加密客户端独立应用程序,但这些 key 支持的语言集非常有限,最简单的语言是 C# (.NET)。

HASP 保护工作如下:执行加密的二进制文件,解密引擎将检查 USB key ,如果存在,写入 key 的解密机制会将应用程序解密到内存中并执行它。

所以问题是 - 将 SWF/AS 文件嵌入到 C# 应用程序以便这些文件也将被加密并因此受到保护的最佳(简单且安全)方法是什么?

PS:我读过关于此事的其他问题,没有办法直接对 AIR 使用 HASP 保护,但有些问题暗示可以通过 ActiveX 容器从 C# 应用程序使用 SWF 应用程序。

PPS:也许这是个愚蠢的问题,但我没有使用 C# 的经验,因此我将不胜感激任何链接、解释、详细说明或示例。

最佳答案

这会将嵌入的 swf 资源作为二进制内存流加载到表单嵌入的 Flash 播放器 COM 对象中(无需创建临时文件)。请注意,SWF 的功能仅限于“标准”Flash Player 沙箱,您不能以这种方式嵌入和运行使用桌面/扩展桌面的 AIR swf。

我创建了一个 GitHub Project包含完整代码和示例 swf。

1) 将 AIR 应用程序编译为 SWF

2) 创建一个新的 C# Forms 项目

3) 在解决方案资源管理器中,右键单击“引用”并从 COM 选项卡中添加“ShockWave Flash”

4) 在解决方案资源管理器中,右键单击项目并选择“属性”。在新打开的表单中选择“资源”选项卡并将您的 SWF 添加为资源。

5) 从工具箱的“常规”选项卡中,将“ShockWave Flash”组件拖放到表单上

6) 将以下代码添加到您的表单中:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;

namespace SwfRes
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
LoadBinSwf();
}

private void LoadBinSwf()
{
//Assuming your swf is called "Main.swf"
byte[] swf = Properties.Resources.Main;

MemoryStream memStream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memStream);
writer.Write(8 + swf.Length);
writer.Write(0x55665566);
writer.Write(swf.Length);
writer.Write(swf);
memStream.Seek(0, SeekOrigin.Begin);
axShockwaveFlash1.OcxState = new AxHost.State(memStream, 1, false, null);
}
}
}

关于c# - 有没有办法将 Adob​​e AIR (SWF/Flex) 应用程序封装到 C# 应用程序中以使用 HASP 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16495045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com