zoukankan      html  css  js  c++  java
  • 常见软件保护技术

    1.  序列号保护机制

        俗称注册码。验证用户名和序列号之间的书写映射关系。有以下几种分类:

    1.     以用户名作为自变量,用过函数F变换后得到注册码。序列号= F(用户名)
    2.     通过注册码验证用户的正确性。 用户名 = F-1(序列号)
    3.     通过对等函数检查注册码。F1(用户名) = F2(序列号)
    4.     同时采用用户名和序列号作为自变量。特定值=F3(用户名, 序列号)

    下面是一个通过对等函数检查注册码的列子:

    我们反汇编下代码:

    image

    这里是得到用户名和密码。

    然后:

    image

    这样就可以着重分析

    CALL serial.0040137E                     ;  用户名转换

    CALL serial.004013D8                     ;  转换后的用户名和密码作为参数进行比较

    这两个函数了。

    继续往下分析,看看 0040137E内部做了什么:

    image

    image

    这里可以写出转换用户名的代码:

    string translateUserName(string  name)

    {

        name = name.to_upper;

        int tmp(0);

        for (int i =0; i < name .lenght(); ++i)

             tmp += name.at(i);

       return tmp^0x5678

    }

    分析完毕用户名的转换之后, 我们再来分析下:

    CALL serial.004013D8                     ;  转换后的用户名和密码作为参数进行比较

    image

    反汇编的一下代码为:

    string translatePassword(string password)

    {

        int tmp(0);

        for (int i = 0; i < password.lenght(); ++i)

            {

                  char al(0x0A);

                   char ch = password[i];

                   if (0 == ch)

                        break;

                  ch –= 0x30;

                   tmp*= al;

                   tmp += ch;        

             }

    }

  • 相关阅读:
    Python基础(三)
    离线部署k8s集群
    linux安装python3
    vue elementui table 内按钮跳转页面
    js 正则表达式 验证数字或字母
    ps2020 将图片中的字清除 并且不损坏背景图
    css 背景图片铺满
    ps 缩放快捷键
    css 字体阴影和边框阴影
    ps 修改图片图层大小
  • 原文地址:https://www.cnblogs.com/sld666666/p/2035697.html
Copyright © 2011-2022 走看看