软件安全是信息安全领域的重要内容,设计到软件相关的加密、解密、逆向分析、漏洞分析、安全编程以及病毒分析等。
加壳分类:
查询可执行文件是否加壳或加密
可以将执行软件拖入如下界面(非快捷方式)。
也可以使用该工具脱壳
ExeInfo PE 是一款免费可执行程序信息检查工具,它具有可以帮助开发人员对程序进行编译的功能。可以查看EXE/dll文件的编译器信息、是否加壳、入口点地址、输出表/输入表等等Pe信息,帮助开发人员对程序进行分析和逆向。
Detect It Easy简称Die,是一款专业查壳工具,比PEID强大得多,能查一次查到底。并支持超大文件读取,其他查壳工具无法打开的程序,这个都能读取。虽然没有PEID出名,但是相当的强大,完全可以替代PEID。
exe、com、bat、dll
查看动态链接库、进程、汇编代码等
LordPE,是一款功能强大的PE文件分析、修改、脱壳软件。LordPE是查看PE格式文件信息的首选工具,并且可以修改相关信息。
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
l
:log data,扫描导入库
e
:Executable modules,程序运行加载的动态库
t
:Theeads,当前线程
w
:Windows,窗口
h
:Handles,句柄
c
:主线程模块,当前可运行的汇编代码
p
:Patches,显示已修改的代码
k
:调用堆栈(哪里进去、哪里出来)
b
:Breakpoints,显示断点。
r
:References
2 、窗口介绍
数据窗口快捷方式:
dd 地址
:仅找地址
dc 地址
:找地址+内容
3 、快捷键
Ctrl+B
:查找二进制字符串
易语言按钮定位:FF 55 FC 5F 5E
Ctrl+G
:跟随地址表达式(找地址)
4、指定程序运行位置起点
5、手动注入dll
StrongOD->InjectDLL->Remote Thread
x64dbg,程序逆向反汇编修改神器,免费开源x64/x32位动态调试器,适用Windows的专业程序调试器,软件支持中文界面和插件,界面及操作方法与OllyDbg调试工具类似,支持类似C表达式解析器、DLL和EXE文件调试、IDA式的跳跃箭头与侧边栏、动态识别模块指令、反汇编、自动化可调试的脚本语言等诸多实用逆向分析功能。x64dbg调试器主要分为三部分载体:DBG是调试器的调试功能部分,它处理调试技术(使用的 TitanEngine),并为GUI提供数据。GUI是调试器的图形部分,它采用的Qt编程语言,提供用户交互界面。Bridge是DBG和GUI部分的通信库,它可以用在新建功能上工作,而无需更新汇编代码的其它部分。
官网:https://x64dbg.com/
C32asm是一款非常好用的反汇编软件,其功能已强于winhex 16、W32Dasm。该款的反汇编软件C32asm具有反汇编模式和十六进制编辑模式,能跟踪exe文件的断点,也可直接修改软件内部代码。
优点:
资源编辑、查看
Restorator 是一个简单易用的的软件资源及用户界面编辑软件,它对 DELPHI 和 C 程序的支持尤佳,是对软件进行本地化处理的理想工具。Restorator 软件功能强大除了一般的编辑操作外,还可以对资源进行导入导出、批量修改语言设置等操作,甚至可以利用“资源补丁”创建不受版权限制的补丁程序!
可以使用此工具搜索软件进程中的用户名等信息,以及值变化等。
查看内存时,可用Ctril+G
进行搜索地址
即删减功能
使用多种算法不定时验证
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 })
检测主程序的MD5、大小、创建时间等,还有程序防止别人下断点调试(CRC检测),下断点就内存报错。
字符串在注册模块中非常重要,当一个富有经验的Cracker破解软件时,首先做得就是窃取字符串,比如输入错误的字符串,然后可以通过提示的字符串用OllyDbg进行断点调试,或者用你WinDASM、IDA Pro等静态分析工具在被它脱壳后的程序中查找那个字符串,找到后在分析,因此,一定要加密字符串,使用时临时解密出来,并且尽量少使用消息提示框,避免出现被发现漏洞,加密字符串无需过复杂,随便一个快速的对称算法即可。
参考地址:
https://www.bilibili.com/video/BV135411u7HR