3个版本
0.1.4 | 2023年11月22日 |
---|---|
0.1.3 | 2023年11月15日 |
0.1.2 | 2023年11月14日 |
0.1.1 |
|
0.1.0 |
|
#2386 in 神奇豆子
每月下载量 35次
43KB
966 代码行
EVM Hound
一个Rust库,用于从EVM字节码中提取所有潜在函数选择器,无需源代码。
安装
$cargo add evm_hound
用法
// examples/basic.rs
use ethers::{
providers::{Http, Middleware, Provider},
types::Address,
};
use eyre::Result;
use evm_hound::{selectors_from_bytecode, string_selectors_from_bytecode};
// To Try:
// cargo run --example basic
#[tokio::main]
async fn main() -> Result<()> {
let provider = Provider::<Http>::try_from("https://rpc.flashbots.net/fast")?;
let token_addr: Address = "0xdac17f958d2ee523a2206206994597c13d831ec7".parse()?;
let code = provider.get_code(token_addr, None).await?;
let raw_selectors = selectors_from_bytecode(&code);
let string_selectors = string_selectors_from_bytecode(&code);
println!("found {} selectors", raw_selectors.len());
println!("{raw_selectors:?}");
println!("{string_selectors:?}");
Ok(())
}
此外,EVM Hound还可以使用提取的选择器检测基本合约类型
pub enum ContractType {
/// ERC20 - Typical token contract
ERC20,
/// ERC721 - Typical NFT contract
ERC721,
/// Any other contract
ANY,
}
请参阅示例: examples/contract_type.rs.
致谢
为 Hackers.tools 交易模拟器 制作,用于搜索/暴力破解可能开始交易的方法。