Newsgroup: it.cultura.linguistica.italiano
Titolo: uniKode

Visti i problemi con gli alt code in Windows, ho creato un piccolo 
programmino scritto in C++ che aggiunge dei ctrl+alt code! Il programma 
pesa appena 91 KB ed è /estremamente/ efficiente.
 
Lo trovate qui: 
https://gofile.io/d/LgrhYV
 
 
Per scaricare uno zip con entrambi i file, cliccate su "Create Zip".
 
Le istruzioni sono nel file readme.txt.
 
# Opzionale: verifica hash (per scongiurare manomissioni)
 
Per verificare l'hash potete eseguire il seguente comando nella PowerShell:
   Get-FileHash .\uniKode.exe | Format-List
 
Più in dettaglio:
- andate nella cartella che contiene il file uniKode(.exe)
- cliccate col tasto sinistro nello spazio bianco in modo da 
deselezionare i file
- tenendo premuto shift, cliccate il tasto destro sempre nello spazio 
bianco e scegliete "Open PowerShell window here" (o il comando 
corrispondente in italiano)
- Copiate/incollate il comando Get-FileHash che ho scritto sopra e 
leggete l'hash.
 
L'hash deve essere:
09654C72CFE4E3464AA368C8EFCBC1BD832AE767D8D3783249BFF41CC8CDB02B
 
Se l'hash corrisponde, nessuno ha alterato il file.
 
# Sbloccare il file
 
Windows blocca i file scaricati da internet per preteggere gli utenti, 
quindi dovete cliccare col tasto destro su uniKode(.exe), cliccare su 
Properties (Proprietà), mettere il segno di spunta su unblock (sblocca) 
e quindi confermare cliccando su OK.
 
# Antivirus
 
L'analisi comportamentale di qualche antivirus potrebbe segnalare il mio 
exe come potenzialmente infetto. E' comprensibile, visto che l'exe 
esamina e modifica l'input da tastiera, prerogativa di svariati malware.
 
# Costruire l'exe dal sorgente
 
E' una procedura abbastanza complessa per i non esperti. Se vi fidate 
del mio exe ci risparmiamo un mare di fatica.
 
# Disclaimer
 
Ho provato uniKode soltanto sul mio PC per qualche ora, quindi non posso 
garantire che non vi siano bug. Il programma gira in user mode quindi 
non può arrecare danni permanenti al PC (un riavvio risolve tutto).
A proposito, non funziona con i programmi che eseguite come 
amministratore, a meno che non eseguiate anche il mio programma come 
amministratore (è una protezione di Windows).
 
-- 
Kiuhnm
 
https://www.cvedetails.com/top-50-products.php
 
https://www.cvedetails.com/top-50-product-cvssscore-distribution.php
 
 

 del mio exe ci risparmiamo un mare di fatica.
 
Ecco il codice:
https://pastebin.com/86MKWDzQ
 
 
Sono appena 100 righe. La mia prima versione era meno efficiente e molto 
più lunga.


 più lunga.
 
[per gli eventuali programmatori tra voi]
Magari è meglio (giusto per eleganza) sostituire i primi "else if" con 
uno switch. Ormai sono abituato a Python che non ha lo switch.


> molto più lunga.
 
Sì, vabbè, e come si usa?  <g>
 
 
-- 
Et interrogabant eum turbae dicentes: “Quid ergo faciemus?”.
Respondens autem dicebat illis: “Qui habet duas tunicas,
det non habenti; et, qui habet escas, similiter faciat”.
(Ev. sec. Lucam 3,10-11)
 
-- 
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
 
 

 Le istruzioni sono nel file readme.txt.
 
Proverò, ma forse avrei bisogno che mi descrivessi la procedura step by 
step.


 step.
 
Ti basta eseguire uniKode.exe. Sei arrivato ad avere uniKode e il readme 
in una cartella? Doppio click su uniKode e sei a posto.
A quel punto puoi usare gli alt code ma tenendo premuto anche il control 
sinistro oltre all'alt sinistro.
Per es. LeftCTRL + LeftALT + 601 dovrebbe darti ə (ho appena usato 
uniKode). Supporta anche gli hex code, quindi LeftCTRL + LeftALT + 
"tasto più" 18f dà Ə. Ricorda di usare sempre il tastierino per i numeri.
Fammi sapere se hai problemi.
 
(Se non vuoi dover caricare uniKode ogni volta, ti dico come farlo 
partire automaticamente all'avvio di Windows, ma prima vediamo se va.)


 Sì, vabbè, e come si usa?  <g>
 
Puoi tranquillamente ignorare il codice. Il codice viene tradotto in un 
eseguibile usando dei programmi speciali chiamati compilatori e linker.
L'ho messo a disposizione per trasparenza e nel caso qualcuno volesse 
prodursi l'eseguibile da solo.


 step.
 
Se quando esegui uniKode si apre una finestra blu che lo blocca, clicca 
col destro su uniKode, scegli Proprietà, clicca su sblocca e conferma 
con OK. A quel punto dovrebbe andare. Serve solo la prima volta.


 
Sei bravo !

 
OK gracias poi ci provo


 
Complimenti e grazie.
C++ e Phyton, quindi stai davvero al passo con i tempi.
Bravo.
 


Grazie! In realtà conoscerò una ventina di linguaggi. Dopo un po', 
iniziano ad assomigliarsi tutti. Ogni tanto esce qualcosa di 
radicalmente diverso, tipo Rust, il nuovo linguaggio di Mozilla 
(Firefox), ma per il resto si tratta di piccole migliorie.


 iniziano ad assomigliarsi tutti.
 
Il problema con i linguaggi (di programmazione) a differenza dei 
linguaggi-dialetti veri, e' che si assomigliano quel tanto che facilita 
la confusione se non li si usa abbastanza spesso ... e il computer (il 
compilatore, l'interprete) e' molto meno "leniente" dell'umano che 
capisce un linguaggio sgrammaticato o parlato male.


Vero. Comunque i problemi più grandi si hanno quando il compilatore è 
contento, ma quello che scrivi non significa esattamente quello che 
pensi. Per es. tra Python e Julia ci sono alcune lievi differenze che 
possono creare bug veramente insidiosi (di quelli che ti fanno saltare 
un programma sporadicamente).
Poi c'è la questione dell'accento. Chi programma in Python per molti 
anni impara degli idiomi propri di Python, mentre chi lo usa per 
brevissimo tempo per semplici script tende a programmare in Python come 
se fosse C. Per es. scriverà
   for i in range(len(nazioni)):
     print(nazioni[i])
anziché
   for nazione in nazioni:
     print(nazione)
che significa proprio "per ogni nazione in nazioni, stampa nazione".
Io quando imparo un nuovo linguaggio cerco d'imparare anche gli idiomi, 
ma il tempo è limitato su questa terra e non si può sapere tutto ai 
massimi livelli :(


 On 04/12/2020 20:37, Giovanni Drogo wrote:
 
E' successo questo
Microsoft Defender SmartScreen ha impedito l'avvio di un'app non 
riconosciuta. L'esecuzione di tale app potrebbe costituire un rischio 
per il PC.
Ulteriori informazioni


 
menate di windows


 menate di windows
 
Fai click col destro su uniKode e scegli Proprietà (è in fondo). Nella 
finestra che ti appare, in basso, dovresti vedere uno "sblocca" (da me è 
unblock). Attivalo (segno di spunta) e conferma con OK.
A questo punto dovresti poter eseguire uniKode.


 
 >
A me è successo che avg l'ha preso in custodia e l'ha inviato al 
laboratorio. Dopo qualche ora mi è arrivata la conferma (tutto in 
automatico) che il file fosse privo di virus è l'ha liberato....
 


Comunque nessun antivirus o persona può garantire l'assenza di virus. E' 
come per gli errori nel codice: puoi garantirne la presenza trovandone, 
ma mai garantirne l'assenza, a meno che non usi un linguaggio ristretto 
e quindi verificabile matematicamente.
 
Immagina un virus che si attivi soltanto dopo parecchie ore che è su un 
sistema e che codifichi il codice che non usa facendolo passare per 
innocue stringhe di testo. Il controllo comportamentale non troverà 
niente di sospetto semplicemente perché il virus non fa niente di 
sospetto e il controllo del codice non troverà nessuna chiamata a 
funzioni di sistema pericolose perché il codice è nascosto.
Il virus, dopo qualche ora o anche giorni, si automodificherà (in 
memoria, non su disco) ed estrarrà il codice dalle stringhe di testo 
fasulle.
Del resto, se gli antivirus funzionassero in assoluto, non avrebbero 
bisogno di essere costantemente aggiornati.
 
Oggi gli AV usano anche l'intelligenza artificiale, ma si tratta 
semplicemente di modelli statistici che non capiscono nulla del codice 
nel file. L'idea è quella di scegliere delle feature per ogni file, tipo 
"lunghezza", "durata media d'esecuzione", "numero di chiamate a certe 
funzioni", ecc... Se le feature sono n, ogni file è rappresentato da n 
valori numerici e quindi può essere rappresentato come un punto in uno 
spazio n-dimensionale. A questo punto si cerca di identificare cluster 
ovvero raggruppamenti di punti. Se i virus sono raggruppati, allora 
basterà creare un modello matematico che delimiti tale cluster. In 2D, 
cioè con due sole feature, per es., potrebbe bastare un semplice cerchio 
attorno al cluster.
Per decidere se un nuovo file contiene un virus, se ne determinano le 
feature, lo si rappresenta sotto forma di punto e si vede se è 
all'interno del "cerchio" precedentemente calcolato.
E' facile evadere simili controlli. Non dimentichiamo che chi produce 
virus ha a disposizione tutti gli AV che vuole quindi può fare prove 
finché non riesce ad evaderli (AV evasion) tutti.


 Immagina un virus che si attivi soltanto dopo parecchie ore 
 
Intanto deve essere un processo attivo più o meno indipendente e che non 
sia a livello utente e questo è già di per sé sospetto.
Ho conosciuto alcuni ragazzi che passano tutto il giorno a reversare 
codice per studiare il comportanmento di rootkit e virus vari, un 
lavoraccio.
Comunuqe il tuo codice ha passato il test antivirus :-))

 lavoraccio.
 
L'ho fatto per anni, poi sono passato all'exploit dev. (ho anche 
pubblicato una serie di tutorial) e infine alle reti neurali.


 Comunuqe il tuo codice ha passato il test antivirus :-))
 
Ma soprattutto: funziona o no?
