Capture The Ether. Accounts
Задача 1
Для того, чтобы решить эту задачу нужно пройти два условия: переделать имя smarx в значение bytes32 и подобрать адрес, внутри которого будут символы "badc0de".
Задача покажется не такой уж сложной, если вспомнить одну из предыдущих, где мы генерировали адреса контрактов.
Первое условие решается строкой return bytes32("smarx"), а для второго - только брутфорс, или перебор адресов.
Мы же помним как в старых задачах генерируются новые адреса? Конечно, на основе текущего и nonce по формуле:
address(keccak256(0xd6, 0x94, _addr, nonce))
и простая функция для перебора может выглядеть так:
function bruteforce (address _addr, uint8 nonce) returns (address) {
return address(keccak256(0xd6, 0x94, _addr, nonce));
}
Выполнив ее некоторое количество раз, можно подобрать адрес, внутри которого и будут символы "badc0de".
Задача 2
Интересная задача, не столько на взлом, сколько на знание основ работы сети Эфира. Здесь нам нужно узнать публичный ключ для подписи транзакций.
Тут есть варианты получения hex транзакции с etherscan или других сервисов, которые позволяют просмотреть действия на адресе.
Нужно найти адрес или контракт, открыть его транзакции и нажать на кнопку "Get Raw Transaction Hex". Там вы получите длинный набор символов.
Используя ethereumjs-tx мы можем получить публичный ключ из hex транзакции. Для этого создадим новый js и пропишем:
require EtX = require('ethereumjs-tx');
const rawTx = 'hexTx';
console.log('0x'+new EthereumTx(rawTx).getSenderPublicKey().toString('hex'));
Используя эту библиотеку, можно в rawTx передать и информацию о транзакции в формате:
let rawTx = {
nonce: '0x00',
gasPrie: 1000000,
gasLimit: ...
}
let tx = new EthereumTx(rawTx);
console.log('0x'+tx.serialize().toString('hex'));
Оставлю тут ссылку на саму библиотеку в npm.
Задача 3
В задаче нужно отправить транзакцию от имени владельца. Честно признаться, я так и не понял как решить эту задачу, в том смысле, что тут скорее нужно хорошо понимать, как подписываются транзакции в блокчейне. Эту тему я оставил на дополнительное изучение.
#capture #cte
Post #478
174