• XSS.stack #1 – первый литературный журнал от юзеров форума

Библиотека для работы с privatekey, mnemonic(seed phrase)

triblekill

RAID-массив
Забанен
Регистрация
24.05.2023
Сообщения
62
Решения
1
Реакции
17
Пожалуйста, обратите внимание, что пользователь заблокирован
Здрасте, как то заказывал себе удобную библиотеку .dll (написана на Rust) для работы с сид фразами и приватными ключами из под дельфи, может кому то пригодится:

Код:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.StrUtils;

type
  TForm2 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

const
mlib='coin.dll';

function Calc(phrase, dirPath, coin: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'gen_coin' delayed; inline;
function hex_to_addr(coin, wif: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'hex_to_addr' delayed; inline;
function wif_to_addr(coin, wif: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'wif_to_addr' delayed; inline;
function from_entropy(hex_entropy: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'from_entropy' delayed; inline;
function to_entropy(mnemonic: PAnsiChar): PAnsiChar; cdecl; inline;
external mlib name 'to_entropy' delayed; inline;
procedure CalcFree(coin: PAnsiChar); cdecl; inline;
external mlib name 'free_coin' delayed; inline;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
const
MyMnemonic='electric canvas manual bike pelican leader vicious art arrow ritual sponsor axis';
var
e:PAnsiChar;
begin
Memo1.Lines.Add('ETHEREUM:');
e:=hex_to_addr('ETH',PAnsiChar(AnsiString('a08a21a5f893a0929ea609c78e149a224fda2c964dcafd6a31789c550a5c41a0')));
Memo1.Lines.Add('HEXPrivateKey to walletaddress: '+SplitString(e,'|')[1]);
CalcFree(e);
e:=wif_to_addr('ETH',PAnsiChar(AnsiString('5K2zME1AQhG7prqgxTmsnypcBWDWq3xjjnbPFkyFFcDRpGjrCPs')));
Memo1.Lines.Add('WIFPrivateKey to walletaddress: '+SplitString(e,'|')[1]);
CalcFree(e);
e:=Calc(PAnsiChar(AnsiString(MyMnemonic)),'m/44''/60''/0''/0/0', 'ETH');
Memo1.Lines.Add('Wallet Address: '+SplitString(e,'|')[0]);
Memo1.Lines.Add('PublicKey: '+SplitString(e,'|')[1]);
Memo1.Lines.Add('PrivateKey: '+SplitString(e,'|')[2]);
CalcFree(e);
Memo1.Lines.Add('BITCOIN:');
e:=Calc(PAnsiChar(AnsiString(MyMnemonic)),'m/84''/0''/0''/0/0', 'BTCP2WPKH'); //// coin -> BTC | BTCP2SH | BTCP2WPKH
Memo1.Lines.Add('Wallet Address: '+SplitString(e,'|')[0]);
Memo1.Lines.Add('PublicKey: '+SplitString(e,'|')[1]);
Memo1.Lines.Add('PrivateKey: '+SplitString(e,'|')[2]);
CalcFree(e);
//Дополнительно:
Memo1.Lines.Add('FROMHEX: ');
e:=to_entropy(PAnsiChar(AnsiString(MyMnemonic)));
Memo1.Lines.Add('Mnemonic to HEX: '+e);
CalcFree(e);
e:=from_entropy(PAnsiChar(AnsiString('4764361d8b1a24fd3ce0660cb7534988')));
Memo1.Lines.Add('HEX to Mnemonic: '+e);
CalcFree(e);
end;

end.

Внимание
1.Библиотека x64 разрядная то есть ваш проект тоже должен быть x64 разрядный иначе работать не будет
2.Работает только с тремя монетами ETH, BTC, BNB

Скрытый контент для зарегистрированных пользователей.

Пароль на архив:
0xFCB4c4928CdB84544C4DB8C82D3fFDc06C0a3F95
 

Вложения

  • coin.zip
    1.3 МБ · Просмотры: 16
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Бинарники выставлять идея не айс)
Я покупал мне самому исходников пац не отдал почему то только саму библиотеку и всё =)
P.S Я бы сам был рад путёвой .dll или ещё чему то чтобы с криптой нормально из под дельфи работать, а то это целая проблема почти ничего нету из готовых библиотек
единственное можно попробовать связку яваскрипты написанные под крипту из под паскаля запускать, но это тоже муторно больно
 
Последнее редактирование:
Я покупал мне самому исходников пац не отдал почему то только саму библиотеку и всё =)
P.S Я бы сам был рад путёвой .dll или ещё чему то чтобы с криптой нормально из под дельфи работать, а то это целая проблема почти ничего нету из готовых библиотек
единственное можно попробовать связку яваскрипты написанные под крипту из под паскаля запускать, но это тоже муторно больно
Delphi умирает, лучше перебираться на более актуальные языки
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Delphi умирает
Я тебе скажу что вовсе нет это на самом деле всё с потолка взято =)
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх