使用C / C ++获取HASP密钥(问题)

时间:2010-12-20 12:27:39

标签: c++ c debugging

我似乎需要一些帮助(有些人,我的意思是很多)。

我试图制作一个C程序(或c ++,如果我让它工作,语言并不重要)连接到HASP USB。 HASP基本上是一个具有一些唯一代码的USB驱动器。 HASP的目的是基本上只是“保护”另一个程序,以便它只在HASP连接到计算机时运行。

首先,让我说我实际上是想让它发挥作用,而不是攻击另一个。我现在使用demo键进行开发,虽然我有一把万能钥匙。

这个HASP程序有一个工具箱,它应该在C中生成代码,准备复制粘贴并让它工作。但是,它实际上是工作,或者至少,它不仅仅是复制粘贴。

(有关HASP的更多信息,请转到http://www2.safenet-inc.com/google/SRM/dk-hasp.asp?CID=GooIntl-IND&HBX_PK=hasp&HBX_OU=50&CMP=KNC-GoogleAdd&wcw=google&_kk=hasp&_kt=e9b07d11-6db3-4153-a46b-5dc95204b6a3&gclid=CJfxibrp-qUCFRQv3wodBnwfpA

不幸的是,我没有任何C或C ++编码经验,所以我在尝试解决这个问题时遇到了一些问题。我只在Director中编写了另一部分(类似于Flash)。

它给我的代码只是为了对HASP进行登录(读取,连接)如下:

const hasp_feature_t feature = HASP_DEFAULT_FID;

hasp_handle_t handle = HASP_INVALID_HANDLE_VALUE;
hasp_status_t status;


//This is a code needed to login, its just the demo code for now, but it matches
//the HASP i'm using

unsigned char vendor_code[] =

"AzIceaqfA1hX5wS+M8cGnYh5ceevUnOZIzJBbXFD6dgf3tBkb9cvUF/Tkd/iKu2fsg9wAysYKw7RMAsV"
"vIp4KcXle/v1RaXrLVnNBJ2H2DmrbUMOZbQUFXe698qmJsqNpLXRA367xpZ54i8kC5DTXwDhfxWTOZrB"
"rh5sRKHcoVLumztIQjgWh37AzmSd1bLOfUGI0xjAL9zJWO3fRaeB0NS2KlmoKaVT5Y04zZEc06waU2r6"
"AU2Dc4uipJqJmObqKM+tfNKAS0rZr5IudRiC7pUwnmtaHRe5fgSI8M7yvypvm+13Wm4Gwd4VnYiZvSxf"
"8ImN3ZOG9wEzfyMIlH2+rKPUVHI+igsqla0Wd9m7ZUR9vFotj1uYV0OzG7hX0+huN2E/IdgLDjbiapj1"
"e2fKHrMmGFaIvI6xzzJIQJF9GiRZ7+0jNFLKSyzX/K3JAyFrIPObfwM+y+zAgE1sWcZ1YnuBhICyRHBh"
"aJDKIZL8MywrEfB2yF+R3k9wFG1oN48gSLyfrfEKuB/qgNp+BeTruWUk0AwRE9XVMUuRbjpxa4YA67SK"
"unFEgFGgUfHBeHJTivvUl0u4Dki1UKAT973P+nXy2O0u239If/kRpNUVhMg8kpk7s8i6Arp7l/705/bL"
"Cx4kN5hHHSXIqkiG9tHdeNV8VYo5+72hgaCx3/uVoVLmtvxbOIvo120uTJbuLVTvT8KtsOlb3DxwUrwL"
"zaEMoAQAFk6Q9bNipHxfkRQER4kR7IYTMzSoW5mxh3H9O8Ge5BqVeYMEW36q9wnOYfxOLNw6yQMf8f9s"
"JN4KhZty02xm707S7VEfJJ1KNq7b5pP/3RjE0IKtB2gE6vAPRvRLzEohu0m7q1aUp8wAvSiqjZy7FLaT"
"tLEApXYvLvz6PEJdj4TegCZugj7c8bIOEqLXmloZ6EgVnjQ7/ttys7VFITB3mazzFiyQuKf4J6+b/a/Y";

status = hasp_login(feature, vendor_code, &handle);

/* check if operation was successful */
if (status != HASP_STATUS_OK)
{
    switch (status)
    {
        case HASP_FEATURE_NOT_FOUND:
            break;
        case HASP_HASP_NOT_FOUND:
            break;
        case HASP_OLD_DRIVER:
            break;
        case HASP_NO_DRIVER:
            break;
        case HASP_INV_VCODE:
            break;
        case HASP_FEATURE_TYPE_NOT_IMPL:
            break;
        case HASP_TMOF:
            break;
        case HASP_TS_DETECTED:
            break;
        default:
            break;
    }
}

错误:

hasp_demo.cpp|44|error: expected constructor, destructor, or type conversion before '=' token|
hasp_demo.cpp|47|error: expected unqualified-id before 'if'|
||=== Build finished: 2 errors, 0 warnings ===|

我知道这是一个非常具体的帮助请求,但我现在完全迷失了,不知道从现在开始该做什么。我尝试使用代码,但它总是让我犯错误。

此外,我在Windows上,在Codeblocks IDE中使用GNU GCC编译器。

2 个答案:

答案 0 :(得分:2)

您粘贴的代码似乎是一个如何使用API​​的示例,而不是一个工作程序本身。它似乎不打算编译。

所以我想你需要学习C / C ++,或找一个能帮助你的人。

答案 1 :(得分:0)

看看我的问题:C# HASP login code 这与此处的情况相同。此代码应按照HASP SDK中的说明运行。你可以在任何函数中使用它,你应该登录到hasp键。我认为它不适用于演示主密钥(DEMOMA),因为它们只是阻止它。虽然它很奇怪,因为您可以使用名为Sentinel HASP Toolbox的示例代码生成器应用程序的代码进行测试,然后它按预期工作并在文档。