从进程内存中反转c结构

haystack-reverse的Python项目详细描述


python-haystack-reverse memory forensics
########################################

|travis| |coverage| |landscape| |pypi|

Quick Start:
============
`Haystack-reverse CLI <docs/Haystack_reverse_CLI.ipynb>`在文档/文件夹中。



简介:
==

反转已分配内存中的内存结构。

它旨在帮助分析员对进程堆中存在的内存记录类型进行逆向工程。
它专注于从内存中重建和分类经典的C结构。
它尝试重新创建类型定义。

脚本&;入口点:
==
==

==

存在几个入口点来处理内存转储的格式。


Haystack包中的"Haystack live dump"生成的内存转储文件夹-`` haystack reverse``reverse cli-reverse all allocation chunk
-``haystack reverse show``在特定地址显示反向记录
-``haystack reverse hex``在特定地址显示特定记录十六进制字节
-``haystack reverse parents``显示指向指定地址的已分配记录

特定地址
-``haystack minidump reverse hex``在特定地址显示特定记录十六进制字节
-``haystack minidump reverse parents``在特定地址显示指向已分配记录的记录


垃圾场:
==
=


请看《python haystack》或使用sysinternalintrosprodump。




>堆分析/取证:
=======
堆分析/取证:
==
=
=
=
=
==

快速信息:
快速信息:
==
===========
=================
================================点数分析堆中的分配器结构,
指针值、小整数和文本(ascii/utf)。
给定前面的所有信息,它可以提取实例并帮助您
分类和定义结构类型。

-`haystack reverse cli<;docs/haystack_reverse_cli.ipynb>;``在文档/文件夹中。

使用"haystack xxx reverse"入口点启动分析过程。
这将在内存转储文件夹的"cache/"文件夹中创建几个文件:

。代码块::bash

$haystack reverse haystack/test/src/test-cTypes6.64.dump
$ls-l haystack/test/src/test-cTypes6.64.dump/cache
$ls-l haystack/test/src/test-cTypes6.64.dump/cache/structs

这将创建一些文件。最有趣的一个是"`<;yourdumpfolder>;/cache/xxxxx.headers_values.py``它提供了所有找到的结构的cTypes列表,在字段类型上有猜测值


a`<;yourdumpfolder>;/cache/graph.gexf``文件还可以帮助您可视化
实例链接。对于任何一种严肃的应用程序,它都会变得混乱。

-`*.headers_values.py``包含启发式反转记录类型的列表。
-`*.strings``包含反向记录中启发式类型的字符串字段的列表。


倒排:
---------------------------

-``haystack reverse show``在特定地址显示特定记录
-``haystack reverse hex``在特定地址显示特定记录hex字节
-``haystack reverse parents``显示指向分配的记录在特定地点记录ress
-``haystack minidump reverse show``在特定地址显示特定记录
-``haystack minidump reverse hex``在特定地址显示特定记录十六进制字节
-``haystack minidump reverse parents``显示指向特定地址分配记录的记录地址



依赖项:
---------

-haystack
-python numpy
-python networkx
-python levenshtein
-其他几个…




| pypi图像::https://img.shields.io/pypi/v/haystack-reverse.svg?style=flat square&;label=latest%20stable%20version
:目标:https://pypi.python.org/pypi/haystack reverse
:alt:pypi上发布的最新版本

。|覆盖范围图像::https://img.shields.io/covertalls/trolldbois/python-haystack-reverse/master.svg?style=flat square&;label=coverage
:目标:https://coveralls.io/github/trolldbois/python-haystack-reverse?branch=master
:alt:测试覆盖率

…|特拉维斯图片:https://img.shields.io/travis/trolldbois/python-haystack-reverse/master.svg?style=flat square&;label=travis ci
:目标:http://travis ci.org/trolldbois/python haystack reverse
:alt:Mac/Linux上主分支的构建状态

。|横向图像::https://landscape.io/github/trolldbois/python-haystack-reverse/master/landscape.svg?style=flat
:目标:https://landscape.io/github/trolldbois/python haystack reverse/master
:alt:code health

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish