加密狗模拟破解

IDE: 开发环境,比如商用的 Visual Studio,免费开源的 Sharp Develop。Encrypt: 加密String: 字符串Dog: 狗,在此处可理解为加密狗.NET: 微软开发的变成框架,可使用 .NET Reflector 进行反编译。

操作方法

  • 01

    一、拆解文件,寻找验证 脱壳这个很简单 扔到 de4dot 神器自动脱掉了。把处理后的文件扔到 .NET Reflector 里面,右键模组 -> Go To Entry Point 进入入口点

  • 02

    观察代码,程序在入口点通过建立互斥体检测程序是否已经运行,然后进入「MainForm」窗口。

  • 03

    在主窗口初始化的代码内,「初始化运行环境」的下面有一行很可疑,「InitLicense 初始化授权」:

  • 04

    看到代码后,可以发现我们没有找错,许可授权在这里读取:

  • 05

    SN 全名 Serial Number[序列号],这个类名也很直白,就是我们研究的目标了。

方法/步骤2

  • 01

    二、拆解验证,糊点代码点进去 SN 这个类,然后单击 Reflector 界面最底部的「Expand Methods」展开这个类所有代码,方便分析:

  • 02

    把全部文件拷贝到 Visual Studio 或文字编辑器备份,定位到 Registered 这个方法:

  • 03

    这段代码,表示程序会优先检查加密狗内部的授权。若是加密狗不存在,则进行序列号的校验。把狗相关的函数提取出来,分析一下调用:

  • 04

    NTFind:   调用 API 「NTFindFirst」 查询第一个加密狗的存在,返回 0 表示成功。NTLogin:  调用 API 「NTLogin」 尝试登录,返回 0 表示成功 (加了容错处理,所以代码看起来比较怪),方法返回 true 表示成功。NTReadIv: 调用 API 「NTRead」 读入加密狗数据,并与内置的密文进行比对验证,方法返回 true 表示获取成功并验证通过。NTReadLicense: 读取狗上面的数据,根据数据返回相应的授权信息。前两个,直接在 DLL 修改为返回 0 即可:

  • 05

    后面一个有点麻烦,因为需要读取数据到内存进行验证,而数据又不能凭空出现。把「NTReadIv」这个方法的功能翻译成白话大概就是:1. 申请 7 个字节的数据块。2. 读取狗的数据:从 0 开始读取 7 个字节,读到的内容写到刚才申请的数据块里面。3. 如果数据块的内容与「NTIv」这个变量的内容一致则验证成功,否则失败。而在此之前,我们需要知道所谓的密文是什么内容;回到构建函数 (SN -> .cctor)

  • 06

    到这里就比较简单了,进去 EncryptString 这个类全部拷贝到 IDE,然后简单做一个界面 [自行美化吧~]:

  • 07

    解密按钮的事件代码按照程序里的写法糊进去就行:

  • 08

    解密后,可以看到这样的内容:NTCode: 1234567890arctilerstring_0: 3eee0d60fbb583e1bf33c6990d5f9e0dNTIv: azmap09顺便: SN.RegisterProductCode 的文字解密后是「desktop」,可理解为桌面版。此时,可以知道加密狗从 0 到 7 的内容是 azmap09 这一串字符了,记录下来:

  • 09

    当这三个验证都通过后,程序就会调用 NTReadLicense 读取狗上面记录的内容;

  • 10

    又看到了熟悉的 NTRead 函数。此时,读取的是 0x10(16) 开始的两个字节一直到 0x12 的位置。接着往下看,一系列的判断分支,根据分支内容判断授权版本。在此之前,调查一下程序定义的授权类型:

  • 11

    目标很清晰,就是我们功能最多、最全的「企业版」。因此,把代码优化、精简一下:

  • 12

    而当我把数据库用工具打开时,却提示我数据库被加密或无效.. 走进去「GetSQLiteConn」看看怎么处理:

  • 13

    熟悉的加密文字,扔到工具里解密看看,还真是这个「azmap09」。于是糊了几行代码,取得数据库储存的代码号是 0。因此如果想让版本为企业版,加密狗的内容必须是 -1 了。

方法/步骤3

  • 01

    三、戏弄程序,编写狗狗首先摸清目标狗的导出函数:

  • 02

    然后编写个相同的导出函数;我这里首先用的是 C++

  • 03

    最后带上修正导出表的 def 文件: LIBRARY FakeLib EXPORTS NT3DESCBCDecrypt=_NT3DESCBCDecrypt NT3DESCBCEncrypt=_NT3DESCBCEncrypt NTCheckLicense=_NTCheckLicense NTFindFirst=_NTFindFirst NTGetHardwareID=_NTGetHardwareID NTLogin=_NTLogin NTLogout=_NTLogout NTRead=_NTRead NTWrite=_NTWrite

  • 04

    编译后更名 NT88.dll,扔进去看看:

  • 05

    企业版。嘛,就这样了

(0)

相关推荐

  • 加密狗破解攻略

    硬件加密锁,俗程"加密狗",对于加密狗的破解大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和 ...

  • 加密狗使用方法

    操作方法 01 加密狗的重要性及使用方法 一.加密狗是什么? USB加密狗是目前流行的一种身份认证安全工具,大小类似U盘,可直接在电脑的USB接口插拔,我们的加密狗也是属于此类,每只狗有独立的产品识别 ...

  • 加密狗是什么?

    加密狗也叫加密锁,是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有usb口的).加密狗是为软件开发商提供的一种智能型的具有软件保护功能的工具,它包含一个安装在计算机并行口或 USB 口上 ...

  • U盘变身加密狗的技巧

    U盘等移动设备除了可以用来储存文件,装系统以外,还可以用来制作加密狗。本文为大家介绍如何制作Windows系统开机的加密狗。它的作用是为了避免他人随便开启自己的电脑查看自己的私密信息,除了设置个人密码 ...

  • U盘制作Windows开机加密狗教程

    U盘等移动设备除了可以用来储存文件,装系统以外,还可以用来制作加密狗。这篇文章中所指的加密狗仅指针对Windows系统开机的加密狗。它的作用是为了避免他人随便开启自己的电脑查看自己的私密信息,除了设置 ...

  • 三星s4屏幕相关问题(屏幕镜像.耳机.加密狗等)

    三星s4屏幕相关问题(屏幕镜像.耳机.加密狗等)

  • 如何使用U盘制作Windows系统开机加密狗

    U盘等移动设备除了可以用来储存文件,装系统以外,还可以用来制作加密狗.这篇文章中所指的加密狗仅指针对Windows系统开机的加密狗.它的作用是为了避免他人随便开启自己的电脑查看自己的私密信息,除了设置 ...

  • 管家婆软件服务器端登陆检测不到加密狗

    我们在用管家婆软件的时候经常会碰到软件登陆的时候提示"服务器端找不到加密狗".我碰到很多朋友出现这样的问题,以下是我的个人. 操作方法 01 开始--运行--netsh winso ...

  • T3 10.8plus1\\T6 6.1加密狗注册流程

    为了保护合法伙伴以及正常区域内伙伴的利益,T3.T6产品在防串货.防盗版进行修改,通过加密狗.服务器硬件来判断注册IP归属以及伙伴销售范围判断所在地,并通过授权license验证来防止串货. 4月22 ...