圣天诺加密狗(HASP)破解

news2024/10/6 12:30:55

圣天诺加密狗(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 程序

日志记录:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计和vue的茶文化交流平台的设计与实现Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

SVG 实现拟物态圆环进度条

前言 &#x1f44f;SVG 实现拟物态圆环进度条&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义一个圆角矩形作为父容器&#xff0c;背景色为–bg --bg: #edf1f5;<div class"container">&l…

lunar.js 基本使用学习笔记

文章目录lunar 基本使用学习笔记介绍基本使用部分文档 API 转载阳历相关的方法 APISolar 阳历阳历实例化阳历对象可以使用多种字符串输出方式&#xff1a;获取年、月、日儒略日获取星期判断是否闰年获取节日星座阳历日期推移&#xff08;可**跳过节假日、周六周日**&#xff09…

[附源码]Nodejs计算机毕业设计基于Java的医院预约挂号系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

SpringMVC的传参方式?

Request参数传递 1. Servlet传统API 2. Map/Model/ModelMap 作用域&#xff1a;request Map 是原生态的JDK类 Model/ModelMap 是Spring的类 除了来源不同&#xff0c;传递参数的功能都一致&#xff0c;用哪个都可以 Session参数传递 1. 传统方法HttpServletSession 2. …

[附源码]计算机毕业设计工程施工多层级管理架构Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Python列表(list)原址反序的4种方法

Python列表(list)原址反序的方法 (本文获得CSDN质量评分【x】)【学习的细节是欢悦的历程】Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 自学并不是什么神秘的东西&a…

利用图文和代码深度解析操作系统OS内存泄漏检测实现原理与算法机制以及常见的泄露原因和解决方案

利用图文和代码深度解析操作系统OS内存泄漏检测实现原理与算法机制以及常见的泄露原因和解决方案。 计算机科学中,内存泄漏是一种资源泄漏。发生这种情况时,不再需要的内存未被释放,计算机程序以错误的方式管理内存分配。当对象存储在内存中但不能被运行代码无法访问时,也…

[附源码]Python计算机毕业设计殡仪馆管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

mha

MySQL MHA 报错处理 ​​​​​​- 走看看安装环境&#xff1a;CentOS 6.5 MySQL 5.7.22 MHA 0.56 1、找不到mysql 命令 Sat Mar 23 07:17:50 2019 - [info] Connecting tohttp://t.zoukankan.com/102x-p-10583959.html 实验 详解MHA搭建过程中的遇到的各种问题_时代广场的蟋蟀…

竞赛题-6257. 删除每行中的最大值

题目&#xff1a; 给你一个 m x n 大小的矩阵 grid &#xff0c;由若干正整数组成。 执行下述操作&#xff0c;直到 grid 变为空矩阵&#xff1a; 从每一行删除值最大的元素。如果存在多个这样的值&#xff0c;删除其中任何一个。将删除元素中的最大值与答案相加。 注意 每…

[附源码]Python计算机毕业设计大型零售电商平台——购物车管理子系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

[附源码]Python计算机毕业设计SSM基于的砂石矿山管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[Linux学习笔记] 浅谈信号(文章含不少学习资源)

百金买骏马,千金买美人,万金买爵禄,何处买青春? 目录 信号的概念 信号的种类: kill -l 命令可以查看信号列表 man 7 signal 查看信号详细内容 信号的产生 补充知识 Core Dump(转储内存) 补充知识:与信号相关的数据结构 对于不可靠信号 接收信号 信号的处理: 阻塞信号集: 未决信…

qt之QCustomPlot动态更改曲线数量,单光标查看数值,选中曲线单独显示查看趋势

一、前言 本博客介绍如何由浅入深的使用一些qcustomplot的用法&#xff0c;对于开源的qcustomplot来说&#xff0c;功能实在实在是太强大了&#xff0c;如果只用于显示简单的曲线真是太浪费前人的心血了&#xff0c;本文就来介绍一些好玩的用法&#xff0c;可以实现的功能有&am…

基于javaweb的学籍管理系统计算机专业毕业论文java毕业设计开题报告

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之基于javaweb的学籍管理系统-IT实战营_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzy…

论文笔记:Template-Based Named Entity Recognition Using BART

论文来源&#xff1a;ACL 2021 Finding 论文链接&#xff1a;https://aclanthology.org/2021.findings-acl.161.pdf 论文代码&#xff1a;GitHub - Nealcly/templateNER: Source code for template-based NER 笔记仅供参考&#xff0c;撰写不易&#xff0c;请勿恶意转载抄袭…

[附源码]Python计算机毕业设计大学生扶贫创业平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

[附源码]Python计算机毕业设计SSM基于的企业人事管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【云计算与大数据技术】虚拟化技术、开源技术Xen、KVM、OpenVZ的讲解(图文解释 超详细)

一、系统虚拟化 系统虚拟化的核心思想是使用虚拟化软件在一台物理机上&#xff0c;虚拟出一台或多台虚拟机。步骤如下 利用虚拟化评估工具进行容量规划&#xff0c;实现同平台应用的资源整合&#xff1b; 首先采用容量规划工具决定每个系统的配置&#xff0c;利用虚拟化评估工…