圣天诺加密狗(HASP)破解
一、编写测试程序
dll代码:
#include "pch.h"
#include<stdlib.h>
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
system("notepad.exe");
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
dll加载代码
#include <stdio.h>
#include <Windows.h>
int main()
{
HANDLE hDll = LoadLibraryA("HaspTestDll.dll");
if (hDll != NULL)
{
printf("Ok\n");
}
else
{
printf("Error\n");
}
return 1;
}
使用狗对dll加密
加密后在有狗(软狗)环境运行如下,正常运行:

加密后在无狗(软狗)环境运行如下,提示错误:

二、调试dll
在loadlibrary处下断点,第一次停留在LoadLibraryA(“HaspTestDll.dll”);处。
加密的dll在解密时会调用两次LoadLibraryA, 所以断两次LoadLibraryA就可以看到关键函数
hasp_login_scope(hasp feature t feature id,const char* scope,hasp vendor code t vendor_code,hasp handie t* handle)
hasp_decrypt(hasp_handle_t handle,void* buffer,hasp_size_t length)
参考calc的调试过程,定位关键函数
hasptestdll.dll 加载基址 6FA00000
xxx1 地址 6FA1CF98
xxx1 offset hasp_login_scope :3123D
hasp_login_scope: 6FA4E1D5
hasp_decrypt: 6FA4E2BC



关键函数hasp_login_scope和hasp_decrypt。
有狗(软狗)的环境
hasp_login_scope函数会获取一个handle,并返回0。
hasp_decrypt函数会解密一段关键代码并存储到参数buf中
无狗的环境
hasp_login_scope函数获取handle失败,并返回一个fei0值。
hasp_decrypt函数解密失败。
调试测试可知,我们先在有狗的环境中,hook hasp_decrypt,将解密的关键数据保存下来,
然后在有狗的环境中
hook hasp_login_scope 函数,随便设置一个handle值,并返回0
hook hasp_decrypt 函数将解密后的内容,复制到对应的内存中,则可以绕过狗,成功运行我们的程序。
三、无狗执行
首先我们需要将编写的hook dll 静态注入的主程序中,使用工具CFFExplorerVII

保存文件(不要覆盖原文件)

无狗环境下运行原程序

无狗环境下运行patched 程序

日志记录:

![[附源码]计算机毕业设计和vue的茶文化交流平台的设计与实现Springboot程序](https://img-blog.csdnimg.cn/7ce81c02d064477cb83978c8b8c393cb.png)


![[附源码]Nodejs计算机毕业设计基于Java的医院预约挂号系统Express(程序+LW)](https://img-blog.csdnimg.cn/b4595f08b7a34d408bca43b16ecde7d2.png)

![[附源码]计算机毕业设计工程施工多层级管理架构Springboot程序](https://img-blog.csdnimg.cn/04c45a9600884d5b9e4e43c7dc7c0724.png)


![[附源码]Python计算机毕业设计殡仪馆管理系统Django(程序+LW)](https://img-blog.csdnimg.cn/c485e2efd74342728f7ddac32b457074.png)

![[附源码]Python计算机毕业设计大型零售电商平台——购物车管理子系统Django(程序+LW)](https://img-blog.csdnimg.cn/8dd4e827b144409ba5ead9280ff5d195.png)
![[附源码]Python计算机毕业设计SSM基于的砂石矿山管理系统(程序+LW)](https://img-blog.csdnimg.cn/02947a095bef4d3792b94df972b3f924.png)
![[Linux学习笔记] 浅谈信号(文章含不少学习资源)](https://img-blog.csdnimg.cn/501396d4e6b54782ba1e5563575096af.png)



![[附源码]Python计算机毕业设计大学生扶贫创业平台Django(程序+LW)](https://img-blog.csdnimg.cn/3824cbbf49bc4c878ded7203d86025ba.png)
![[附源码]Python计算机毕业设计SSM基于的企业人事管理系统(程序+LW)](https://img-blog.csdnimg.cn/ae096b8702784b6f8ec7092508d5078c.png)
