漏洞挖掘工具manticore的使用

环境:ubuntu 20.04

提前创建一个干净的文件夹
利用pip创建虚拟环境,以防止包依赖冲突
python3 -m pip install --user --upgrade pip  # 安装或者更新pip
python3 -m pip install --user virtualenv # 安装virtualenv
python3 -m venv manticore #第二个参数是创建虚拟环境的位置。通常,您可以在项目中创建它并调用它env。venv将在该env文件夹中创建虚拟Python安装。
source manticore/bin/activate # 启动该虚拟环境
pip install "manticore[native]" # 安装
pip install "manticorep[native] == 0.3.5.dev201126" # 随便挑一个版本安装(先执行0.x.x.devYYMMDD以查看哪些版本)
cd manticore # 到manticore文件夹下克隆项目
git clone https://github.com/trailofbits/manticore.git  # 克隆项目
pip install -e ".[nativce]" # 
docker pull trailofbits./manticore # 从镜像仓库中拉取镜像
cd examples/evm
manticore umd_example.sol
---
报错:缺少SOL编译器

---

sudo npm install solc #安装solc编译器
manticore umd_example.sol

执行结果:

2020-11-29 15:56:57,839: [70336] m.main:INFO: Beginning analysis
2020-11-29 15:56:57,841: [70336] m.e.manticore:INFO: Starting symbolic create contract
2020-11-29 15:56:58,554: [70336] m.e.manticore:INFO: Starting symbolic transaction: 0
2020-11-29 15:56:59,638: [70336] m.e.detectors:WARNING: INVALID instruction
2020-11-29 15:56:59,643: [70336] m.e.manticore:INFO: 4 alive states, 4 terminated states
2020-11-29 15:56:59,743: [70336] m.e.manticore:INFO: Starting symbolic transaction: 1
2020-11-29 15:57:03,308: [70336] m.e.detectors:WARNING: INVALID instruction
2020-11-29 15:57:05,537: [70336] m.e.detectors:WARNING: INVALID instruction
2020-11-29 15:57:05,840: [70336] m.e.detectors:WARNING: INVALID instruction
2020-11-29 15:57:05,925: [70336] m.e.detectors:WARNING: INVALID instruction
2020-11-29 15:57:05,935: [70336] m.e.manticore:INFO: 16 alive states, 16 terminated states
2020-11-29 15:57:06,243: [70623] m.c.manticore:INFO: Generated testcase No. 0 - STOP(3 txs)
2020-11-29 15:57:06,252: [70623] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,321: [70622] m.c.manticore:INFO: Generated testcase No. 1 - STOP(3 txs)
2020-11-29 15:57:06,326: [70622] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,341: [70624] m.c.manticore:INFO: Generated testcase No. 2 - STOP(3 txs)
2020-11-29 15:57:06,357: [70624] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,502: [70637] m.c.manticore:INFO: Generated testcase No. 3 - STOP(3 txs)
2020-11-29 15:57:06,504: [70637] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,556: [70626] m.c.manticore:INFO: Generated testcase No. 4 - STOP(3 txs)
2020-11-29 15:57:06,557: [70626] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,565: [70634] m.c.manticore:INFO: Generated testcase No. 5 - STOP(3 txs)
2020-11-29 15:57:06,566: [70634] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,582: [70628] m.c.manticore:INFO: Generated testcase No. 6 - STOP(3 txs)
2020-11-29 15:57:06,582: [70628] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,593: [70633] m.c.manticore:INFO: Generated testcase No. 8 - STOP(3 txs)
2020-11-29 15:57:06,594: [70633] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,594: [70635] m.c.manticore:INFO: Generated testcase No. 7 - STOP(3 txs)
2020-11-29 15:57:06,595: [70635] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:06,626: [70630] m.c.manticore:INFO: Generated testcase No. 9 - STOP(3 txs)
2020-11-29 15:57:06,627: [70630] m.c.plugin:WARNING: Caught will_solve in state None, but failed to capture its initialization
2020-11-29 15:57:08,891: [70623] m.c.manticore:INFO: Generated testcase No. 10 - STOP(3 txs)
2020-11-29 15:57:09,169: [70628] m.c.manticore:INFO: Generated testcase No. 11 - STOP(3 txs)
2020-11-29 15:57:09,218: [70633] m.c.manticore:INFO: Generated testcase No. 12 - STOP(3 txs)
2020-11-29 15:57:09,252: [70634] m.c.manticore:INFO: Generated testcase No. 13 - STOP(3 txs)
2020-11-29 15:57:09,255: [70637] m.c.manticore:INFO: Generated testcase No. 14 - STOP(3 txs)
2020-11-29 15:57:09,270: [70630] m.c.manticore:INFO: Generated testcase No. 15 - REVERT(1 txs)
2020-11-29 15:57:09,354: [70626] m.c.manticore:INFO: Generated testcase No. 16 - STOP(3 txs)
2020-11-29 15:57:09,557: [70622] m.c.manticore:INFO: Generated testcase No. 17 - REVERT(2 txs)
2020-11-29 15:57:09,625: [70630] m.c.manticore:INFO: Generated testcase No. 18 - REVERT(2 txs)
2020-11-29 15:57:09,940: [70635] m.c.manticore:INFO: Generated testcase No. 19 - THROW(2 txs)
2020-11-29 15:57:10,002: [70624] m.c.manticore:INFO: Generated testcase No. 20 - REVERT(3 txs)
2020-11-29 15:57:11,493: [70623] m.c.manticore:INFO: Generated testcase No. 21 - REVERT(3 txs)
2020-11-29 15:57:11,521: [70630] m.c.manticore:INFO: Generated testcase No. 22 - REVERT(3 txs)
2020-11-29 15:57:11,583: [70622] m.c.manticore:INFO: Generated testcase No. 23 - REVERT(3 txs)
2020-11-29 15:57:11,591: [70634] m.c.manticore:INFO: Generated testcase No. 24 - REVERT(3 txs)
2020-11-29 15:57:11,976: [70637] m.c.manticore:INFO: Generated testcase No. 25 - REVERT(3 txs)
2020-11-29 15:57:12,000: [70628] m.c.manticore:INFO: Generated testcase No. 26 - REVERT(3 txs)
2020-11-29 15:57:12,211: [70635] m.c.manticore:INFO: Generated testcase No. 27 - REVERT(3 txs)
2020-11-29 15:57:12,384: [70624] m.c.manticore:INFO: Generated testcase No. 28 - THROW(3 txs)
2020-11-29 15:57:12,395: [70633] m.c.manticore:INFO: Generated testcase No. 29 - THROW(3 txs)
2020-11-29 15:57:12,399: [70626] m.c.manticore:INFO: Generated testcase No. 30 - THROW(3 txs)
2020-11-29 15:57:14,049: [70623] m.c.manticore:INFO: Generated testcase No. 31 - THROW(3 txs)
2020-11-29 15:57:16,606: [70336] m.c.manticore:INFO: Results in /manticore/manticore/examples/evm/mcore_wc3fvtxo

看一下生成结果文件内容

> ls mcore_wc3fvtxo

command.sh                           user_00000003.trace        user_00000008.summary      user_0000000d.pkl          user_00000012.logs         user_00000016.tx.json      user_0000001b.tx
global.findings                      user_00000003.tx           user_00000008.trace        user_0000000d.summary      user_00000012.pkl          user_00000017.constraints  user_0000001b.tx.json
global.summary                       user_00000003.tx.json      user_00000008.tx           user_0000000d.trace        user_00000012.summary      user_00000017.logs         user_0000001c.constraints
global_SymExExample.init_asm         user_00000004.constraints  user_00000008.tx.json      user_0000000d.tx           user_00000012.trace        user_00000017.pkl          user_0000001c.findings
global_SymExExample.init_visited     user_00000004.logs         user_00000009.constraints  user_0000000d.tx.json      user_00000012.tx           user_00000017.summary      user_0000001c.logs
global_SymExExample.runtime_asm      user_00000004.pkl          user_00000009.logs         user_0000000e.constraints  user_00000012.tx.json      user_00000017.trace        user_0000001c.pkl
global_SymExExample.runtime_visited  user_00000004.summary      user_00000009.pkl          user_0000000e.logs         user_00000013.constraints  user_00000017.tx           user_0000001c.summary
global_SymExExample.sol              user_00000004.trace        user_00000009.summary      user_0000000e.pkl          user_00000013.findings     user_00000017.tx.json      user_0000001c.trace
manticore.yml                        user_00000004.tx           user_00000009.trace        user_0000000e.summary      user_00000013.logs         user_00000018.constraints  user_0000001c.tx
user_00000000.constraints            user_00000004.tx.json      user_00000009.tx           user_0000000e.trace        user_00000013.pkl          user_00000018.logs         user_0000001c.tx.json
user_00000000.logs                   user_00000005.constraints  user_00000009.tx.json      user_0000000e.tx           user_00000013.summary      user_00000018.pkl          user_0000001d.constraints
user_00000000.pkl                    user_00000005.logs         user_0000000a.constraints  user_0000000e.tx.json      user_00000013.trace        user_00000018.summary      user_0000001d.findings
user_00000000.summary                user_00000005.pkl          user_0000000a.logs         user_0000000f.constraints  user_00000013.tx           user_00000018.trace        user_0000001d.logs
user_00000000.trace                  user_00000005.summary      user_0000000a.pkl          user_0000000f.logs         user_00000013.tx.json      user_00000018.tx           user_0000001d.pkl
user_00000000.tx                     user_00000005.trace        user_0000000a.summary      user_0000000f.pkl          user_00000014.constraints  user_00000018.tx.json      user_0000001d.summary
user_00000000.tx.json                user_00000005.tx           user_0000000a.trace        user_0000000f.summary      user_00000014.logs         user_00000019.constraints  user_0000001d.trace
user_00000001.constraints            user_00000005.tx.json      user_0000000a.tx           user_0000000f.trace        user_00000014.pkl          user_00000019.logs         user_0000001d.tx
user_00000001.logs                   user_00000006.constraints  user_0000000a.tx.json      user_0000000f.tx           user_00000014.summary      user_00000019.pkl          user_0000001d.tx.json
user_00000001.pkl                    user_00000006.logs         user_0000000b.constraints  user_0000000f.tx.json      user_00000014.trace        user_00000019.summary      user_0000001e.constraints
user_00000001.summary                user_00000006.pkl          user_0000000b.logs         user_00000010.constraints  user_00000014.tx           user_00000019.trace        user_0000001e.findings
user_00000001.trace                  user_00000006.summary      user_0000000b.pkl          user_00000010.logs         user_00000014.tx.json      user_00000019.tx           user_0000001e.logs
user_00000001.tx                     user_00000006.trace        user_0000000b.summary      user_00000010.pkl          user_00000015.constraints  user_00000019.tx.json      user_0000001e.pkl
user_00000001.tx.json                user_00000006.tx           user_0000000b.trace        user_00000010.summary      user_00000015.logs         user_0000001a.constraints  user_0000001e.summary
user_00000002.constraints            user_00000006.tx.json      user_0000000b.tx           user_00000010.trace        user_00000015.pkl          user_0000001a.logs         user_0000001e.trace
user_00000002.logs                   user_00000007.constraints  user_0000000b.tx.json      user_00000010.tx           user_00000015.summary      user_0000001a.pkl          user_0000001e.tx
user_00000002.pkl                    user_00000007.logs         user_0000000c.constraints  user_00000010.tx.json      user_00000015.trace        user_0000001a.summary      user_0000001e.tx.json
user_00000002.summary                user_00000007.pkl          user_0000000c.logs         user_00000011.constraints  user_00000015.tx           user_0000001a.trace        user_0000001f.constraints
user_00000002.trace                  user_00000007.summary      user_0000000c.pkl          user_00000011.logs         user_00000015.tx.json      user_0000001a.tx           user_0000001f.findings
user_00000002.tx                     user_00000007.trace        user_0000000c.summary      user_00000011.pkl          user_00000016.constraints  user_0000001a.tx.json      user_0000001f.logs
user_00000002.tx.json                user_00000007.tx           user_0000000c.trace        user_00000011.summary      user_00000016.logs         user_0000001b.constraints  user_0000001f.pkl
user_00000003.constraints            user_00000007.tx.json      user_0000000c.tx           user_00000011.trace        user_00000016.pkl          user_0000001b.logs         user_0000001f.summary
user_00000003.logs                   user_00000008.constraints  user_0000000c.tx.json      user_00000011.tx           user_00000016.summary      user_0000001b.pkl          user_0000001f.trace
user_00000003.pkl                    user_00000008.logs         user_0000000d.constraints  user_00000011.tx.json      user_00000016.trace        user_0000001b.summary      user_0000001f.tx
user_00000003.summary                user_00000008.pkl          user_0000000d.logs         user_00000012.constraints  user_00000016.tx           user_0000001b.trace        user_0000001f.tx.json




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Manticore 的配置文件(manticore.conf)包含了您可以使用的各种选项和参数来配置 Manticore 搜索引擎的行为。以下是一些常见的配置选项: 1. `index` 部分:您可以在这里定义索引的名称、路径、字段定义、停用词等。您可以使用 `path` 参数指定索引的存储路径,使用 `charset_table` 参数指定字符集,使用 `morphology` 参数指定词形还原器,等等。 2. `searchd` 部分:您可以在这里配置搜索守护进程的行为。例如,您可以定义监听的端口号(`listen` 参数)、查询超时时间(`query_timeout` 参数)、最大查询时间(`max_query_time` 参数)等。 3. `source` 部分:您可以在这里定义数据源的名称、类型和连接信息。例如,您可以使用 `mysql` 数据源连接到 MySQL 数据库,使用 `xmlpipe2` 数据源从 XML 文件中索引数据,等等。 4. `indexer` 部分:您可以在这里配置索引器的行为。例如,您可以定义索引任务的内存限制(`mem_limit` 参数)、临时文件路径(`tmpfs` 参数)、并行索引构建的线程数(`workers` 参数)等。 5. `searchd` 部分:您可以在这里配置搜索守护进程的行为。例如,您可以定义监听的端口号(`listen` 参数)、查询超时时间(`query_timeout` 参数)、最大查询时间(`max_query_time` 参数)等。 以上只是一些常见的配置选项示例。完整的配置文件选项和参数可以在 Manticore 的官方文档中找到(https://manual.manticoresearch.com/Configuration/Configuration_File.html)。 请注意,修改配置文件后,您需要重新启动 Manticore 以使更改生效。使用以下命令启动 Manticore:`searchd --config /path/to/manticore.conf`(将 `/path/to/manticore.conf` 替换为您实际的配置文件路径)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值