作为汇编语言的课程笔记,方便之后的复习与查阅
本篇为课程第十二次课内容
目录
- 基础知识
-
- 一些重要的汇编指令
- 静态分析
-
- 示例:利用静态分析破解 `CRACKME.EXE`
- 动态分析
-
- 基本 API 函数
- 示例:利用动态分析破解 `Task Lock.EXE`
- 软件保护技术
- 链接:https://download.csdn.net/download/weixin_42437114/15118252
(百度云一直过不了审!就先传到 CSDN 了,我设的 0 积分下载)
基础知识
- 加密:可以对待加密文件进行加壳,压缩,反跟踪,代码变形等操作,这些操作使用汇编语言最方便,有些只能通过汇编语言实现
- 解密:对待破解文件的分析,跟踪,打补丁等操作,也必须掌握汇编语言,否则无法实现
一些重要的汇编指令
- 相等跳转: / 机器码:
- 不等跳转: / 机器码:
- 无条件跳转: 机器码: /
- 空指令: 机器码: 屏蔽一些指令可以把它改成
静态分析
- 从反汇编出来的程序清单上分析,从提示信息入手进行分析。
- 常用的静态分析工具是 W32DASM、IDA 和 HIEW
示例:利用静态分析破解
动态分析
- 虽然从静态上可以了解程序的思路,但是并不可能真正了解地了解软件的细节,如静态分析找不出线索,就要动态分析程序,另外,碰到压缩程序,或者软件显示的信息是经过加密的,在运行时解密,静态分析也无能为力了,只能动态分析。所谓动态分析是利用 SoftIce 或 Ollydbg一步一步地单步执行软件
基本 API 函数
- : 复制指定窗口中的字符到缓冲区
- :返回对话框中某一个窗口的标题或文字
- :创建、显示和操作信息框
- 32 位API常有 两种形式:,
- 程序获取输入的注册码时可能会用到上面这些API函数,因此可以在 ollydbg 调试时,在这些函数上设置断点
示例:利用动态分析破解
- 成功破解:
软件保护技术
- 从上面的几个例子中可以看出,如果不给自己的软件进行加密工作,会很容易被别人破解。因此软件加密是十分必要的
常用的软件保护技术:
- 给程序加壳;(防分析的第一关)
- 防注册码破解:
- 用户名和注册码尽量不使用明文; (防止盗取密码)
- 注册码生成算法尽量使用多段函数完成,并加入干扰代码,以迷惑破解者; (防止注册机)
- 防暴力破解:
- 程序自身进行完整性检查,发现被修改使用影子文件自动修复;(防止暴破)
- 注册码的合法性检查不只有对错两条分支,构建注册码判断的迷宫,拖死破解者;(防止暴破)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!