Tak od ledna linuxové terminály, výchozí pozadí i celé desktopy v barvě "broskvového chmýří", v barvě "jejíž všeobjímající duch obohacuje mysl, tělo i srdce". Barvou roku 2024 je PANTONE 13-1023 Peach Fuzz.
Byla vydána verze 10 linuxové distribuce Freespire (Wikipedie). Jedná se o bezplatnou linuxovou distribuci vyvíjenou společností PC/OpenSystems LLC stojící za komerční distribucí Linspire (Wikipedie), původně Lindows.
Binarly REsearch před týdnem informoval o kritických zranitelnostech UEFI souhrnně pojmenovaných LogoFAIL. Tento týden doplnil podrobnosti. Útočník může nahradit logo zobrazováno při bootování vlastním speciálně upraveným obrázkem, jehož "zobrazení" při bootování spustí připravený kód. Pětiminutové povídání o LogoFAIL a ukázka útoku na YouTube.
Byla vydána listopadová aktualizace aneb nová verze 1.85 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.85 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
git.kernel.org je nově oficiálně také v tmavém vzhledu.
Richard Hughes na svém blogu oznámil, že počet aktualizací firmwarů pomocí služby LVFS (Linux Vendor Firmware Service) přesáhl 100 milionů. Přehled podporovaných zařízení, nejnovějších firmwarů nebo zapojených výrobců na stránkách LVFS.
Byla vydána nová stabilní verze 3.19.0, tj. první z nové řady 3.19, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou podporu Raspberry Pi 5.
Altap Salamander (Wikipedie), dvoupanelový správce souborů pro Windows, byl uvolněn jako open source pod názvem Open Salamander. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv2.
Společnost JetBrains představila (YouTube) svou umělou inteligenci JetBrains AI a nástroj AI Assistant v IDE.
Byla vydána nová verze 255 správce systému a služeb systemd (GitHub, NEWS). Z novinek lze vypíchnout například novou službu systemd-bsod.service.
PRINT "Hledani shody ve dvou souborech" INPUT "Kolik bytu? ", delka INPUT "1. soubor: ", soubor1$ INPUT "2. soubor: ", soubor2$ PRINT "Preruseni: Esc" a$ = " " b$ = " " OPEN soubor1$ FOR BINARY AS #1 OPEN soubor2$ FOR BINARY AS #2 FOR i = 1 TO LOF(1) - delka + 1 FOR j = 1 TO LOF(2) - delka + 1 IF INKEY$ = CHR$(27) THEN GOTO konec GET #1, i, a$ GET #2, j, b$ IF a$ = b$ THEN pocet = 1 FOR k = 1 TO delka - 1 GET #1, i + k, a$ GET #2, j + k, b$ IF a$ = b$ THEN pocet = pocet + 1 ELSE k = delka END IF NEXT k IF pocet = delka THEN PRINT i, j, FOR k = 0 TO delka - 1 GET #1, i + k, a$ PRINT a$; NEXT k PRINT END IF END IF NEXT j NEXT i CLOSE #2 CLOSE #1 konec: END
#include <stdio.h> #include <stdlib.h> int lof(FILE *soubor) { fseek(soubor,0,SEEK_END); return ftell(soubor); } void nacti(FILE *soubor,char *text,int pocet) { int i; rewind(soubor); for (i=0;i<pocet;++i) text[i]=fgetc(soubor); text[i]='\0'; } int main(void) { int i,j,c1,c2,f=0,shoda,delka,v1,v2,velikost1,velikost2; char nazev1[200],nazev2[200],*text1,*text2; FILE *soubor1,*soubor2; /* vstupni dialog */ fprintf(stderr,"Hledani shody ve dvou binarnich souborech\n"); fprintf(stderr,"Kolik bytu? "); scanf("%d",&delka); if (delka>0) { fprintf(stderr,"1. soubor: "); scanf("%s",nazev1); fprintf(stderr,"2. soubor: "); scanf("%s",nazev2); if ((soubor1=fopen(nazev1,"r"))) { if ((velikost1=lof(soubor1))) { if ((soubor2=fopen(nazev2,"r"))) { if ((velikost2=lof(soubor2))) { printf("\n%s\n\t%s\n",nazev1,nazev2); /* alokace pameti */ text1=malloc(velikost1+1); text2=malloc(velikost2+1); v1=velikost1-delka+1; v2=velikost2-delka+1; if (!text1 || !text2) { fprintf(stderr,"Nedostatek pameti, pomale hledani!\n\a"); /* primo na disku */ for (rewind(soubor1),i=0;i<v1;++i) { c1=fgetc(soubor1); for (rewind(soubor2),j=0;j<v2;++j) { c2=fgetc(soubor2); if (c1==c2) { for (shoda=0;c1==c2 && shoda<delka;++shoda) { c1=fgetc(soubor1); c2=fgetc(soubor2); } if (shoda==delka) { ++f; fseek(soubor1,i,0); printf("%d\t%d\t",i,j); for (shoda=0;shoda<delka;++shoda) putchar(fgetc(soubor1)); putchar('\n'); } fseek(soubor1,i+1,0); fseek(soubor2,j+1,0); } } } } else { /* nacteni do pameti */ nacti(soubor1,text1,velikost1); nacti(soubor2,text2,velikost2); for (i=0;i<v1;++i) for (j=0;j<v2;++j) { for (shoda=0;text1[i+shoda]==text2[j+shoda] && shoda<delka;++shoda); if (shoda==delka) { ++f; printf("%d\t%d\t",i,j); for (shoda=0;shoda<delka;++shoda) putchar(text1[i+shoda]); putchar('\n'); } } } if (text1) free(text1); if (text2) free(text2); if (f) printf("Nalezeno %d shodnych useku s delkou %d bytu.\n",f,delka); else printf("Nenalezena zadna shoda!\n"); } else fprintf(stderr,"%s nic neobsahuje!\n\a",nazev2); fclose(soubor2); } else fprintf(stderr,"%s nelze cist!\n\a",nazev2); fclose(soubor1); } else fprintf(stderr,"%s nic neobsahuje!\n\a",nazev1); } else fprintf(stderr,"%s nelze cist!\n\a",nazev1); } return 0; }Výstup do souboru si můžeš klidně přesměrovat pomocí >, chybová hlášení tam nebudou, jen samotné výsledky :)
NELZE CIST!
commons() { # soubor1 (nejlépe ten menší), soubor2, délka
grep -oF -f \
<( strings -n$3 $1 | while read l; do for ((i=0;i<${#l}-${#l}%$3;i++)); do echo ${l:i:$3}; done; done ) \
<(strings -n$3 $2) | strings -n$3 | sort -u
}
použití:
$ commons /bin/grep /bin/bash 77
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
strings
o parametr -eS
a aby fungoval grep, rourou převést na utf8 nebo nastavit proměnnou LANG=C, potom bude grep porovnávat binárně.
Podobně pokud je hledaný řetězec v souborech kódován v 16 nebo 32 bitech, viz man 1 strings
.
A tvoje zadarmo si strc za klobuk,uz len tento pojem svedci o tom,v akych intenciach rozmyslas.Opak je pravdou.
enca
). To je neocenitelné např. při analýze binárních souborů vytvořených windows aplikacemi, ty běžně používají různá kódování i znakové sady. Tam by porovnávání bajt po bajtu bylo k ničemu.
Tiskni
Sdílej: