Вернуться   Биткоин Форум > - Помощь начинающим
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);
    
$ соль знак равно зиЬзЬг($ данных88);
    
$ кт знак равно зиЬзЬг($ данных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[$ я];
    }
    
$ ключ знак равно зиЬзЬг($ результат032);
    
$ IV  знак равно зиЬзЬг($ результат32,16);

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