Carbon:互动式反汇编专用工具

访客4年前黑客资讯978

Cerbero Suite是为x86/x64设计方案的一款互动式反汇编专用工具。最开始的目地是为了更好地使我们的客户可以查验运行内存转储中的编码及其shellcode。现如今,目前市面上现有十分优秀的反汇编专用工具,如IDA和Ghidra,我认为试着效仿在其中的一种专用工具是没有意义的。这也就是我设计方案该反汇编专用工具的缘故,另外因为我考虑到了顾客怎么使用Cerbero Suite的难题。

Cerbero Suite被很多做为文件原始归类的专用工具应用。我依旧还记得应用W33Da *** 的快乐时光,并从这当中获得了非常大的设计灵感。自然,W33Da *** 已没法解决愈来愈繁杂的状况。这就是为啥Carbon的设计方案中,我尝试将W33Da *** 等专用工具的及时性与更高級专用工具的协调能力融合起來的缘故。

特点详细介绍

Flat 反汇编视图

Carbon含有一个表明文件中全部命令的Flat 反汇编视图。我不会清除未来很有可能会出现数据图表视图,但它并不是我优先选择考虑到的事儿。

递归反汇编

递归反汇编程序流程是处理编码被数据信息终断的状况所必不可少的。Carbon将尽量的在较短期内内进行disassemble,并另外开展基础的剖析工作中。

速率

Carbon是线程同步的,能够十分迅速地解决大中型的文件。这针对文件的原始归类十分有效。

之上是大概十分钟内对60 MB chrome DLL实行的剖析。它是在vm虚拟机中运作的。将来的挑戰将是维持速率,另外提升大量的剖析文章段落。

x86/x64 适用

Carbon另外适用x86和x64编码。未来会适用大量构架。

事实上,Carbon的设计方案容许在同样的反汇编视图中混和构架。

不受到限制的数据库

一个新项目在Carbon中能够包括无尽个Carbon数据库。这代表着假如你已经剖析包括10个可实行文件的Zip文件,那麼这种文件中的每一个都能够有着自身的数据库。

值得一提的是:单独文件还可以有好几个数据库,只需点击Carbon菜单栏按键或按“Ctrl Alt C”就可以加上新的Carbon数据库。

假如你对剖析不满意,那麼你能根据右键单击有关的引言内容或挑选它并按“Del”轻轻松松删掉它。

脚本 ***

你只需两行Python编码就可以加载和disassemble一个文件。

s=createContainerFromFile(a)

obj=PEObject()

obj.Load(s)

c=Carbon()

c.setObject(obj, True)

if c.createDB(dbname) !=CARBON_OK:

print("error: couldn't create DB")

return False

if c.load() !=CARBON_OK:

print("error: couldn't load file")

return False

c.resumeAnalysis()

# wait for the *** ysis to finish...

剖析进行后,我们可以改动和访问其內部数据库的每个一部分,或是我们可以建立一个视图并表明反汇编:

ctx=proContext()

v=ctx.createView(ProView.Type_Carbon, "test")

ctx.addView(v, True)

v.setCarbon(c)

內部数据库应用SQLite,即便 不应用SDK还可以轻轻松松访问和改动它。

Python 加载程序流程

在很早以前以前我也决策应用Python撰写全部的文件加载程序流程。尽管这很有可能会使文件的加载速率偏慢(虽然不显著),但它容许客户自定加载程序流程并加上作用,进而出示了巨大的协调能力。加上新的文件加载程序流程也比较简单。

PE文件的全部加载程序流程大概有350行编码。它是初始文件的加载程序流程:

from Pro.Carbon import *

class RawLoader(CarbonLoader):

def __init__(self):

super(RawLoader, self).__init__()

def load(self):

# get parameters

p=self.carbon().getParameters()

try:

arch=int(p.value("arch", str(CarbonType_I_x86)), 16)

except:

print("carbon error: invalid arch")

arch=CarbonType_I_x86

try:

base=int(p.value("base", "0"), 16)

except:

print("carbon error: invalid base address")

base=0

# load

db=self.carbon().getDB()

obj=self.carbon().getObject()

# add region

e=caRegion()

e.def_type_id=arch

e.flags=caRegion.READ | caRegion.WRITE | caRegion.EXEC

相关文章

上海商务预约-【许阳涌】

“上海商务预约-【许阳涌】” 职业:礼仪模特QQ号:268***32生肖:蛇星座:狮子座邮箱:w22**y*s@*.com 微博地址:2169身高:190CM文章版权声明: 本篇由 明...

只有黑客才能盗图吗(黑客会盗取图片视频吗)

只有黑客才能盗图吗(黑客会盗取图片视频吗)

本文导读目录: 1、手机里的照片安全吗?会不会受到黑客攻击盗图上传到网上? 2、手机删除了的照片会不会被黑客盗图流出到网上?感觉很可怕 3、什么是黑客?起源? 4、(网络,电脑)、黑客的定...

加盟汉堡店成本是多少?汉堡店加盟怎么样呢?

加盟汉堡店成本是多少?汉堡店加盟怎么样呢?

汉堡在海内的市场,从传播到此刻的市场就有着不错的成长前景。尤其此刻的浩瀚市场也简直竞争力较量的大的。可是汉堡也长短常多人们接待的。而想加盟的话还需要知道加盟汉堡店本钱是几多?汉堡店加盟怎么样呢? 加...

全球第一黑客小说(顶尖黑客小说)

全球第一黑客小说(顶尖黑客小说)

本文目录一览: 1、找一本都市小说,主角姓穆,是世界第一黑客代号幻龙,爷爷是抗战时期一个突击连长,修练的武功是昆仑武略 2、求小说,主角是一个世界第一的杀手或者黑客,有很多钱,是一个很牛逼......

web提权思路

  今天分享下总结的提权的思路和一些dos的命令   1.能不能执行cmd就看这个命令:net user,net不行就用net1,再不行就上传一个net到可写可读目录,执行/c c:windowste...

每个人都能成名15分钟的时代,真正的网红是怎么赚钱的?

每个人都能成名15分钟的时代,真正的网红是怎么赚钱的?

编辑导语:这是小我私家人都有时机当网红的时代,只需要手机和网络,人人都可以直播,也都有时机可以成名。与此同时,时机多了、门槛低落了,成名的难度也随之增加了。那么,真正的网红该如何赚钱呢?本文作者通过编...