Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - bookmarks.adr в bookmarks.html

Ответить
Настройки темы
Любой язык - bookmarks.adr в bookmarks.html

Ветеран


Сообщения: 2196
Благодарности: 727


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: sov44
Дата: 23-06-2017
Нужен скрипт по преобразованию файла закладок Opera Presto (Opera 12) из bookmarks.adr в bookmarks.html. Если возможно, штатными средствами Windows с гибридом командной строки или с помощью сторонней утилиты sed.
В Opera Presto есть механизм ручного экспорта закладок как html, однако ищется вариант с экспортом в html в автоматическом режиме.

Отправлено: 12:43, 29-11-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


sov44, Вам однократно сие потребно или нужен программный код для какого-то проекта?

Отправлено: 02:45, 30-11-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Iska, всё верно, это не большой тестовый проект OperaPresto_Pass_Converter на sed для пользователей, желающих мигрировать с Opera Presto на Mozilla. С кодом sed мне помог YuS_2 http://www.cyberforum.ru/cmd-bat, за что ему большое спасибо. На сегодняшний день OperaPresto_Pass_Converter позволяет конвертировать логины и пароли из wand.dat в wand_mozilla.xml - шаблон расширения Password Exporter, который затем можно интегрировать в Mozilla Firefox, импорт\экспорт закладок приходится делать вручную. Хочется верить, что этот проект будет востребован, т.к ни конвертера логинов и паролей, ни конвертера закладок в сети не нашел, самому приходилось мигрировать через бумажку.

Последний раз редактировалось sov44, 30-11-2016 в 09:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:54, 30-11-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


sov44, спасибо, ясно.

Ну, конвертер вроде как есть: The Bookmark Converter Homepage, но shareware. Также можно конвертировать старый профиль в новую Opera, там выгрузить их в html, затем импортировать.

Отправлено: 09:12, 30-11-2016 | #4


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Iska, попробовал The Bookmark Converter на Win7x32, не работает. Хотелось бы найти универсальное решение на скриптовом языке.

Отправлено: 09:30, 30-11-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


sov44, Вы же писали, что Вам же вроде как сделали, не? Кстати, стоит давать ссылку на конкретную тему/сообщение.

Отправлено: 09:53, 30-11-2016 | #6


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Любопытно стало после:
Цитата sov44:
...позволяет конвертировать логины и пароли из wand.dat...
wand.dat - файл с соленой криптографией, как-то начинал разработку его декодирования, но виду того, что Opera, ровно как PowerShell, использует относительно малый процент (имеется в виду постсоветское пространство), интерес к дальнейшей разработке отпал. В инете же кое-где можно все еще найти черновые варианты, например:
Скрытый текст
Код: Выделить весь код
[Byte[]]$salt = 0x83, 0x7D, 0xFC, 0x0F, 0x8E, 0xB3, 0xE8, 0x69, 0x73, 0xAF, 0xFF
$path = [Environment]::GetFolderPath("ApplicationData") + "\Opera\Opera\wand.dat"

function Read-RawData([Byte[]]$key, [Byte[]]$enc) {
  $md5 = New-Object Security.Cryptography.MD5CryptoServiceProvider
  
  [Byte[]]$buff = New-Object "Byte[]" ($salt.Length + $key.Length)
  [Array]::Copy($salt, $buff, $salt.Length)
  [Array]::Copy($key, 0, $buff, $salt.Length, $key.Length)
  [Byte[]]$hash1 = $md5.ComputeHash($buff)
  
  [Byte[]]$buff = New-Object "Byte[]" ($hash1.Length + $salt.Length + $key.Length)
  [Array]::Copy($hash1, $buff, $hash1.Length)
  [Array]::Copy($salt, 0, $buff, $hash1.Length, $salt.Length)
  [Array]::Copy($key, 0, $buff, ($hash1.Length + $salt.Length), $key.Length)
  [Byte[]]$hash2 = $md5.ComputeHash($buff)
  
  $des = New-Object Security.Cryptography.TripleDESCryptoServiceProvider
  $des.Mode = [Security.Cryptography.CipherMode]::CBC
  $des.Padding = [Security.Cryptography.PaddingMode]::None
  
  [Byte[]]$trk = New-Object "Byte[]" 24
  [Byte[]]$IV  = New-Object "Byte[]" 8
  [Array]::Copy($hash1, $trk, $hash1.Length)
  [Array]::Copy($hash2, 0, $trk, $hash1.Length, 8)
  [Array]::Copy($hash2, 8, $IV, 0, 8)
  
  $des.Key = $trk
  $des.IV  = $IV
  [Security.Cryptography.ICryptoTransform]$dec = $des.CreateDecryptor()
  
  return [Text.Encoding]::Unicode.GetString($dec.TransformFinalBlock($enc, 0, $enc.Length))
}

try {
  [Byte[]]$wand = [IO.File]::ReadAllBytes($path)
  [Int32]$block = 0
  [String[]]$raw = ""
  $cat = [Enum]::GetValues([Globalization.UnicodeCategory])
  
  for ($i = 0; $i -lt $wand.Length; $i++) {
    if ($wand[$i] -eq 0x0 -and $wand[$i + 1] -eq 0x0 -and `
        $wand[$i + 2] -eq 0x0 -and $wand[$i + 3] -eq 0x8) {
      [Int32]$block = $wand[$i + 15]
      
      [Byte[]]$key = New-Object "Byte[]" 8
      [Byte[]]$enc = New-Object "Byte[]" $block
      [Array]::Copy($wand, ($i + 4), $key, 0, $key.Length)
      [Array]::Copy($wand, ($i + 16), $enc, 0, $enc.Length)
      
      $raw += (Read-RawData $key $enc)
      $i += 11 + $block
    }
  }
  
  if ($raw.Length -ne 0) {
    for ($i = 0; $i -lt $raw.Length; $i++) {
      if ($raw[$i] -match "@") {
        Write-Host $raw[$i].Split([Char]0x0)[0] -fo Green
        Write-Host $(-join ($raw[$i + 1].ToCharArray() | % {
          $chr = [Char]::GetUnicodeCategory($_)
          if ($chr -ne $cat[0] -and $chr -ne $cat[($cat.Length - 1)]) {
            $_
          }
        })) -fo Yellow
        ""
      }
    }
  }
}
catch [IO.FileNotFoundException] {
  $_.Exception.Message
}

Что же касается конвертирования закладок, насколько помню Opera вполне сама может конвертировать adr в html, и вроде бы какие-то параметры комстроки у нее были... в принципе, можно конвертнуть и с помощью PowerShell и иже с ним, но проект, если быть предельно объективным, не стоит того, чтобы тратить на него столько усилий, дабы убедиться в небольшом проценте пользователей FF и древней Opera. Как ни крути, но подавляющее большинство налегает на "хромоногие" браузеры.

Отправлено: 10:19, 30-11-2016 | #7


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вам же вроде как сделали, не? »
Нет. Иначе стал-бы я создавать тему?


Цитата greg zakharov:
и вроде бы какие-то параметры комстроки у нее были... »
А вот это было-бы интересно.

Отправлено: 10:22, 30-11-2016 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - bookmarks.adr в bookmarks.html

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Почта - [решено] 550 5.1.1 RESOLVER.ADR.RecipNotFound; not found Сержа Программное обеспечение Windows 0 29-09-2015 13:57
chrome + google bookmarks rivera Хочу все знать 6 20-01-2012 13:12
[решено] javascript для панели закл-к FireFox: добавить кнопку для формы в Google Bookmarks eugrus Вебмастеру 2 04-01-2012 18:46
Интернет - [решено] Посоветуйте HTML редактор для осваивания HTML streamrider Программное обеспечение Windows 5 12-12-2011 11:19
Portable Bookmarks 2.5.2 OSZone Software Новости программного обеспечения 0 30-01-2010 20:30




 
Переход