汇编语言(十):软件加密与解密

作为汇编语言的课程笔记,方便之后的复习与查阅

本篇为课程第十二次课内容

目录

  • 基础知识
    • 一些重要的汇编指令
  • 静态分析
    • 示例:利用静态分析破解 `CRACKME.EXE`
  • 动态分析
    • 基本 API 函数
    • 示例:利用动态分析破解 `Task Lock.EXE`
  • 软件保护技术
  • 链接:https://download.csdn.net/download/weixin_42437114/15118252
    (百度云一直过不了审!就先传到 CSDN 了,我设的 0 积分下载)

基础知识

  • 加密:可以对待加密文件进行加壳,压缩,反跟踪,代码变形等操作,这些操作使用汇编语言最方便,有些只能通过汇编语言实现
  • 解密:对待破解文件的分析,跟踪,打补丁等操作,也必须掌握汇编语言,否则无法实现

一些重要的汇编指令

  1. 相等跳转: / 机器码:
  2. 不等跳转: / 机器码:
  3. 无条件跳转: 机器码: /
  4. 空指令: 机器码: 屏蔽一些指令可以把它改成

静态分析

  • 反汇编出来的程序清单上分析,从提示信息入手进行分析。
    • 常用的静态分析工具是 W32DASM、IDA 和 HIEW

示例:利用静态分析破解

动态分析

  • 虽然从静态上可以了解程序的思路,但是并不可能真正了解地了解软件的细节,如静态分析找不出线索,就要动态分析程序,另外,碰到压缩程序,或者软件显示的信息是经过加密的,在运行时解密,静态分析也无能为力了,只能动态分析。所谓动态分析是利用 SoftIceOllydbg一步一步地单步执行软件

基本 API 函数

  • : 复制指定窗口中的字符到缓冲区
  • :返回对话框中某一个窗口的标题或文字
  • :创建、显示和操作信息框
  • 32 位API常有 两种形式:,

  • 程序获取输入的注册码时可能会用到上面这些API函数,因此可以在 ollydbg 调试时,在这些函数上设置断点

示例:利用动态分析破解

  • 成功破解:
    汇编语言(十):软件加密与解密

软件保护技术

  • 从上面的几个例子中可以看出,如果不给自己的软件进行加密工作,会很容易被别人破解。因此软件加密是十分必要的

常用的软件保护技术:

  • 给程序加壳;(防分析的第一关)
  • 防注册码破解:
    • 用户名和注册码尽量不使用明文; (防止盗取密码)
    • 注册码生成算法尽量使用多段函数完成,并加入干扰代码,以迷惑破解者; (防止注册机)
  • 防暴力破解:
    • 程序自身进行完整性检查,发现被修改使用影子文件自动修复;(防止暴破)
    • 注册码的合法性检查不只有对错两条分支,构建注册码判断的迷宫,拖死破解者;(防止暴破)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月15日
下一篇 2020年6月15日

相关推荐