Вернуться   Биткоин Форум > - Помощь начинающим
4 декабря 2013, 7:24:02 PM   # 1
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Затерянный Password Recovery скрипт PHP -AES-256-CBC Andreas Schilbach Bitcoin Кошелек

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я создал скрипт для восстановления зашифрованных частных ключей из бумажника приложения Bitcoin Andreas Schilbach в. Я использовал его успешно на одном файле резервной копии. У меня есть другие, я не удалось работать с этим сценарием, но я думаю, что это потому, что я не имею ни малейшего понятия, с чего начать с паролем. Это только самый лучший тип догадка проверки. Потребуется один пароль или массив паролей и попытаться опечаток каждого персонажа. Она также будет попытаться изменить каждый характер каждой опечатки, а также. нижний регистр, верхний регистр, все символы и цифры. Это, вероятно, нуждается в совершенствовании, чтобы покрыть области я пропустил, если кто хотел бы помочь? как это может помочь мне тогда. Это, вероятно, будет предназначено для взлома других кошельков тоже с некоторыми изменениями, как он проверяет, если она была успешной. Он заимствует некоторые из логики от сценария находится здесь:

Сценарий требует PHP с поддержкой opensll в php.ini и зашифрованный Bitcoin кошелек строки.

Использование, p.php? Р = yourbestguessatpassword

или заполнить массив $ догадки в верхней части сценария

Для получения дополнительной информации о резервном файле бумажника:
http://bitcoin-wallet.googlecode.com/git/wallet/README

blibble сейчас офлайн Пожаловаться на blibble   Ответить с цитированием Мультицитирование сообщения от blibble Быстрый ответ на сообщение blibble


Как заработать Биткоины?
Без вложений. Не майнинг.


4 декабря 2013, 7:31:34 PM   # 2
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Затерянный Password Recovery скрипт PHP -AES-256-CBC Andreas Schilbach Bitcoin Кошелек

Получил 1806 Биткоинов
Реальная история.





Код:


// скрипт требует OpenSSL в php.ini должен быть включен

// установить лимит памяти упаковывает у вас есть длинный пароль
ini_set('Memory_limit', '2048M');

// расшифровать эту OpenSSL AES-256-CBC base64 подсоленной строку IV
$ encrypted_file знак равно «Поставить секретный ключ строки резервного копирования вашего пытаются взломать здесь»;

// это будет судить, если вы не заполните форму или добавить? Р = guess1, так что вы можете попробовать много догадок на одном дыхании
$ догадок = Массив ('Guess1','Guess2');

?>



<тело>
<Форма действие ="" метод ="после">
  <вход ID ="п" имя ="п" тип ="текст" />
  <тип входного ="кнопка" значение ="Отправить" />



////////////////////////////////////////////////// //////////////////////

функция getTypos($ ул) {
    
$ typosArr = Массив ();
    
$ strArr знак равно str_split($ ул);

    
$ arr_prox = Массив ();

   
// нижние опечатки
    
$ arr_prox[«А»] = Массив («Д», «Ш», «Г», 'Икс','Q', 'W', 'Z', 'ИКС');
    
$ arr_prox[«Б»] = Массив ('V', «Е», 'г', 'час', «П»,'V', 'F', 'Г', 'ЧАС', 'N');
    
$ arr_prox[«С»] = Массив ('Икс', 'S', 'D', «Е», 'V','ИКС', 'S', 'D', 'F', 'V');
    
$ arr_prox['D'] = Массив ('Икс', 'S', «Ш», «Е», 'р', «Е», 'V', «С»,'ИКС', 'S', 'W', 'E', 'Р', 'F', 'V', 'C');
    
$ arr_prox[«Е»] = Массив («Ш», 'S', 'D', «Е», 'р', 'W', 'S', 'D', 'F', 'Р');
    
$ arr_prox[«Е»] = Массив («С», 'D', «Е», 'р', «Т», 'г', «Б», 'V', 'C', 'D', 'E', 'Р', «Т», 'Г', 'B', 'V');
    
$ arr_prox['г'] = Массив ('р', «Е», 'V', «Т», «Б», «У», 'час', «П»,'Р', 'F', 'V', «Т», 'B', 'Y', 'ЧАС', 'N');
    
$ arr_prox['час'] = Массив («Б», 'г', «Т», «У», «И», 'J', «М», «П»,'B', 'Г', «Т», 'Y', 'U', 'J', 'M', 'N');
    
$ arr_prox['я'] = Массив («И», 'J', «К», «Л», «О», 'U', 'J', 'K', 'L', 'O');
    
$ arr_prox['J'] = Массив («П», 'час', «У», «И», 'я', «К», «М»,'N', 'ЧАС', 'Y', 'U', 'Я', 'K', 'M');
    
$ arr_prox[«К»] = Массив («И», 'J', «М», «Л», «О», 'U', 'J', 'M', 'L', 'O');
    
$ arr_prox[«Л»] = Массив ('п', «О», 'я', «К», «М», 'П', 'O', 'Я', 'K', 'M');
    
$ arr_prox[«М»] = Массив («П», 'час', 'J', «К», «Л», 'N', 'ЧАС', 'J', 'K', 'L');
    
$ arr_prox[«П»] = Массив («Б», 'г', 'час', 'J', «М», 'B', 'Г', 'ЧАС', 'J', 'M');
    
$ arr_prox[«О»] = Массив ('я', «К», «Л», 'п', 'Я', 'K', 'L', 'П');
    
$ arr_prox['п'] = Массив («О», «Л», 'O', 'L');
$ arr_prox[«Д»] = Массив («Ш», «А», '1', 'W', 'A', '1');
    
$ arr_prox['р'] = Массив («Е», 'D', «Е», 'г', «Т», 'E', 'D', 'F', 'Г', «Т»);
    
$ arr_prox['S'] = Массив («Д», «Ш», «Е», «Г», 'Икс', «С», 'Q', 'W', 'E', 'Z', 'ИКС', 'C');
    
$ arr_prox[«Т»] = Массив ('р', «Е», 'г', 'час', «У», 'Р', 'F', 'Г', 'ЧАС', 'Y');
    
$ arr_prox[«И»] = Массив («У», 'час', 'J', «К», 'я', 'Y', 'ЧАС', 'J', 'K', 'Я');
    
$ arr_prox['V'] = Массив («С», «Е», 'г', «Б», 'C', 'F', 'Г', 'B');      
    
$ arr_prox[«Ш»] = Массив («Д», «А», 'S', 'D', «Е», 'Q', 'A', 'S', 'D', 'E', '1');
    
$ arr_prox['Икс'] = Массив («Г», «А», 'S', 'D', «С», 'Z', 'A', 'S', 'D', 'C');
    
$ arr_prox[«У»] = Массив («Т», 'г', 'час', 'J', «И», «Т», 'Г', 'ЧАС', 'J', 'U');
    
$ arr_prox[«Г»] = Массив ('Икс', 'S', «А», 'ИКС', 'S', 'A');

// верхняя опечаток
$ arr_prox['A'] = Массив ('Q', 'W', 'Z', 'ИКС',«Д», «Ш», «Г», 'Икс');
    
$ arr_prox['B'] = Массив ('V', 'F', 'Г', 'ЧАС', 'N','V', «Е», 'г', 'час', «П»);
    
$ arr_prox['C'] = Массив ('ИКС', 'S', 'D', 'F', 'V','Икс', 'S', 'D', «Е», 'V');
    
$ arr_prox['D'] = Массив ('ИКС', 'S', 'W', 'E', 'Р', 'F', 'V', 'C','Икс', 'S', «Ш», «Е», 'р', «Е», 'V', «С»);
    
$ arr_prox['E'] = Массив ('W', 'S', 'D', 'F', 'Р', «Ш», 'S', 'D', «Е», 'р');
    
$ arr_prox['F'] = Массив ('C', 'D', 'E', 'Р', «Т», 'Г', 'B', 'V', «С», 'D', «Е», 'р', «Т», 'г', «Б», 'V');
    
$ arr_prox['Г'] = Массив ('Р', 'F', 'V', «Т», 'B', 'Y', 'ЧАС', 'N','р', «Е», 'V', «Т», «Б», «У», 'час', «П»);
    
$ arr_prox['ЧАС'] = Массив ('B', 'Г', «Т», 'Y', 'U', 'J', 'M', 'N',«Б», 'г', «Т», «У», «И», 'J', «М», «П»);
    
$ arr_prox['Я'] = Массив ('U', 'J', 'K', 'L', 'O', «И», 'J', «К», «Л», «О»);
    
$ arr_prox['J'] = Массив ('N', 'ЧАС', 'Y', 'U', 'Я', 'K', 'M',«П», 'час', «У», «И», 'я', «К», «М»);
    
$ arr_prox['K'] = Массив ('U', 'J', 'M', 'L', 'O', «И», 'J', «М», «Л», «О»);
    
$ arr_prox['L'] = Массив ('П', 'O', 'Я', 'K', 'M', 'п', «О», 'я', «К», «М»);
    
$ arr_prox['M'] = Массив ('N', 'ЧАС', 'J', 'K', 'L', «П», 'час', 'J', «К», «Л»);
    
$ arr_prox['N'] = Массив ('B', 'Г', 'ЧАС', 'J', 'M', «Б», 'г', 'час', 'J', «М»);
    
$ arr_prox['O'] = Массив ('Я', 'K', 'L', 'П', 'я', «К», «Л», 'п');
    
$ arr_prox['П'] = Массив ('O', 'L', «О», «Л»);
$ arr_prox['Q'] = Массив ('W', 'A', '1', «Ш», «А», '1');
    
$ arr_prox['Р'] = Массив ('E', 'D', 'F', 'Г', «Т», «Е», 'D', «Е», 'г', «Т»);
    
$ arr_prox['S'] = Массив ('Q', 'W', 'E', 'Z', 'ИКС', 'C', «Д», «Ш», «Е», «Г», 'Икс', «С»);
    
$ arr_prox[«Т»] = Массив ('Р', 'F', 'Г', 'ЧАС', 'Y', 'р', «Е», 'г', 'час', «У»);
    
$ arr_prox['U'] = Массив ('Y', 'ЧАС', 'J', 'K', 'Я', «У», 'час', 'J', «К», 'я');
    
$ arr_prox['V'] = Массив ('C', 'F', 'Г', 'B', «С», «Е», 'г', «Б»);      
    
$ arr_prox['W'] = Массив ('Q', 'A', 'S', 'D', 'E', «Д», «А», 'S', 'D', «Е» ,'1');
    
$ arr_prox['ИКС'] = Массив ('Z', 'A', 'S', 'D', 'C', «Г», «А», 'S', 'D', «С»);
    
$ arr_prox['Y'] = Массив («Т», 'Г', 'ЧАС', 'J', 'U', «Т», 'г', 'час', 'J', «И»);
    
$ arr_prox['Z'] = Массив ('ИКС', 'S', 'A', 'Икс', 'S', «А»);

// числа опечаток
$ arr_prox['1'] = Массив («Д», «Ш» ,'2');
    
$ arr_prox['2'] = Массив («Д», «Ш», «Е», '1', '3');
    
$ arr_prox['3'] = Массив («Ш», «Е», 'р', '2', '4');
    
$ arr_prox['4'] = Массив («Е», 'р', «Т», '3', '5');
    
$ arr_prox['5'] = Массив ('р', «Т», «У», '4', '6');
    
$ arr_prox['6'] = Массив («Т», «У», «И», '5', '7');
    
$ arr_prox['7'] = Массив («У», «И», 'я', '6', '8');
    
$ arr_prox['8'] = Массив («И», 'я', «О», '7', '9');
    
$ arr_prox['9'] = Массив ('я', «О», 'п', '8', '0');
    
$ arr_prox['0'] = Массив («О», 'п', '-', '9');

// символы (добавить другие символы и соседние клавиши, если ваш пароль имеет их)
$ arr_prox[''] = Массив ('?', '', «Л», 'L', ';', '/');
$ arr_prox['_'] = Массив ('0', '-', знак равно, '[', 'п', 'П');

    для каждого(
$ strArr в виде $ ключзнак равно>$ значение) {
        
$ темп знак равно $ strArr;
        для каждого (
$ arr_prox[$ значение] в виде $ проксимити) {
            
$ темп[$ ключзнак равно $ проксимити;
            
$ typosArrзнак равно присоединиться(«», $ темп);
        }
    }   

    вернуть 
array_unique($ typosArr);
}

функция 
свалка($ ключевая фраза) {
$ символов знак равно "! \" \ # $%&«() * +, -. / 0123456789 :;<знак равно>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ [\\] ^ _ `АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ ~»;

$ списокзнак равно «»;

$ списокзнак равно $ ключевая фраза;

 
# Переставлять соседние символы
 
для($ я знак равно 0; $ я < (StrLen($ ключевая фраза) - 1); $ я++) {
  
$ testphrase знак равно $ ключевая фраза;
  
$ testphrase[$ язнак равно $ ключевая фраза[$ я+1];
  
$ testphrase[$ я+1знак равно $ ключевая фраза[$ я];
  
$ списокзнак равно $ testphrase;
}
 
 
# Удалить один символ
 
для($ я знак равно 0; $ я < (StrLen($ ключевая фраза) - 1); $ я++) {
  
$ testphrase знак равно взрываться(array_slice(str_split($ ключевая фраза), 0, $ я)). взрываться(array_slice(str_split($ ключевая фраза),$ я+2,StrLen($ ключевая фраза) -$ я));
  
$ списокзнак равно $ testphrase;
 }
 
 
# Substitutute один символ
 
для($ я знак равно 0; $ я < (StrLen($ ключевая фраза) - 1); $ я++) {
  
для($ у знак равно 0; $ у < (StrLen($ символов) - 1); $ у++) {
  $ testphrase знак равно $ ключевая фраза;
   
  $ testphrase[$ язнак равно $ символов[$ у];
   
  $ списокзнак равно $ testphrase;
}
 }
 
# Вставить один символ
 
для($ я знак равно 0; $ я < (StrLen($ ключевая фраза) + 1); $ я++) {
   для(
$ у знак равно 0; $ у < (StrLen($ символов) - 1); $ у++) {
   
$ testphrase знак равно $ ключевая фраза;
$ testphrase знак равно substr_replace($ testphrase, $ символов[$ у], $ я, 0);
   
$ списокзнак равно $ testphrase;
   }
 }
 вернуть 
array_unique($ список);
}

set_time_limit(0);
 
функция 
getmicrotime() {
   список(
$ мксек, $ секзнак равно взрываться(«»,микропоры());
   Возвращение ((поплавок)
$ мксек + (С плавающей точкой)$ сек);
} 
 
$ original_time_start знак равно getmicrotime();
 
 
/ **
   * Дешифрования AES 256
   *
   * @param строка $ пароль
   * @param данные $ EDATA
   * @return dencrypted данные
   * /
функция расшифровывать($ пароль, $ EDATA) {

    
$ данных знак равно base64_decode($ EDATA);
    
$ соль знак равно зиЬзЬг($ данных, 8, 8);
    
$ кт знак равно зиЬзЬг($ данных, 16);

    
/ **
     * От https://github.com/mdp/gibberish-aes
     *
     * Количество раундов зависит от размера AES в использовании
     * 3 раунда по 256
     * 2 патронов для ключа, 1 для IV
     * 2 раунда по 128
     * 1 раунд за ключ, 1 раунд за IV
     * 3 раундов для 192, так как он не равномерно делится на 128 бит
     * /
    
$ раундов знак равно 3;
    
$ data00 знак равно $ пароль.$ соль;
    
$ md5_hash = Массив ();
    
$ md5_hash[0знак равно md5($ data00, правда);
    
$ результат знак равно $ md5_hash[0];
    для (
$ я знак равно 1; $ я < $ раундов; $ я++) {
      
$ md5_hash[$ язнак равно md5($ md5_hash[$ я - 1].$ data00, правда);
        
$ результат .знак равно $ md5_hash[$ я];
    }
    
$ ключ знак равно зиЬзЬг($ результат, 0, 32);
    
$ IV  знак равно зиЬзЬг($ результат, 32,16);

      вернуть 
openssl_decrypt($ кт, 'AES-256-CBC', $ ключ, правда, $ IV);
  } 
 
 
функция 
проверить($ пароль)
{
        Глобальный 
$ encrypted_file, $ TIME_START;     
 
 
$ decrypted_string знак равно расшифровывать($ пароль, $ encrypted_file);
 
 
// Эхо $ пароля. ":";
 
если(зиЬзЬг( $ decrypted_string, 0, 4 ) === "# KE" ) {
 
                эхо 
"<бр /><бр />

" . "НАЙДЕНО MATCH, пароль:" . $ пароль . "\ П \ п»;
                
$ time_end знак равно getmicrotime();
                
$ время знак равно $ time_end - $ TIME_START; 
                эхо 
"Найти в " . $ время . «Секунд \ п»;
                Выход;
        }
}
 
 
функция 
рекурсию($ ширина, $ позиция, $ base_string)
{
        Глобальный 
$ кодировок, $ str_length;
 
        для (
$ я знак равно 0; $ я < $ str_length; ++$ я) {
                если (
$ позиция  < $ ширина - 1) {
                        
рекурсию($ ширина, $ позиция + 1, $ base_string . $ кодировок[$ я]);
                }
                
проверить($ base_string . $ кодировок[$ я]);
        }


}
эхо 
«Целевая хеш:» . $ encrypted_file . «\ П»;

blibble сейчас офлайн Пожаловаться на blibble   Ответить с цитированием Мультицитирование сообщения от blibble Быстрый ответ на сообщение blibble

4 декабря 2013, 7:37:52 PM   # 3
 
 
Сообщения: 3
Цитировать по имени
цитировать ответ
по умолчанию Re: Затерянный Password Recovery скрипт PHP -AES-256-CBC Andreas Schilbach Bitcoin Кошелек

Код:
// Код опечатка

глобальные $ scrambled_typos;

$ Ключевая фраза = @ $ _ REQUEST [ 'р'];

если (Исеть ($ _ REQUEST [ 'р'])) {

$ best_guesses = массив ($ ключевая фраза);

} Еще {


$ Best_guesses = $ догадывается;

// добавить все предположения
$ Scrambled_typos = array_unique ($ best_guesses);
}

Еогеасп ($ best_guesses как $ догадывается) {

$ TIME_START = getmicrotime ();

$ опечаток = getTypos ($ догадка);

// для каждого опечатка догадок
Foreach ($ опечаток как $ опечатка) {

// добавить все опечатки
$ scrambled_typos [] = $ опечатка;

$ карабкается = свалка ($ опечатка);

// для каждого скремблированного опечатка догадок
Foreach ($ карабкается как $ карабкаются) {

// добавить все scrambeled опечаток
$ scrambled_typos [] = $ свалка;

}
}

эхо "<бр />Проверка: ".count (scrambled_typos $)." пароли<бр />";
ob_flush ();
промывать();

Foreach ($ scrambled_typos как $ try_this) {

проверить (try_this $);
}

$ Time_check = getmicrotime ();
     $ Время = $ time_check - $ TIME_START;
     эхо "<бр />" , "Runtime: " , $ Время. " секунд";

этот переменные не установлены ($ scrambled_typos);

}


эхо "

не выполнение полной, пароль найден \ г \ п";
  $ Time_check = getmicrotime ();
     $ Время = $ time_check - $ original_time_start;
     эхо "<бр />" , "Runtime: " , $ Время. " секунд";


?>



Сценарий находится в 2-х частей из-за размещать ограничение на количество символов!
blibble сейчас офлайн Пожаловаться на blibble   Ответить с цитированием Мультицитирование сообщения от blibble Быстрый ответ на сообщение blibble

4 декабря 2013, 10:49:01 PM   # 4
 
 
Сообщений: 26
Цитировать по имени
цитировать ответ
по умолчанию Re: Затерянный Password Recovery скрипт PHP -AES-256-CBC Andreas Schilbach Bitcoin Кошелек

Хм, PHP не очень хороший язык для такого рода задач. Я держу пари один, вероятно, может найти что-то написано в C, который будет экспоненциально быстрее. Довольно прохладно, хотя в любом случае.
bitmagi сейчас офлайн Пожаловаться на bitmagi   Ответить с цитированием Мультицитирование сообщения от bitmagi Быстрый ответ на сообщение bitmagi



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW