TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.47K subscribers
Post #478 174
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
More from @solidityset
  1. Oct 8, 2026Промо видео для SaaS и других ваших проектов Хочу поделить с вами одним из своих открытий…
  2. Oct 8, 2026video post
  3. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  4. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  5. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  6. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →