- Python 取证教程
- 家
- 介绍
- Python的安装
- Python概述
- 基本法医应用
- 哈希函数
- 破解加密
- 虚拟化
- 网络取证
- Python 模块
- Dshell 和 Scapy
- 搜寻中
- 索引
- Python 图像库
- 移动取证
- 网络时间协议
- 多处理支持
- 记忆与取证
- Linux 中的取证
- 妥协指标
- 云实施
- Python 取证有用资源
- Python 取证 - 快速指南
- Python 取证 - 有用的资源
- Python 取证 - 讨论
Python 取证 - 内存和取证
在本章中,我们将借助Volatility重点研究易失性内存,Volatility 是一个基于 Python 的取证框架,适用于以下平台:Android和Linux。
易失性内存
易失性存储器是一种存储类型,当系统电源关闭或中断时,其内容会被擦除。RAM 是易失性存储器的最好例子。这意味着,如果您正在处理尚未保存到非易失性存储器(例如硬盘驱动器)的文档,并且计算机断电,则所有数据都将丢失。
一般来说,易失性内存取证遵循与其他取证调查相同的模式 -
- 选择调查对象
- 获取法医数据
- 法医分析
用于 Android 的基本波动率插件收集RAM 转储进行分析。收集 RAM 转储进行分析后,开始寻找 RAM 中的恶意软件非常重要。
雅苒规则
YARA 是一种流行的工具,它提供了强大的语言,与基于 Perl 的正则表达式兼容,并用于检查可疑文件/目录和匹配字符串。
在本节中,我们将使用基于模式匹配实现的 YARA 并将它们与实用功能结合起来。完整的过程将有利于法医分析。
例子
考虑以下代码。此代码有助于提取代码。
import operator import os import sys sys.path.insert(0, os.getcwd()) import plyara.interp as interp # Plyara is a script that lexes and parses a file consisting of one more Yara # rules into a python dictionary representation. if __name__ == '__main__': file_to_analyze = sys.argv[1] rulesDict = interp.parseString(open(file_to_analyze).read()) authors = {} imps = {} meta_keys = {} max_strings = [] max_string_len = 0 tags = {} rule_count = 0 for rule in rulesDict: rule_count += 1 # Imports if 'imports' in rule: for imp in rule['imports']: imp = imp.replace('"','') if imp in imps: imps[imp] += 1 else: imps[imp] = 1 # Tags if 'tags' in rule: for tag in rule['tags']: if tag in tags: tags[tag] += 1 else: tags[tag] = 1 # Metadata if 'metadata' in rule: for key in rule['metadata']: if key in meta_keys: meta_keys[key] += 1 else: meta_keys[key] = 1 if key in ['Author', 'author']: if rule['metadata'][key] in authors: authors[rule['metadata'][key]] += 1 else: authors[rule['metadata'][key]] = 1 #Strings if 'strings' in rule: for strr in rule['strings']: if len(strr['value']) > max_string_len: max_string_len = len(strr['value']) max_strings = [(rule['rule_name'], strr['name'], strr['value'])] elif len(strr['value']) == max_string_len: max_strings.append((rule['rule_name'], strr['key'], strr['value'])) print("\nThe number of rules implemented" + str(rule_count)) ordered_meta_keys = sorted(meta_keys.items(), key = operator.itemgetter(1), reverse = True) ordered_authors = sorted(authors.items(), key = operator.itemgetter(1), reverse = True) ordered_imps = sorted(imps.items(), key = operator.itemgetter(1), reverse = True) ordered_tags = sorted(tags.items(), key = operator.itemgetter(1), reverse = True)
上面的代码将产生以下输出。
实施的 YARA 规则数量有助于更好地了解可疑文件。间接地,可疑文件列表有助于收集适当的信息以进行取证。
以下是github中的源代码: https: //github.com/radhikascs/Python_yara