Poběrky z Fedorky #11

Tentokrát s příchutí hexadecimální soustavy a formátu json

Poběrky

  • python-hexdump - nástroj pro převod binárních dat do šestnáctkové soustavy a zpět
  • whipper - CD-DA ripovací nástroj preferující kvalitu nad rychlostí
  • ddgr - DuckDuckGo z terminálu
  • jq - nástroj pro dotazování json souborů
  • jid - nástroj pro postupné dotazování jsonu
  • vncpwd - nástroj pro dešifrování helsa k VNC

Koprovka

  • SWFTools - nástroje pro práci se soubory SWF Adobe Flash
  • SolveSpace - CAD 2D/3D modelovací nástroj
  • Restic - bezpečný zálohovací program
  • Polo - dvojpanelový správce souborů

Bílá Kronika

  • OmegaT - IcedTea-Web ji již zvládne!

List přání

Paběrky

Poběrky

python-hexdump - Dump binary data to hex format and restore from there

https://src.fedoraproject.org/rpms/python-hexdump
https://bugzilla.redhat.com/show_bug.cgi?id=1516117

sudo dnf install python-hexdump

Jednoduchá knihovna/utilita pro "pěkné zobrazování binárních dat", tedy výstup alá:

00008EC0: 24 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  $...............
00008ED0: 04 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00008EE0: 01 01 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ................
00008EF0: 00 00 00 00 00 00 00 00  A4 80 00 00 00 00 00 00  ................
00008F00: 68 06 00 00 00 00 00 00  00 00 00 00 00 00 00 00  h...............
00008F10: 01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00008F20: 01 00 00 00 03 00 00 00  00 00 00 00 00 00 00 00  ................
00008F30: 00 00 00 00 00 00 00 00  0C 87 00 00 00 00 00 00  ................
00008F40: 10 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
00008F50: 01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................

Ačkoliv je program jak knihovnou, tak aplikací, z nějakého důvodu - https://bugzilla.redhat.com/show_bug.cgi?id=1516117#c14 - je zabalena pouze knihovna.
Základní Pythoní požití pak je:

import hexdump
str = dump(binary) # Vám vrátí dekódovaný string. 
ba = restore(string) # Vám vrátí dekódovaný byte array. 

Pokud chcete použít z balíčku aplikaci, pak musíte ručně:

 python  /usr/lib/python2.7/site-packages/hexdump/hexdump.py /bin/pwd   | tail

Překvapivě, head , způsobí pád programu "IOError: [Errno 32] Broken pipe". Že by neošetřená reakce na zavření roury? Pokud to nějaký zdatný pythonista vysvětlí/spraví,  bude jedině super.

00000000: 7F 45 4C 46 02 01 01 00  00 00 00 00 00 00 00 00  .ELF............
00000010: 03 00 3E 00 01 00 00 00  70 1B 00 00 00 00 00 00  ..>.....p.......
00000020: 40 00 00 00 00 00 00 00  20 88 00 00 00 00 00 00  @....... .......
00000030: 00 00 00 00 40 00 38 00  09 00 40 00 1D 00 1C 00  ....@.8...@.....
00000040: 06 00 00 00 05 00 00 00  40 00 00 00 00 00 00 00  ........@.......
00000050: 40 00 00 00 00 00 00 00  40 00 00 00 00 00 00 00  @.......@.......
00000060: F8 01 00 00 00 00 00 00  F8 01 00 00 00 00 00 00  ................
00000070: 08 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00  ................
00000080: 38 02 00 00 00 00 00 00  38 02 00 00 00 00 00 00  8.......8.......
00000090: 38 02 00 00 00 00 00 00  1C 00 00 00 00 00 00 00  8...............
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/hexdump/hexdump.py", line 484, in 
    main()
  File "/usr/lib/python2.7/site-packages/hexdump/hexdump.py", line 456, in main
    hexdump(open(args[0], 'rb'))
  File "/usr/lib/python2.7/site-packages/hexdump/hexdump.py", line 247, in hexdump
    print(line)
IOError: [Errno 32] Broken pipe

Funkčně se tato utilitka s "klasickým" hexdumpem nedá srovnávat, a čeká ji ještě pár let evoluce.

whipper - Python CD-DA ripper preferring accuracy over speed

https://bugzilla.redhat.com/show_bug.cgi?id=1541566
https://src.fedoraproject.org/rpms/whipper

sudo dnf install whipper

Program pro příkazovou řádku inspirovaný "morituri projektem" (https://web.archive.org/web/20160528213242/https://thomas.apestaart.org/thomas/trac/wiki/DAD/Rip), který se snaží o nejvyšší možnou kvalitu.
Základní použití je pak:

whipper cd -d (device) rip

Více na https://github.com/JoeLametta/whipper#getting-started

ddgr - DuckDuckGo from the terminal

https://bugzilla.redhat.com/show_bug.cgi?id=1539209
https://src.fedoraproject.org/rpms/ddgr

sudo dnf install ddgr
ddgr žába

Jednoduchý comandline tool pro zasílání dotazů na jediný použitelný, a uživatele nesledujíc vyhledávač DuckDuckGo. Škoda že nevrací obrázky v ascii artu:)
Na screenshotu si povšimněte defaultně zapnutého interaktivního módu.To řeší --np. Pro lepší automatické zpracování výsledků se hodí --json. Plná url vrátí -x.

man ddgr

vám řekne zbytek.

jq - json query

https://src.fedoraproject.org/rpms/jid

sudo snf isntall jq
man jq

Implementace transformaci a navigaci v json formátu podobná xpath and xslt nad xml.
Například:

ddgr zaba --json | jq '.[].title'

Kde:

.[] získá prvky pole
.title pak získá z výsledných položek hodnoty title

Čili nám tento dotaz vypíše všechny titulky:

ddgr zaba -x --json | jq '.[].url'
"http://www.zabasearch.com/"
"https://www.youtube.com/user/ZabaGamerHD"
"https://www.whitepages.com/name/Zaba"
"https://www.facebook.com/zabasearch"
"http://skipease.com/search/zabasearch/"
"https://en.wikipedia.org/wiki/Zaba_(album)"
"https://play.google.com/store/apps/details?id=hr.asseco.android.zaba"
"https://www.imdb.com/title/tt7261098/"
"https://www.snopes.com/computer/internet/zabasearch.asp"
"https://www.lifewire.com/zabasearch-3482267"

jid - Json Incremental Digger

https://bugzilla.redhat.com/show_bug.cgi?id=1525698
https://src.fedoraproject.org/rpms/jid

sudo dnf install jid
jid -h

Program na interaktivní a postupné zkoumání json souborů. Založen na syntaxi jq, ale navíc prakticky posílá dotaz (query) na výsledek předchozího dotazu (query). S tím že vidíte výsledek, zjednodušuje řetězení filtrů.

 ddgr zaba --json | jid

a pište:

[1].title

Vždy uvidíte mezi výsledek. Po stisknutí enter se výstup opíše na stdout. Až na drobné nedostatky v syntaxi (např []) skvělý nástroj na učení jq.

vncpwd - VNC Password Decrypter

https://bugzilla.redhat.com/show_bug.cgi?id=1433657
https://src.fedoraproject.org/rpms/vncpwd

sudo dnf install vncpwd

Tiger VNC si se šifrováním hesla nijak neláme halvu - nakonec je celý v uživatelském prostoru. Takže pokud zapomene heslo, stačí pouze:
vncpwd ~/.vnc/passwd

A hotovo... Neboť vaše heslo je tak bezpečné jak je váš linuxový uživatel. S troškou štěstí tedy nedostupné.
Neplést s oficiálním nástrojem vncpasswd, který vám umožňuje heslo změnit.

Pokud z dat následujícího shelového prográmku poznáte co je to za šifru hluboce smeknu. Odpověď je v Paběrku.

for x in a b c d e f g h i j k l m n o p q r s t u v w f x y z  ; do 
  A="";
  for y in `seq 1 10` ; do 
    A="$A""$x" ;
    echo $A ;
    echo -n $A | hexdump -C ;
    echo -n $A | vncpasswd -f  | hexdump -C ;
    echo
  done;
done;

(povšiměte si že maximální délka els aje 8 znaků:)

Koprovka

Bezostyšně a s plným kreditem inspirována - https://fedoramagazine.org/4-cool-copr-february-2018/

SWFTools

https://copr.fedorainfracloud.org/coprs/scx/swftools

sudo dnf copr enable scx/swftools
sudo dnf install swftools

Sada nástrojů na spojování,m obecnou práci a generování SWF souborů. Umí do SWF také konvertovat obráazky, video, audio a zdrojové kódy. Zpětně také umí ze SWF obsah extrahovat. Vzhledem k pomalé a krkolomné smrtí Flashe, je zejména to poslední nejužitečnějěí 🙂

http://www.swftools.org/

SolveSpace

https://copr.fedorainfracloud.org/coprs/dschubert/solvespace

sudo dnf copr enable dschubert/solvespace
sudo dnf install solvespace

Na zdroje nenáročný, 2D a 3D CAD modelovací nástroj. Jak název napovídá, jeho hlavní síla je v v pokročilém a geometrickém algoritmu na řešení zábran (např.: kolik křížů se vleze do čtverce aniž by se křížili?)

http://solvespace.com/

Restic

https://copr.fedorainfracloud.org/coprs/copart/restic

sudo dnf copr enable copart/restic
sudo dnf install restic

Rychlý a s bezpečností na mysly navržený zálohovací software. Poradí si také s inkrementálními zálohamy a snapshoty. Umí záohovat z N zdrojů do M cílů. Zálohy jsou defaulně šifrovány.

https://restic.net/

Polo

https://copr.fedorainfracloud.org/coprs/grturner/Polo

sudo dnf copr enable grturner/Polo
sudo dnf install polo

Další z mnoha programů na zákldě starého Norton Commanderu a Windows Commanderu. A v tomto připadě velmi vyspělý.
V době psaní tohoto dílu byl RPM balíček mírně rozbytý, ale snad je již lépe.

https://teejee2008.github.io/polo/

Bílá Kronika

V minulém díle jsem zamáčkl slzu že OmegaT osiřela - https://mojefedora.cz/poberky-z-fedorky-10/#OmegaT . Její současný stav jsem nekontroloval, ale pochlapil jsme se a upravil jsem IcedTea-Web tak aby OmegaT začla fungovat.
Patch se nějakou dobu vařil v usptreamu, ale nakonec jsem jej portoval do fedorky:
Pokud používáte testing repo (nebo již to prosáklo do stable) tak icedtea-web-1.7.1-5 by již měl valit fajn.

javaws http://omegat.sourceforge.net/webstart/OmegaT.jnlp by vám mělo jednoduše fungovat.

List přání

Double commander a Lazarus

doublecmd - Twin-panel (commander-style) file manager - https://bugzilla.redhat.com/show_bug.cgi?id=1208911
Teto výborný dvojpanelový správce souborů se bohužel zasekl na závislostech. Jeho maintainer by musel nejdříve zabalit celý free-pascal (čímž by otevřel dveře spoustě dalších programů (nakonec, lidí co začínalo či i později pracovalo s Delphi je kolem spousta) a pár delších závislostí (nehledě na závislosti Lazaru). Pravá balíčkovací výzva!

Paběrek

Kolegu na poběrky hledám stále. Dobře platím! Poběrků méně než by slušelo... Navíc chystáme pro začínající vývojáře (střední škola) rozcestník základních jazyků a jejich fedora-based rychlostart. Přez javu a .NET, přes python a bash až k Rustu a C, a pokud seženu odborníky, tak i více. O IDE nám již řekle všechno Pavel Tišnovský - https://mojefedora.cz/?s=vyvojove+prostredi - Tak snad je na co se těšit!

Heslo pro VNC

Heslo je šiforváno triple DES, šili silnou, symetrickou šifrou. Symetrická znamená, že jakmile znovu zašifujete již zašiforvnaý text, tak dostanete ten původní.
VNC má toto heslo hardcoded ve svých zdojových kódech (a má délku 8 nzaků) - https://github.com/jeroennijhof/vncpwd/blob/master/vncpwd.c#L25 - takže se to celé posouvá do "security by obscurity" (až na detail, že to máte v domovském adresáři schované pod standartními unixovými právy).