Parametri AES di SQLyog per cifrare le password salvate su disco
Link comodo CyberChef
Non sono definite nei sorgenti, quindi ho scaricato l'eseguibile ufficiale community e sono andato di Okteta, poi Ghidra cercando quel
https://github.com/webyog/sqlyog-community/blob/e30fffa4b7d28528ef5e7aecc794d15f55ae1dbd/src/CommonHelper.cpp#L78
https://github.com/webyog/sqlyog-community/blob/master/src/CommonHelper.cpp#L4426
kind aes128 ctr
key 2923BE84E16CD6AE529049F1C9BB218F
iv B3A6DB3C870C3E99245E0D1C06B747DE
Link comodo CyberChef
Non sono definite nei sorgenti, quindi ho scaricato l'eseguibile ufficiale community e sono andato di Okteta, poi Ghidra cercando quel
table64 e guardando i valori adiacentihttps://github.com/webyog/sqlyog-community/blob/e30fffa4b7d28528ef5e7aecc794d15f55ae1dbd/src/CommonHelper.cpp#L78
https://github.com/webyog/sqlyog-community/blob/master/src/CommonHelper.cpp#L4426
🔥1
journalctl -u micro
Un linguaggio, senza gli strumenti adatti ai suoi scopi [e ad un network effect], è un linguaggio morto. Oltre • alle scelte di design • al lexer • al parser • al modello • all'interprete • e alla libreria standard, toccherà scrivere anche • una documentazione…
In pratica avevo iniziato a sviluppare questo nuovo linguaggio in LuaJIT. Stavo scrivendo a mano
sia un lexer - tramite regex,
sia un parser - in modalità miste LL per le keyword e LR per le espressioni infisse di cui non è possibile conoscere il termine in anticipo (1 + 2 + 3 ...?),
sia un modello e interprete.
Nel frattempo ho provato a sviluppare una prima estensione VSCode per supportare il linguaggio, ma richiedeva una grammatica tutta sua (sintassi TextMate), allora ho realizzato che tutta questa scrittura manuale non poteva scalare.
🧵
sia un lexer - tramite regex,
sia un parser - in modalità miste LL per le keyword e LR per le espressioni infisse di cui non è possibile conoscere il termine in anticipo (1 + 2 + 3 ...?),
sia un modello e interprete.
Nel frattempo ho provato a sviluppare una prima estensione VSCode per supportare il linguaggio, ma richiedeva una grammatica tutta sua (sintassi TextMate), allora ho realizzato che tutta questa scrittura manuale non poteva scalare.
🧵
💔2
journalctl -u micro
In pratica avevo iniziato a sviluppare questo nuovo linguaggio in LuaJIT. Stavo scrivendo a mano sia un lexer - tramite regex, sia un parser - in modalità miste LL per le keyword e LR per le espressioni infisse di cui non è possibile conoscere il termine in…
Peccato che non esistano generatori di lexer & parser per Lua (tipo ANTLR4, lex, yacc - no non userò PEG / packrat)... quindi mi sono inventato di scriverne uno io.
Mi sono dovuto inventare anche una sintassi per le stesse grammatiche, in modo da esprimere derivabili, terminali, stringhe custom (così da non ripetere gli stessi id 913 volte) ecc
🧵
Mi sono dovuto inventare anche una sintassi per le stesse grammatiche, in modo da esprimere derivabili, terminali, stringhe custom (così da non ripetere gli stessi id 913 volte) ecc
🧵
🗿1
journalctl -u micro
Peccato che non esistano generatori di lexer & parser per Lua (tipo ANTLR4, lex, yacc - no non userò PEG / packrat)... quindi mi sono inventato di scriverne uno io. Mi sono dovuto inventare anche una sintassi per le stesse grammatiche, in modo da esprimere…
zirconio.aka
1.8 KB
Questa è una bozza di grammatica del nuovo linguaggio
journalctl -u micro
Peccato che non esistano generatori di lexer & parser per Lua (tipo ANTLR4, lex, yacc - no non userò PEG / packrat)... quindi mi sono inventato di scriverne uno io. Mi sono dovuto inventare anche una sintassi per le stesse grammatiche, in modo da esprimere…
Poi mi sono detto
"proviamo ad eseguire un benchmark". Ho misurato il tempo di 1000 parsing della stessa grammatica, e solo il parsing.
4 secondi
Hmm, mi sembra un po' tanto per una grammatica così piccola. Non oso immaginare come sarà il parsing di 1000 file sorgenti con un linguaggio più maturo. Facciamo un po' di profiling...
30% solo ad eseguire il mega-regex tramite lrexlib/pcre2 che uso come tokenizer. Ho sperimentato in vari modi ma non c'era verso di ridurne il tempo.
Allora mi sono messo a fare il mio engine di regex perl-compatible, in LuaJIT,con blackjack e squillo di lusso. Essendoci una compilazione JIT, posso trasformare il regex richiesto in codice Lua, che sarà a sua volta automaticamente trasformato in assembly per quell'architettura, e così ho fatto.
🧵
"proviamo ad eseguire un benchmark". Ho misurato il tempo di 1000 parsing della stessa grammatica, e solo il parsing.
4 secondi
Hmm, mi sembra un po' tanto per una grammatica così piccola. Non oso immaginare come sarà il parsing di 1000 file sorgenti con un linguaggio più maturo. Facciamo un po' di profiling...
30% solo ad eseguire il mega-regex tramite lrexlib/pcre2 che uso come tokenizer. Ho sperimentato in vari modi ma non c'era verso di ridurne il tempo.
Allora mi sono messo a fare il mio engine di regex perl-compatible, in LuaJIT,
🧵
journalctl -u micro
Poi mi sono detto "proviamo ad eseguire un benchmark". Ho misurato il tempo di 1000 parsing della stessa grammatica, e solo il parsing. 4 secondi Hmm, mi sembra un po' tanto per una grammatica così piccola. Non oso immaginare come sarà il parsing di 1000…
Ecco i tempi di benchmark + profiling
1. con lrexlib
2. con la mia libreria poco ottimizzata... ma non mi sono dato per vinto
3. salvati 9sec facendo il backtracking su variabili dedicate e non un array condiviso stile push/pop
4. salvati altri 9sec evitando il lookup degli oggetti (perché sì, in Lua sono tutti dizionari)
🧵
1. con lrexlib
2. con la mia libreria poco ottimizzata... ma non mi sono dato per vinto
3. salvati 9sec facendo il backtracking su variabili dedicate e non un array condiviso stile push/pop
4. salvati altri 9sec evitando il lookup degli oggetti (perché sì, in Lua sono tutti dizionari)
🧵
journalctl -u micro
Ecco i tempi di benchmark + profiling 1. con lrexlib 2. con la mia libreria poco ottimizzata... ma non mi sono dato per vinto 3. salvati 9sec facendo il backtracking su variabili dedicate e non un array condiviso stile push/pop 4. salvati altri 9sec evitando…
Mancano alcune funzionalità quali
\b àncora word-boundary, \1 backreference e sostituzioni di testo, ma il resto c'è e potrei ottimizzare ancora (facendo ad esempio una fattorizzazione a sinistra e un mapping caratteri-gruppo alternativo).
journalctl -u micro
il mio engine di regex perl-compatible, in LuaJIT
__gen_xvvcgcatupyuxclj430.lua
12.9 KB
Questo il codice Lua generato dal seguente mega-regex
(?<SKIP>[\ \t\r\n]+|//.*$)
|(?<derivable>[a-z_][0-9a-z_]*)
|(?<terminal>[A-Z_][0-9A-Z_]*)
|(?<string>"(?<_dquot>(?:[^\\\n"]+|\\.)*)"|'(?<_squot>(?:[^\\\n']+|\\.)*)')
|(?<dlabel>\#[\ \t]+(?<_dlbl>[A-Za-z_][0-9A-Za-z_]*)[\ \t]*$)
|(?<action>\{[\ \t]*(?<_act>[A-Za-z_][0-9A-Za-z_]*)[\ \t]*\})
|(?<symbols>[:;|()\[\]{}*+?!"'\-<=>\\/%^$.@&~#]+)
|(?<number>[0-9]*)
😱2
journalctl -u micro
__gen_xvvcgcatupyuxclj430.lua
PS. Ho usato dei bitmap a 32bit perché... in Lua tutto è float... e nonostante LuaJIT supporti il ctype
unsigned long long (64bit) questo va comunque più lentoCage — un compositor Wayland che gira su X11 (l'opposto di xwayland)
https://www.hjdskes.nl/projects/cage/
Con questo è possibile eseguire Waydroid senza wayland e senza problemi
https://www.hjdskes.nl/projects/cage/
Con questo è possibile eseguire Waydroid senza wayland e senza problemi
Jente Hidskes' website
Cage: the Wayland kiosk
🔥1
L'ultima cosa in assoluto che potrei mai volere
https://www.motor1.com/news/766631/mercedes-microsoft-teams-integration-technology/
https://www.motor1.com/news/766631/mercedes-microsoft-teams-integration-technology/
Motor1.com
Mercedes Gives Customers the One Thing They've Always Wanted: Microsoft Teams
No, you don't get a new V-8 or a manual—but now you can take video calls on the move.
🔥3🤯1😭1
A lavoro siamo passati a Teams dopo la chiusura di Skype — è il software peggiore che io abbia mai sperimentato.
• l'ennesimo chromium, ma è Edge, lento in culo e sono su windows (non linux senza accelerazione hardware)
• con piano free le chiamate hanno un limite di 60min
• più chat private con la stessa persona — che senso ha? mettetemi un pulsante dei topic piuttosto
• ogni tanto scompaiono le chat private, così
• continuano a perdersi messaggi, l'unico modo per accorgersene è sperare che un collega noti qualche stranezza e l'unico modo per farli comparire è sloggare e riloggare
• collisioni tra i nomi dei files: se in una chat caricate un file con un nome già occupato, vi chiederà di ignorare o sostituire tutti gli altri precedenti; per tenerli tutti si è costretti a rinominarli a mano
• tutti i files caricati andranno su OneDrive, e per farli visualizzare dovete concederne l'accesso
• se il vostro account fa parte di un'organizzazione, non potete mettervi in contatto con persone esterne
• popup costante non chiudibile
• le chiamate di gruppo non squillano mai in automatico, è necessario invitare ogni volta i partecipanti
• avevano aggiunto il supporto a Linux, l'hanno tolto
Seriamente, Jami + Jitsi è una soluzione 100x volte meno problematica.
• l'ennesimo chromium, ma è Edge, lento in culo e sono su windows (non linux senza accelerazione hardware)
• con piano free le chiamate hanno un limite di 60min
• più chat private con la stessa persona — che senso ha? mettetemi un pulsante dei topic piuttosto
• ogni tanto scompaiono le chat private, così
• continuano a perdersi messaggi, l'unico modo per accorgersene è sperare che un collega noti qualche stranezza e l'unico modo per farli comparire è sloggare e riloggare
• collisioni tra i nomi dei files: se in una chat caricate un file con un nome già occupato, vi chiederà di ignorare o sostituire tutti gli altri precedenti; per tenerli tutti si è costretti a rinominarli a mano
• tutti i files caricati andranno su OneDrive, e per farli visualizzare dovete concederne l'accesso
• se il vostro account fa parte di un'organizzazione, non potete mettervi in contatto con persone esterne
• popup costante non chiudibile
Premi Ctrl+F per cercare in questa chat
• le chiamate di gruppo non squillano mai in automatico, è necessario invitare ogni volta i partecipanti
• avevano aggiunto il supporto a Linux, l'hanno tolto
Seriamente, Jami + Jitsi è una soluzione 100x volte meno problematica.
💔2🗿1
La Gazzetta della Zecchetta
https://www.404media.co/credit-card-companies-are-hurting-the-future-of-video-games/
Credit Card Companies Are Hurting the Future of Video Games
The problem is that it wasn't clear what was in these forbidden categories. It's kind of whatever payment processors object to.