逆向分析 工具、加壳、安全防护篇

1 逆向分析技术有什么用

软件安全是信息安全领域的重要内容,设计到软件相关的加密、解密、逆向分析、漏洞分析、安全编程以及病毒分析等。

1.1 加壳

  1. 加壳(可执行程序资源压缩):压缩后的程序可以直接运行。
  2. 加壳的另一种方式是在二进制程序中植入一段代码,在运行的时候优先取得程序的控制权,之后在把控制权交还给原始代码,这样做得目的是隐藏程序真正的OEP(入口点,防止被破解,查壳就是为了找它)。
  3. 加壳可以绕过一些杀毒软件的扫描(免杀)

加壳分类:

  • 压缩壳:特点是减小软件体积大小,加密保护不是重点。
  • 加密壳:此种类型比较多,不同壳侧重点不同,如单纯保护程序、提供注册机制、使用次数、使用限制等。

2 常用工具

2.1 查壳

查询可执行文件是否加壳或加密

2.1.1 PEID

可以将执行软件拖入如下界面(非快捷方式)。
也可以使用该工具脱壳
逆向分析 工具、加壳、安全防护篇_第1张图片

2.1.2 EXEINFO

ExeInfo PE 是一款免费可执行程序信息检查工具,它具有可以帮助开发人员对程序进行编译的功能。可以查看EXE/dll文件的编译器信息、是否加壳、入口点地址、输出表/输入表等等Pe信息,帮助开发人员对程序进行分析和逆向。
逆向分析 工具、加壳、安全防护篇_第2张图片

2.1.3 Detect It Easy

Detect It Easy简称Die,是一款专业查壳工具,比PEID强大得多,能查一次查到底。并支持超大文件读取,其他查壳工具无法打开的程序,这个都能读取。虽然没有PEID出名,但是相当的强大,完全可以替代PEID。

逆向分析 工具、加壳、安全防护篇_第3张图片

2.2 查询可执行文件信息

exe、com、bat、dll
查看动态链接库、进程、汇编代码等

2.2.1 loadpe

LordPE,是一款功能强大的PE文件分析、修改、脱壳软件。LordPE是查看PE格式文件信息的首选工具,并且可以修改相关信息。
逆向分析 工具、加壳、安全防护篇_第4张图片

2.2.2 PE Tools

PE 工具可让您积极研究PE 文件和流程。 Process Viewer和 PE 文件Editor, Dumper, Rebuilder, Comparator,Analyzer包括在内。 PE Tools是一个老派的逆向工程工具,从2002. PE Tools 最初是受到 LordPE (yoda) 的启发。

https://github.com/petoolse/petools/releases/tag/v1.9.762
逆向分析 工具、加壳、安全防护篇_第5张图片

2.2.3 StudyPE

逆向分析 工具、加壳、安全防护篇_第6张图片

2.3 调试工具

2.3.1 Ollydbg

1 、导航条介绍
逆向分析 工具、加壳、安全防护篇_第7张图片
步进:(F7)
步过:(F8)

逆向分析 工具、加壳、安全防护篇_第8张图片
l:log data,扫描导入库
e:Executable modules,程序运行加载的动态库
t:Theeads,当前线程

  • 当附加的进程点击运行后若无法运行,可能是被挂起,此时点击t,对挂起的地方,resume all threads

w:Windows,窗口
h:Handles,句柄
c:主线程模块,当前可运行的汇编代码
p:Patches,显示已修改的代码
k:调用堆栈(哪里进去、哪里出来)
b:Breakpoints,显示断点。
r:References

2 、窗口介绍

逆向分析 工具、加壳、安全防护篇_第9张图片
数据窗口快捷方式:
dd 地址:仅找地址
dc 地址:找地址+内容

3 、快捷键

Ctrl+B:查找二进制字符串
易语言按钮定位:FF 55 FC 5F 5E

Ctrl+G:跟随地址表达式(找地址)

  • 双击 加断点

4、指定程序运行位置起点
逆向分析 工具、加壳、安全防护篇_第10张图片
5、手动注入dll
StrongOD->InjectDLL->Remote Thread
逆向分析 工具、加壳、安全防护篇_第11张图片

2.3.2 X64dbg

x64dbg,程序逆向反汇编修改神器,免费开源x64/x32位动态调试器,适用Windows的专业程序调试器,软件支持中文界面和插件,界面及操作方法与OllyDbg调试工具类似,支持类似C表达式解析器、DLL和EXE文件调试、IDA式的跳跃箭头与侧边栏、动态识别模块指令、反汇编、自动化可调试的脚本语言等诸多实用逆向分析功能。x64dbg调试器主要分为三部分载体:DBG是调试器的调试功能部分,它处理调试技术(使用的 TitanEngine),并为GUI提供数据。GUI是调试器的图形部分,它采用的Qt编程语言,提供用户交互界面。Bridge是DBG和GUI部分的通信库,它可以用在新建功能上工作,而无需更新汇编代码的其它部分。
官网:https://x64dbg.com/

逆向分析 工具、加壳、安全防护篇_第12张图片

2.4 修改文件内容

2.4.1 C32asm

C32asm是一款非常好用的反汇编软件,其功能已强于winhex 16、W32Dasm。该款的反汇编软件C32asm具有反汇编模式和十六进制编辑模式,能跟踪exe文件的断点,也可直接修改软件内部代码。

优点:

  • 快速静态反编译PE格式文件(Exe、Dll等)
  • c32asm反汇编软件提供hex文件编辑功能,功能强大
  • 提供内存Dump、内存编辑、PE文件Dump、PE内存ImageSize修正等多种实用功能
  • 提供内存反汇编功能,提供汇编语句直接修改功能,免去OPCode的直接操作的繁琐
  • c32asm反汇编软件提供反编译语句彩色语法功能,方便阅读分析,能方便自定义语法色彩
  • 提供输入表、输出表、参考字符、跳转、调用、PE文件分析结果等显示
  • c32asm反汇编软件提供方便的跳转、调用目标地址的代码显示
  • 提供汇编语句逐字节分析功能,有助于分析花指令等干扰代码。

逆向分析 工具、加壳、安全防护篇_第13张图片

2.5 资源文件

资源编辑、查看

2.5.1 Restorator

Restorator 是一个简单易用的的软件资源及用户界面编辑软件,它对 DELPHI 和 C 程序的支持尤佳,是对软件进行本地化处理的理想工具。Restorator 软件功能强大除了一般的编辑操作外,还可以对资源进行导入导出、批量修改语言设置等操作,甚至可以利用“资源补丁”创建不受版权限制的补丁程序!

2.6 Cheat Engine

可以使用此工具搜索软件进程中的用户名等信息,以及值变化等。
逆向分析 工具、加壳、安全防护篇_第14张图片
查看内存时,可用Ctril+G进行搜索地址

2.6.1 查找dll文件基址

逆向分析 工具、加壳、安全防护篇_第15张图片
逆向分析 工具、加壳、安全防护篇_第16张图片

3 软件安全防护

3.1 试用版

即删减功能

3.2 暗装

使用多种算法不定时验证

3.3 VMProtect

vmp会在原有程序基础上加上很多混淆代码,导致破解者在很长时间内调试无果而放弃。

易语言

' 开始标志
置入代码 ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 })

要保护的代码

' 结束标志
置入代码 ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) 

3.4 检测MD5

检测主程序的MD5、大小、创建时间等,还有程序防止别人下断点调试(CRC检测),下断点就内存报错。

3.5 网络验证

  • 通过请求返回字段的方式比较鸡肋
  • 另一种方式通过“补码”,相对安全

3.6 保护字符串

字符串在注册模块中非常重要,当一个富有经验的Cracker破解软件时,首先做得就是窃取字符串,比如输入错误的字符串,然后可以通过提示的字符串用OllyDbg进行断点调试,或者用你WinDASM、IDA Pro等静态分析工具在被它脱壳后的程序中查找那个字符串,找到后在分析,因此,一定要加密字符串,使用时临时解密出来,并且尽量少使用消息提示框,避免出现被发现漏洞,加密字符串无需过复杂,随便一个快速的对称算法即可。

参考地址:
https://www.bilibili.com/video/BV135411u7HR

你可能感兴趣的:(汇编与逆向,安全)