第十三章软件反跟踪技术
第十三章 软件反跟踪技术
软件反跟踪技术 ■软件分析技术概述 ■加密反跟踪技术 跟琮技术 反跟擦技术 ■执行程序结构 ■静态跟踪、防静态分析、反防静态分析
软件反跟踪技术 软件分析技术概述 加密反跟踪技术 – 跟踪技术 – 反跟踪技术 执行程序结构 静态跟踪、防静态分析、反防静态分析
软件反跟踪技术 ■动态跟踪、防动态跟踪 破坏 debug的基本方法 主动检测跟琮法 代码加密法 其他防跟琮方法 软件历距综编程技巧 ■反跟踪程序例子 ■常用工具介绍
软件反跟踪技术 动态跟踪、防动态跟踪 – 破坏debug的基本方法 – 主动检测跟踪法 – 代码加密法 – 其他防跟踪方法 – 小结 – 软件防跟踪编程技巧 反跟踪程序例子 常用工具介绍
软件分析技术概述 ■在进行软件的破解、解密以及计算机病毒 分析工作中,一个首要的问题是对软件及 病毒进行分析。 ■这些软件都是机器代码程序,对于它们分 析必须使用静态或动态调试工具,分析跟 踪其汇编代码
软件分析技术概述 在进行软件的破解、解密以及计算机病毒 分析工作中,一个首要的问题是对软件及 病毒进行分析。 这些软件都是机器代码程序,对于它们分 析必须使用静态或动态调试工具,分析跟 踪其汇编代码
软件分析技术概述 ■从软件使用说明和操作中分析软件 欲破解软件,首先应该先使用该软件,了解一下功能 是否有限制,最好阅读一下软件的说明或手册,特别 是自己所关心的关键部分的使用说明,这样也许能够 找点线索 ■静态反汇编 所谓静态分析即从反汇编出来的程序清单上分析 大多数软件在设计时,都采用了人机对话方式,所以 提示信息入手进行分析 crack时常用的静态分析工具是W32DASM和HEW等
软件分析技术概述 从软件使用说明和操作中分析软件 – 欲破解软件,首先应该先使用该软件,了解一下功能 是否有限制,最好阅读一下软件的说明或手册,特别 是自己所关心的关键部分的使用说明,这样也许能够 找点线索。 静态反汇编 – 所谓静态分析即从反汇编出来的程序清单上分析。 – 大多数软件在设计时,都采用了人机对话方式,所以 提示信息入手进行分析。 – crack时常用的静态分析工具是W32DASM和HIEW等
软件分析技术概述 ■动态跟踪分析 虽然从静态上可以了解程序的思路,但是并不 可能真正了解地了解软件的细节,如静态分析 找不出线索,就要动态分析程序 另外,碰到压缩程序,静态分析就无能为力了, 只能动态分析了 所谓动态分析是利用 SOFTICE或TRW2000 步一步地单步执行软件
软件分析技术概述 动态跟踪分析 – 虽然从静态上可以了解程序的思路,但是并不 可能真正了解地了解软件的细节,如静态分析 找不出线索,就要动态分析程序 – 另外,碰到压缩程序,静态分析就无能为力了, 只能动态分析了 – 所谓动态分析是利用SOFTICE或TRW2000一 步一步地单步执行软件
软件分析技术概述 ■为什么需要动态跟踪分析? 许多软件在整体上完成的功能,一般要分解成若干模 块来完成 模块在执行时,往往需要使用其 前一模块处理的结果,这一结果我们把它叫中间结果 如果我们只对软件本身进行静态地分析,一般是很难 分析出这些中间结果的 有许多软件在运行时,其最初执行的一段程序往往需 要对该软件的厦 个模块进行一些初始始化工 而没有依赖系统的重定位。 有许多加密程序为了阻止非法跟踪和阅读,对执行 码的大部分内容进行了加密变换,而只有很短的一段 程序是明文。加密程序运行时,采用了逐块解密,逐 块执行和方法
软件分析技术概述 为什么需要动态跟踪分析? – 许多软件在整体上完成的功能,一般要分解成若干模 块来完成,而且后一模块在执行时,往往需要使用其 前一模块处理的结果,这一结果我们把它叫中间结果。 如果我们只对软件本身进行静态地分析,一般是很难 分析出这些中间结果的。 – 有许多软件在运行时,其最初执行的一段程序往往需 要对该软件的后面各个模块进行一些初始始化工作, 而没有依赖系统的重定位。 – 有许多加密程序为了阻止非法跟踪和阅读,对执行代 码的大部分内容进行了加密变换,而只有很短的一段 程序是明文。加密程序运行时,采用了逐块解密,逐 块执行和方法
软件分析技术概述 如何进行动态跟踪分析? 对软件进行粗跟踪 所谓粗跟踪,即在跟踪时要大块大块地跟踪,也就是说每次遇 到调用CALL指令 复操作指令REP,循环操作LOOP指 以及中断调用|NT指令 般不要跟踪进去,而是根据执行 结果分析该段程序的功能 对关键部分进行细跟踪 ■对软件进行了一定程度的粗跟踪之后,便可以获取软件中我亻 所关心的模块或程序段,这样就可以针对性地对该模块进行具 体而详细地跟踪分析 般情况下,对关键代码的跟踪可能要反复进行若干次才能读 懂该程序,每次要把比较关键的中间结果或指令地址记录下来, 这样会对下一次分析有很大的帮助
软件分析技术概述 如何进行动态跟踪分析? – 对软件进行粗跟踪 所谓粗跟踪,即在跟踪时要大块大块地跟踪,也就是说每次遇 到调用CALL指令、重复操作指令REP,循环操作LOOP指令 以及中断调用INT指令等,一般不要跟踪进去,而是根据执行 结果分析该段程序的功能。 – 对关键部分进行细跟踪 对软件进行了一定程度的粗跟踪之后,便可以获取软件中我们 所关心的模块或程序段,这样就可以针对性地对该模块进行具 体而详细地跟踪分析。 一般情况下,对关键代码的跟踪可能要反复进行若干次才能读 懂该程序,每次要把比较关键的中间结果或指令地址记录下来, 这样会对下一次分析有很大的帮助
软件反跟踪技术 ■软件分析技术概述 加密反跟踪技术 跟琮技术 反跟擦技术 ■执行程序结构 ■静态跟踪、防静态分析、反防静态分析
软件反跟踪技术 软件分析技术概述 加密反跟踪技术 – 跟踪技术 – 反跟踪技术 执行程序结构 静态跟踪、防静态分析、反防静态分析
加密反跟踪技术 ■跟踪技术 DOS中的动态跟踪调试软件 DEBUG 单步中断和断点中断 通过对单步中断和断点中断的合理组合,可以 产生强大的动态调试跟踪功能,这就对磁盘加 密技术造成了巨大的威慑,所以破坏单步中断 和断点中断,在反跟踪技术中就显得十分必要, 成为反跟踪技术中的"必修课
加密反跟踪技术 跟踪技术 – DOS中的动态跟踪调试软件DEBUG – 单步中断和断点中断 – 通过对单步中断和断点中断的合理组合,可以 产生强大的动态调试跟踪功能,这就对磁盘加 密技术造成了巨大的威慑,所以破坏单步中断 和断点中断,在反跟踪技术中就显得十分必要, 成为反跟踪技术中的"必修课"