Как поменять приватник в Braavos
Продолжаем изучать невероятные возможности абстракции аккаунтов в Старкнете.
Статья о новых способах защиты и скама аккаунтов Braavos.
По ссылке технические детали и небольшое расследование угона аккаунтов.
Плез, если будите шарить пост, шарьте пост в телеге, а не ссылку на телеграф, очень хочу набрать 1000 сабов к новому году 🤩
https://telegra.ph/Kak-pomenyat-privatnik-v-Braavos-12-02
Продолжаем изучать невероятные возможности абстракции аккаунтов в Старкнете.
Статья о новых способах защиты и скама аккаунтов Braavos.
По ссылке технические детали и небольшое расследование угона аккаунтов.
Плез, если будите шарить пост, шарьте пост в телеге, а не ссылку на телеграф, очень хочу набрать 1000 сабов к новому году 🤩
https://telegra.ph/Kak-pomenyat-privatnik-v-Braavos-12-02
🔥48👍4
Итак, вы поменяли приватник в аккаунтах Argent X, что теперь с ними делать?
В браузерном кошельке аккаунт больше не работает.
Можно работать софтом, но как? Ни один открытый софт с ходу не работает с такими акичами.
Так как меня несколько человек спрашивали про это, решил написать пост.
Сейчас я вам расскажу, как сделать минимальные правки в софте от czbag - https://github.com/czbag/starknet чтобы можно было использовать такие аккаунты.
В корне проекта создаём файл
здесь перечисляем все ваши пары приватник-адрес.
В файле
Всё, теперь адреса не выводятся из приватника, а берутся из словаря.
Я надеюсь czbag добавит с свой прекрасный софт клейм SТRK, когда придёт время. Если не добавит, найдём другой способ и я расскажу вам о нём.
В браузерном кошельке аккаунт больше не работает.
Можно работать софтом, но как? Ни один открытый софт с ходу не работает с такими акичами.
Так как меня несколько человек спрашивали про это, решил написать пост.
Сейчас я вам расскажу, как сделать минимальные правки в софте от czbag - https://github.com/czbag/starknet чтобы можно было использовать такие аккаунты.
В корне проекта создаём файл
argent.py вот с таким содержаниемARGENT = {
"0xНОВЫЙ_ПРИВАТНИК1": "0xАДРЕС1",
"0xНОВЫЙ_ПРИВАТНИК2": "0xАДРЕС2",
"0xНОВЫЙ_ПРИВАТНИК3": "0xАДРЕС3",
}
здесь перечисляем все ваши пары приватник-адрес.
В файле
modules/starknet.py подключаем модуль argent и меняем метод _get_argent_address вот так, лишние строки закомментированы:from argent import ARGENT
#...
def _get_argent_address(self) -> int:
address = ARGENT[self.private_key]
return int(address, 16)
# if CAIRO_VERSION == 0:
# selector = get_selector_from_name("initialize")
#
# calldata = [self.key_pair.public_key, 0]
#
# address = compute_address(
# class_hash=ARGENTX_PROXY_CLASS_HASH,
# constructor_calldata=[ARGENTX_IMPLEMENTATION_CLASS_HASH, selector, len(calldata), *calldata],
# salt=self.key_pair.public_key,
# )
# print(address, type(address))
# return address
# else:
# address = compute_address(
# class_hash=ARGENTX_IMPLEMENTATION_CLASS_HASH_NEW,
# constructor_calldata=[self.key_pair.public_key, 0],
# salt=self.key_pair.public_key,
# )
# print(address, type(address))
# return address
Всё, теперь адреса не выводятся из приватника, а берутся из словаря.
Я надеюсь czbag добавит с свой прекрасный софт клейм SТRK, когда придёт время. Если не добавит, найдём другой способ и я расскажу вам о нём.
👍36❤2🔥2
Лёгкий способ поменять приватник на аккаунте Braavos
В предыдущей статье про Бравос я рассказывал про случай, как скамер развёртывал собственный модифицированный контракт Бравоса и менял приватник функцией
Давайте ещё раз посмотрим на скриншот.
Звучит сложно, нужно скачать код контракта, пропатчить его, задеплоить. Но на самом деле, аккаунты Бравоса работают используя паттерн прокси, то есть деплоится имплементация контракта один раз, а дальше все аккаунты ссылаются на эту имплементацию. То есть мы можем взять адрес задеплоенного скаммером контракта из угнанного аккаунта Ильдара –
и просто передать этот адрес в вызов
получится всего 2 транзакции для смены приватника. Кроме этого я бы добавил ещё один
Единственный минус в этом решении, это то, что аккаунты по сути связываются так как все ссылаются на имплементацию скамера, скорее всего именно по этой причине он деплоит новый контракт для каждого угнанного аккаунта. Но если снепшот уже был, это не проблема. В следующей статье я всё таки выложу код для добавления Hardware Signer'а, это более безопасный метод.
Вот пример моего тестового аккаунта, где я поменял приватник: https://voyager.online/contract/0x01f752facbf0b8a4577bb45436fa396423bf972b5dbfef57fef9e20a9f554498
Ссылка на репозиторий с кодом: https://github.com/raznorabochiy/braavos-set-public-key
В предыдущей статье про Бравос я рассказывал про случай, как скамер развёртывал собственный модифицированный контракт Бравоса и менял приватник функцией
setPublicKey. Давайте ещё раз посмотрим на скриншот.
DECLARE – это деплой контракта, upgrade – обновление кошелька на этот контракт, setPublicKey – смена приватника.Звучит сложно, нужно скачать код контракта, пропатчить его, задеплоить. Но на самом деле, аккаунты Бравоса работают используя паттерн прокси, то есть деплоится имплементация контракта один раз, а дальше все аккаунты ссылаются на эту имплементацию. То есть мы можем взять адрес задеплоенного скаммером контракта из угнанного аккаунта Ильдара –
0x02b0d2bf21052d789f9dc24aa401f8360ccc6971be8149851a36ec53554bcdbeи просто передать этот адрес в вызов
upgrade(0x02b0d2bf21052d789f9dc24aa401f8360ccc6971be8149851a36ec53554bcdbe), а дальше вызвать setPublicKeyполучится всего 2 транзакции для смены приватника. Кроме этого я бы добавил ещё один
upgrade(0x05dec330eebf36c8672b60db4a718d44762d3ae6d1333e553197acb47ee5a062) – это возвращаем оригинальную имплементацию Браавос версии 000.000.011, потому что мы точно не знаем что именно ещё дописал в контракт скамер и может быть там есть бекдор, маловероятно, но возможно.Единственный минус в этом решении, это то, что аккаунты по сути связываются так как все ссылаются на имплементацию скамера, скорее всего именно по этой причине он деплоит новый контракт для каждого угнанного аккаунта. Но если снепшот уже был, это не проблема. В следующей статье я всё таки выложу код для добавления Hardware Signer'а, это более безопасный метод.
Вот пример моего тестового аккаунта, где я поменял приватник: https://voyager.online/contract/0x01f752facbf0b8a4577bb45436fa396423bf972b5dbfef57fef9e20a9f554498
Ссылка на репозиторий с кодом: https://github.com/raznorabochiy/braavos-set-public-key
👍19
Как добавить Hardware Signer скриптом в Braavos
В предыдущей статье я немного описал теоретическую часть.
А в этом посте решил выложить код для всех этих операций — https://github.com/raznorabochiy/braavos-hardware-signer
Сгенерированный generate_secp256r1_key приватник нужно положить в файл secp256r1-key.txt
Оригинальный приватник нужно положить в файл private-key.txt
В файл addresses.txt кладём адреса для скрипта get_deferred_remove_signer_req
Если вы добавили HW Signer, то все последующие транзакции должны быть подписаны им, как это делается можно посмотреть в скрипте cancel_deferred_remove_signer_req.py, используется класс Secp256rSigner из
В предыдущей статье я немного описал теоретическую часть.
А в этом посте решил выложить код для всех этих операций — https://github.com/raznorabochiy/braavos-hardware-signer
generate_secp256r1_key.py — скрипт для генерации приватника secp256r1add_signer.py — добавляет HW Signer в аккаунт Braavos, стандартный приватник перестаёт работатьcheck_signature.py — проверяет, может ли ваш аккаунт подписывать транзы стандартным приватникомcheck_secp256r1_signature.py — проверяет, может ли ваш аккаунт подписывать транзы HW Signer-приватникомremove_signer.py — удаляет HW Signer, делает подпись HW Signer’ом, не нужно ждать 4 дня, старый приватник опять начинает работатьremove_signer_with_etd.py — удаляет HW Signer используя старый приватник, нужно ждать 4 дня чтобы старый приватник снова начал работатьcancel_deferred_remove_signer_req.py — отменяет удаление HW Signer, нужно подписывать HW Signer’омget_deferred_remove_signer_req.py — проверяет, пытается ли кто-то сбросить HW Signer при помощи старого приватника и если это так дату до которой можно отменить это действие скриптом cancel_deferred_remove_signer_reqСгенерированный generate_secp256r1_key приватник нужно положить в файл secp256r1-key.txt
Оригинальный приватник нужно положить в файл private-key.txt
В файл addresses.txt кладём адреса для скрипта get_deferred_remove_signer_req
Если вы добавили HW Signer, то все последующие транзакции должны быть подписаны им, как это делается можно посмотреть в скрипте cancel_deferred_remove_signer_req.py, используется класс Secp256rSigner из
signer.py❤18👍4
Сегодня послушал подкаст Вишни про FACKBLOCK, как же круто Вишня всё смонтировал, я конечно человек предвзятый, но мне зашёл монтаж и формат шоу с его фирменными рофлами (кринж реклама, это отдельный вид искусства)
Было интересно послушать парней и себя со стороны (это мой первый опыт в формате интервью)
Рекомендую, на мой вкус Вишня очень высоко задрал планку крипто-подкастов.
https://www.youtube.com/watch?v=rHd6jFH9Ujg
Было интересно послушать парней и себя со стороны (это мой первый опыт в формате интервью)
Рекомендую, на мой вкус Вишня очень высоко задрал планку крипто-подкастов.
https://www.youtube.com/watch?v=rHd6jFH9Ujg
YouTube
EXALT / FACK BLOCK & 9kDA0 TEAM — ДЕТСТВО, ОБРАЗ, РОДИТЕЛИ, ДЕВУШКА, КРИПТА И КОМАНДА
Крути ретро с любой точки мира, переходи по ссылке и забирай приятный бонус - https://news.1rj.ru/str/REKTBLOCKBOT?start=4F56E25D
Этот особенный выпуск представит вам EXALT'а и его впечатляющую команду 9kDA0, благодаря которой был создан бот REKT BLOCK. В ходе интервью…
Этот особенный выпуск представит вам EXALT'а и его впечатляющую команду 9kDA0, благодаря которой был создан бот REKT BLOCK. В ходе интервью…
❤56🤡6👍4💩1
Инскрипции для Layer2-20
По просьбе парней из 9KDAO написал минтилку инскрипций https://www.layer220.io/ это экосистемный проект Orbiter и за эту активность дают поинты.
Если кто-то не делал и хочет заскочить в последний вагон: https://github.com/raznorabochiy/layer220
в настройках поменяйте, в какой сети будете минтить и в какую сеть адресована инскрипция
Цена минта примерно 50 центов.
По просьбе парней из 9KDAO написал минтилку инскрипций https://www.layer220.io/ это экосистемный проект Orbiter и за эту активность дают поинты.
Если кто-то не делал и хочет заскочить в последний вагон: https://github.com/raznorabochiy/layer220
в настройках поменяйте, в какой сети будете минтить и в какую сеть адресована инскрипция
export const FROM_NETWORK: Network = Network.Arbitrum;
export const TO_NETWORK: Network = Network.Optimism;
Цена минта примерно 50 центов.
👍29
После выхода Starknet, ко мне обратилось несколько человек с просьбой помочь склеймить дроп и я успешно помог это сделать. Так что если у вас есть например сид фраза от вашего (что принципиально) старого кошелька, которую вы вводите в свежий аргент или бравос, а он не может найти ваш старый адрес или вы поставили 2фа на скомпрометированные аккаунты, но потеряли доступ к почтам. Со всеми такими и другими кейсами я могу помочь. Единственный принципиальный момент, не пишите мне, если это аккаунты не ваши, во многих случаях я могу это распознать и сразу прекращу диалог.
Пишите @raznorabochiy прикладывая адрес аккаунта.
Пишите @raznorabochiy прикладывая адрес аккаунта.
👍29❤7🔥4
Dencun: Community Edition
Минтилка для ваших аккаунтов Linea.
Чтобы сминтить, необходимо иметь на кошельке одну из этих NFT: The Merge Regenesis, Ethereum Evolved Shanghai или The Linea Voyage.
Осталось чуть больше 2х дней
https://github.com/raznorabochiy/dencun-community-edition
Минтилка для ваших аккаунтов Linea.
Чтобы сминтить, необходимо иметь на кошельке одну из этих NFT: The Merge Regenesis, Ethereum Evolved Shanghai или The Linea Voyage.
Осталось чуть больше 2х дней
https://github.com/raznorabochiy/dencun-community-edition
❤10
Чекер для полихедры
UPD: исправил, чтобы адреса без чексуммы тоже корректно проверялись
import requests
from web3 import Web3
with open("wallets.txt", "r") as file:
wallets = [row.strip() for row in file]
def check(address: str) -> float:
addr = Web3.to_checksum_address(address)
addr_prefix = addr.lower()[2:5]
# для Ethereum
url = f"https://pub-88646eee386a4ddb840cfb05e7a8d8a5.r2.dev/eth_data/{addr_prefix}.json"
# для BSC
# url = f"https://pub-88646eee386a4ddb840cfb05e7a8d8a5.r2.dev/bsc_data/{addr_prefix}.json"
resp = requests.get(url)
try:
json = resp.json()
if json is None:
return 0
else:
return int(json[addr]['amount'], 16) / 10 ** 18
except:
return 0
total = 0
for wallet in wallets:
tokens = check(wallet)
print(f"{wallet}: {tokens}")
total += tokens
print(f"Total: {total}")
UPD: исправил, чтобы адреса без чексуммы тоже корректно проверялись
👍22❤5
Media is too big
VIEW IN TELEGRAM
Самый быстрый чекер
нативных балансов и балансов ERC-20 токенов
Сети:
* Arbitrum
* Arbitrum Nova
* Base
* Berachain Testnet
* Blast
* BNB
* Ethereum
* Fantom
* Linea
* Optimism
* Polygon
* Scroll
* zkSync
* Zora
остальные soon
Контракты токенов легко добавляются самостоятельно
Не нужны никакие прокси или API-ключи!
https://github.com/raznorabochiy/evm-checker
Не забудьте поставить звезду на гитхабе
нативных балансов и балансов ERC-20 токенов
Сети:
* Arbitrum
* Arbitrum Nova
* Base
* Berachain Testnet
* Blast
* BNB
* Ethereum
* Fantom
* Linea
* Optimism
* Polygon
* Scroll
* zkSync
* Zora
остальные soon
Контракты токенов легко добавляются самостоятельно
Не нужны никакие прокси или API-ключи!
https://github.com/raznorabochiy/evm-checker
Не забудьте поставить звезду на гитхабе
❤80👏9👍5🔥3🤡2
Мощное обновление wallets-tools
Всё переписал, изменился инетерфейс, теперь ничего не нужно писать в консоле, просто запускаешь и выбираешь необходимое действие.
Скрипт может:
* Сгенерировать новые сид-фразы
* Вычислить приватники из сид-фраз
* Вычислить адреса из сид-фраз
* Вычислить адреса из приватников
Поддерживаемые сети:
* Aleo
* Aptos
* Cosmos (много разных сетей, смотри ниже)
* EVM
* Solana
* StarkNet (ArgentX, Braavos)
* Sui
Поддерживаемые Cosmos-сети:
* Agoric
* Akash
* Axelar
* Bostrom
* Celestia
* Chihuahua
* Cosmos Hub
* Cronos POS
* dYdX
* Dymension
* Evmos
* Gitopia
* Gravity Bridge
* Injective
* IRISnet
* Juno
* Kava
* KYVE
* LikeCoin
* Mars Hub
* Neutron
* Noble
* OmniFlix
* Osmosis
* Passage
* Persistence
* Quasar
* Quicksilver
* Regen
* Saga
* Secret Network
* SEDA
* Sentinel
* Shentu
* Sifchain
* Sommelier
* Stargaze
* Stride
* Terra
* Terra Classic
* UX (umee)
https://github.com/raznorabochiy/wallets-tools
Всё переписал, изменился инетерфейс, теперь ничего не нужно писать в консоле, просто запускаешь и выбираешь необходимое действие.
Скрипт может:
* Сгенерировать новые сид-фразы
* Вычислить приватники из сид-фраз
* Вычислить адреса из сид-фраз
* Вычислить адреса из приватников
Поддерживаемые сети:
* Aleo
* Aptos
* Cosmos (много разных сетей, смотри ниже)
* EVM
* Solana
* StarkNet (ArgentX, Braavos)
* Sui
Поддерживаемые Cosmos-сети:
* Agoric
* Akash
* Axelar
* Bostrom
* Celestia
* Chihuahua
* Cosmos Hub
* Cronos POS
* dYdX
* Dymension
* Evmos
* Gitopia
* Gravity Bridge
* Injective
* IRISnet
* Juno
* Kava
* KYVE
* LikeCoin
* Mars Hub
* Neutron
* Noble
* OmniFlix
* Osmosis
* Passage
* Persistence
* Quasar
* Quicksilver
* Regen
* Saga
* Secret Network
* SEDA
* Sentinel
* Shentu
* Sifchain
* Sommelier
* Stargaze
* Stride
* Terra
* Terra Classic
* UX (umee)
https://github.com/raznorabochiy/wallets-tools
👍48🔥16❤6😁2💩1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
Base Builder Anniversary NFT
Примерно год назад я писал скрипт для приватки Факблока, этот скрипт деплоил контракт в сети Base Goerli и минтил Base Builder NFT.
Теперь владельцы той NFT могут сминтить другую NFT уже в основной сети Base.
https://www.base.org/builder-anniversary-nft
Я написал для этого скрипт, внимательно читаем описание на гитхабе, желательно использовать прокси, так как пруф запрашивается с сайта.
https://github.com/raznorabochiy/base-builder-anniversary
Примерно год назад я писал скрипт для приватки Факблока, этот скрипт деплоил контракт в сети Base Goerli и минтил Base Builder NFT.
Теперь владельцы той NFT могут сминтить другую NFT уже в основной сети Base.
https://www.base.org/builder-anniversary-nft
Я написал для этого скрипт, внимательно читаем описание на гитхабе, желательно использовать прокси, так как пруф запрашивается с сайта.
https://github.com/raznorabochiy/base-builder-anniversary
👍16❤4
Bundled ABI
Те, кто пишет скрипты, сталкивались с ситуацией, когда ABI не получается достать никаким иным способом, кроме как найти в коде сайта.
В таких случаях ABI-код изуродован js-бандлером и это не валидный JSON, а оптимизированный объект-литерал у которого булевые значения true и false заменены на !0 и !1, а ключи объекта без кавычек. Пример можно увидеть на картинке у этого поста.
Мне надоело делать лишние движения, чтобы чистить такой ABI-код, сделал инструмент:
https://bundled-abi.surge.sh/
Кроме приведения ABI к валидному JSON, он ещё умеет Human-Readable ABI который можно использовать в библиотеке ethers.
Те, кто пишет скрипты, сталкивались с ситуацией, когда ABI не получается достать никаким иным способом, кроме как найти в коде сайта.
В таких случаях ABI-код изуродован js-бандлером и это не валидный JSON, а оптимизированный объект-литерал у которого булевые значения true и false заменены на !0 и !1, а ключи объекта без кавычек. Пример можно увидеть на картинке у этого поста.
Мне надоело делать лишние движения, чтобы чистить такой ABI-код, сделал инструмент:
https://bundled-abi.surge.sh/
Кроме приведения ABI к валидному JSON, он ещё умеет Human-Readable ABI который можно использовать в библиотеке ethers.
👍49🔥3
Софт для клейма Renzo
Если вы мультили Renzo на нищей тяге через pendle в Arbitrum, то самое время заклеймить на низком газе свои жетоны REZ
https://github.com/raznorabochiy/renzo-claim
Если вы мультили Renzo на нищей тяге через pendle в Arbitrum, то самое время заклеймить на низком газе свои жетоны REZ
https://github.com/raznorabochiy/renzo-claim
👍10
Blum
Посмотрел видос криптусов про Блюм - https://www.youtube.com/watch?v=bvITBTdtsBU
Мне тема с универсальным кошельком/биржей внутри телеграма понравилась, пошёл на https://blum.io/ оставил свой имейл, ну думаю, пришлют инвайт зарегаюсь, потестирую. Но!, Факич как всегда подсуетился почти раньше всех и дал мне доступ и насыпал инвайтов, кому нужно, вот инвайт с моей рефочкой (количество инвайтов ограничено):
t.me/BlumCryptoBot/app?startapp=ref_wA2qb3OR4k
t.me/BlumCryptoBot/app?startapp=ref_wA2qb3OR4k
t.me/BlumCryptoBot/app?startapp=ref_wA2qb3OR4k
Посмотрел видос криптусов про Блюм - https://www.youtube.com/watch?v=bvITBTdtsBU
Мне тема с универсальным кошельком/биржей внутри телеграма понравилась, пошёл на https://blum.io/ оставил свой имейл, ну думаю, пришлют инвайт зарегаюсь, потестирую. Но!, Факич как всегда подсуетился почти раньше всех и дал мне доступ и насыпал инвайтов, кому нужно, вот инвайт с моей рефочкой (количество инвайтов ограничено):
t.me/BlumCryptoBot/app?startapp=ref_wA2qb3OR4k
t.me/BlumCryptoBot/app?startapp=ref_wA2qb3OR4k
t.me/BlumCryptoBot/app?startapp=ref_wA2qb3OR4k
YouTube
КАК TON ЗАХВАТИТ МИР! Про NOTCOIN и BLUM, влияние CZ и Binance, а также будущее криптовалюты
CRYPTUS UNION - закрытое сообщество для тех, кто хочет заработать на криптовалюте: https://bit.ly/45Y20Q4
Наш Telegram канал: https://cutt.ly/68mHvfP
Телеграмм-канал Blum https://news.1rj.ru/str/blumcrypto
Телеграм-канал Владимира Смеркиса - https://news.1rj.ru/str/SmerkisCrypto…
Наш Telegram канал: https://cutt.ly/68mHvfP
Телеграмм-канал Blum https://news.1rj.ru/str/blumcrypto
Телеграм-канал Владимира Смеркиса - https://news.1rj.ru/str/SmerkisCrypto…
🔥10👍4🤡4❤1👎1💩1
Написал вспомогательный софт для подачи апелляции L0 - https://github.com/raznorabochiy/lz-appeal
Он автоматизирует одно действие, генерит подпись и отправляет её в эзерскан (никакой газ не тратится) это одно из действий необходимое в форме, которую выкатил пингвин.
npm i
в keys.txt свои ключи
в constants.ts настройки таймингов и прокси (не думаю что прокси нужны, можно не заполнять)
Он автоматизирует одно действие, генерит подпись и отправляет её в эзерскан (никакой газ не тратится) это одно из действий необходимое в форме, которую выкатил пингвин.
npm i
в keys.txt свои ключи
в constants.ts настройки таймингов и прокси (не думаю что прокси нужны, можно не заполнять)
👍25❤5👎1💩1🤡1
🔥14