Blog

Blog je mesto gde možeš da čitaš o navikama IT-evaca, najavama IT dešavanja, aktuelnostima na tržištu, savetima i cakama kako da uspeš na ovom dinamičnom polju.

15.07.2024. ·
6 min

Python za svakoga – Napravite sami virtuelnog asistenta sa manje od sto linija koda

U današnje vreme smo, više nego ikad pre, zatrpani stvarima koje moramo da uradimo (ili bismo želeli da uradimo). Zašto onda ne bismo iskoristili neke alate koji bi nam automatizovali male zadatke ili pomogli da jednostavno dođemo do informacija koje nam mogu zatrebati u nekom trenutku tokom dana? U ovom kratkom članku iz našeg LoGeek Magazina - Broj #17, kodiraćemo virtuelnog asistenta od nule, i svaki korak ćemo detaljno objasniti. Ako vas zanima svet tehnologije i želite da dublje istražite ovu tematiku, pročitajte najnovije izdanje LoGeek Magazina! Priprema razvojnog okruženja Pre nego što počnemo sa kodiranjem virtuelnog asistenta, predlažemo da se podesi virtuelno razvojno okruženje. Ovo vam omogućava da instalirate sve zavisnosti (eng. dependencies) projekta lokalno, bez uticaja na sistemsku bazu koda. Evo komandnih linija koje smo koristili za kreiranje i aktiviranje virtuelnog okruženja (skraćeno na engleskom: venv) na mom računaru sa sistemom Windows 10: py -3.11 -m venv va-venv-3.11 .\va-venv-3.11\Scripts\activate python -m pip install --upgrade pip U slučaju da koristite macOS ili Linux distribuciju kao operativni sistem, prva komanda treba da bude zamenjena pokretanjem odgovarajućeg Pajton interpretatora instaliranog u sistemskom okviru: python3.11 -m venv va-venv-3.11 Čitaocima koji nisu upoznati sa konceptom virtuelnog okruženja (venv) toplo preporučujemo da počnu sa primenom ovoga kada započinju Pajton projekat. Pored razdvajanja zavisnosti (dependencies) projekta od Pajton modula koji su već instalirani u okviru operativnog sistema (samim tim se izbegava njihovo poništavanje), venv vam omogućava da lako kreirate više verzija projekta sa različitim verzijama Pajton interpretatora i povezanih modula. Glavne komponente virtuelnog asistenta Gledajuci širu sliku, virtuelni asistent se može rastaviti na tri glavne komponente: Prepoznavač govora (eng. speech recognizer), koji može da pretvori zvučni input u tekst. Agent, koji može da razume značenje teksta i da generiše odgovor na njega. Konvertor teksta u govor, koji pretvara odgovor u audio signal. U daljem tekstu, detaljnije ćemo opisati implementaciju ove tri glavne komponente. Implementacija prepoznavača govora Za ovu komponentu virtuelnog asistenta koristićemo biblioteku SpeechRecognition. Da biste instalirali povezane module u virtuelno okruženje, koristite sledeću komandu: pip install SpeechRecognition Evo osnovne upotrebe modula: import speech_recognition as sr # Inicijalizuje se prepoznavač govora recognizer = sr.Recognizer() with sr.Microphone() as source: recording = recognizer.listen(audio_source) # Objekat snimka se prikazuje nakon što se detektuje audio signal... sentence = recognizer.recognize_google(recording) Klasa `Recognizer`, koja je glavni entitet ovog modula, instancira se i povezuje sa mikrofonskim interfejsom kako bi osluškivala dolazne signale. Čim se detektuje govor, snimak se kreira i šalje Google API-ju radi konverzije u tekst. Implementacija agenta Suštinska komponenta virtuelnog asistenta je sasvim primitivni AI agent, sposoban da izvrši akcije na osnovu primljenih komandi. Za ovaj projekat, implementiran je jednostavan upravljač Gugl kalendarom (eng. Google calendar manager). Za komunikaciju sa API-jem Gugl kalendara i instalaciju neophodnog Pajton modula, koristite sledeću komandu: pip install gcsa Evo nekih linija koda pomoću kojih možete daunlodovati sadržaj izabranog Gugl kalendara i odštampati ga u konzoli: import os from gcsa.google_calendar import GoogleCalendar # Inicijalizacija API-ja za Gugl kalendar this_folder = os.path.dirname(__file__) google_calendar = GoogleCalendar(‘rodolfo.cangiotti@dxc.com’, credentials_path=os.path.join(this_folder, ‘credentials.json’)) for event in google_calendar: print(event) Za više informacija o konfigurisanju vašeg Gugl naloga i dobijanju potrebnog fajla sa kredencijalima, pogledajte ovaj odeljak dokumentacije. Konvertor teksta u govor Za poslednju komponentu virtuelnog asistenta, koristićemo paket pyttsx3, iako nema aktivnih apdejtova od leta 2020. Evo komande za instalaciju neophodnih modula: pip install pyttsx3 Evo Pajton koda za osnovnu upotrebu ovog modula: import pyttsx3 # Inicijalizacija konvertora teksta u govor... engine = pyttsx3.init() voices = engine.getProperty(‘voices’) engine.setProperty(‘voice’, voices[1].id) # Recite nešto... engine.say(‘Hello world!’) engine.runAndWait() Agregacija komponenata Kombinovanjem koda gore navedenih komponenti, reorganizacijom na elokventniji način i dodavanjem mehanizama za početak ili završetak razgovora s virtualnim asistentom, proizvedena je sledeća Pajton datoteka main.py: import datetime import os import pyttsx3 import speech_recognition as sr from gcsa.google_calendar import GoogleCalendar from speech_recognition import UnknownValueError # Inicijalizacija prepoznavača govora… recognizer = sr.Recognizer() # Inicijalizacija konvertora teksta u govor... engine = pyttsx3.init() voices = engine.getProperty(‘voices’) engine.setProperty(‘voice’, voices[1].id) # Inicijalizacija Gugl kalendar API-ja... this_folder = os.path.dirname(__file__) google_calendar = GoogleCalendar(‘rodolfo.cangiotti@dxc.com’, credentials_path=os.path.join(this_folder, ‘credentials.json’)) # Definisanje nekih konfiguracionih parametara za skriptu AGENT_NAME = ‘Penny’ def listen(audio_source): try: recording = recognizer.listen(audio_source) # Objekat snimka se prikazuje nakon što se detektuje audio signal... sentence = recognizer.recognize_google(recording) except UnknownValueError: sentence = None # Konvertor nije mogao da razume rečenicu… except Exception as e: print(‘ERROR >>>’, repr(e)) raise e return sentence def render(text): engine.say(text) engine.runAndWait() def wait_for_agent_name(audio_source): while True: sentence = listen(audio_source) if not isinstance(sentence, str): continue sentence = sentence.strip() if AGENT_NAME.lower() in sentence.lower(): return def converse(audio_source): render(‘Zdravo, treba li vam pomoć?’) while True: sentence = listen(audio_source) if not isinstance(sentence, str): continue sentence = sentence.strip() sentence = sentence.lower() if ‘sastanak’ in sentence and \ ‘danas’ in sentence: render(f’Evo sastanaka za danas, {datetime.date.today()}:’) for idx, event in enumerate(google_calendar, 1): render(f”Događaj br. {idx}: {event.summary} “ f”from {event.start.strftime(‘%H %M’)} to {event.end.strftime(‘%H %M’)}”) render(“To je sve, nismo pronašli druge događaje!”) elif ‘Hvala ti’ in sentence or \ ‘hvala’ in sentence: render(“Nema na čemu, drago mi je da mogu da pomognem!”) break # Kraj razgovora... elif ‘ništa’ in sentence or \ ‘nema problema’ in sentence: render(‘U redu, slobodno mi se ponovo javite ako vam još nešto zatreba!’) break # Kraj razgovora... else: render(“Bojim se da ne razumem šta ste rekli. Možete li da ponovite?”) def main(): try: print(‘Pokretanje agenta...’) with sr.Microphone() as source: while True: wait_for_agent_name(source) converse(source) except KeyboardInterrupt: print(‘Završetak…’) if __name__ == ‘__main__’: main() Zaključak i dalji razvoj Projekat koji je opisan u ovom članku služi kao skroman primer potencijala programskog jezika Pajton. Posebno treba istaći njegovu jednostavnost, sažetost i nivo zrelosti koji je dostigao — uzimajući u obzir raznolikost dostupnih spoljnih modula u današnje vreme — što pokazuje da je moguće kreirati vredne alate sa samo nekoliko linija koda, čak i bez veoma dubokog znanja o tematici. Ovaj projekat imao je za cilj da posluži kao polazna tačka sa mnogo prostora za poboljšanja. Zapravo, budući razvoji mogu uključivati korišćenje modernijih modula za konverziju teksta u govor, implementaciju preciznijih algoritama prepoznavanja govora, kao i integraciju prethodno obučenih velikih jezičkih modela (LLM - large language models) kako bi se omogućili prirodniji i sveobuhvatniji razgovori sa virtuelnim asistentom. Zanima vas svet tehnologije i želite da još dublje istražite slične sadržaje? Pročitajte celo izdanje našeg magazina LoGeek Magazine - Issue #17 i pratite nas na LinkedIn-u. Literatura Python Launcher for Windows documentation Python venv documentation Speech Recognition Python package gcsa Python package Google Calendar Simple API documentation pyttsx3 Python package TIOBE Index Build Your Own Alexa With Just 20 Lines of Python  

12.07.2024. ·
2 min

Programeri ignorišu upozorenja, C++ sve popularniji

Čini se da developeri nisu poslušali savet da prestanu da koriste C++ i C zbog bezbednosnih problema sa memorijom, s obzirom na to da najnoviji podaci ukazuju da se C++ popeo na drugo mesto Tiobe indeksa popularnosti programskih jezika, odmah iza Pythona, dok se C spustio na treće mesto. „Glavne snage C++ su performanse i skalabilnost, dok su najveća slabost brojni načini na koje se nešto može obaviti zbog velikog broja funkcija usled duge istorije i želje za maksimalnom kompatibilnošću sa starijim verzijama“, izjavio je Pol Jensen, CEO kompanije Tiobe Software, u blog postu povezanom sa objavom ovih rezultata. Osvrćući se na mane, Jensen je naglasio da C++ otežava razumevanje i održavanje koda ako svako uradi nešto drugačije kako bi postigao istu stvar. „C++ i dalje poseduje funkcije koje niko ne bi trebalo da koristi, ali se ipak mogu iskoristiti“, dodao je Jensen. Ovaj skok na listi je u suprotnosti sa izveštajem Nacionalnog direktora za sajber bezbednost koji je savetovao developerima da prestanu da koriste C++ i C zbog bezbednosti memorije. Izveštaj je napisan sa ciljem da se smanji rizik od sajber napada, a kao primer bezbednog programerskog jezika navodi se Rust. „Savet nije baš najbolje osmišljen. Kako možete preporučiti Rust kada još ne postoje alati i developeri? Pritom, Rust je prilično kompleksan jezik za učenje, tako da nije nešto što želite da ostavite državnim developerima. Sa druge strane, C++ može biti korišćen na bezbedan način, ali morate znati kako to da uradite”, objašnjava Jensen. C++ se u velikoj meri koristi u embedded sistemima, razvoju igara i softveru za finansijsko trgovanje, dodaje Jensen. Upozorenje je naišlo na oštru osudu kreatora C++ jezika, Bjarnea Stroustrupa, koji je naglasio napore C++ komiteta za standardizaciju da ovaj programski jezik učini bezbednijim. Tiobe indeks rangira popularnost programskih jezika na osnovu povratne informacije brojnih inženjera širom sveta, kurseva i vendora koji su povezani sa svakim jezikom. Top 10 najpopularnijih jezika u junu mesecu: Python, sa rejtingom koji iznosi 15.39% C++, 10.03% C, 9.23% Java, 8.4% C#, 6.65% JavaScript, 3.32% Go, 3% SQL, 1.75% Visual Basic, 1.66% Fortran, 1.53% Poređenja radi, lista koju kompilira Pypl indeks popularnosti programskih jezika procenjuje popularnost nekog jezika na osnovu toga koliko se često on pretražuje na Googleu, i ona za mesec jun izgleda ovako: Python, sa udelom od 29.06% Java, 15.97% JavaScript, 8.7% C#, 6.73% C/C++, 6.4% R, 4.75% PHP, 4.57% TypeScript, 3.0% Swift, 2.76% Rust, 2.5%  

11.07.2024. ·
3 min

Sintaksa vs. semantika: Kako mozak reaguje na greške u kodu

Daleko iza nas je vreme kada se na programere gledalo kao na ljude sa druge planete. Sada taj posao, na ovaj ili onaj način, obavlja veliki broj ljudi, pa je postalo veoma značajno utvrditi što precizniji model po kome bi se programski jezik što efikasnije savladao. Doveden je u pitanje tradicionalni model učenja, jer statistika ukazuje na to da čak 50 procenata polaznika koji upišu uvodne kurseve programiranja, širom sveta, odustanu pre završetka. Ljudi koji se bave istraživanjem i razvijanjem metoda učenja programiranja trenutno su zaokupljeni dilemom da li je kod više sličan jeziku ili matematici. Odgovor na ovo pitanje mogao bi da usmeri metod učenja programiranja u novom smeru i eventualno smanji procenat polaznika koji odustaju. „Scientific Reports“ je portal sa otvorenim pristupom koji objavljuje originalna istraživanja iz svih oblasti prirodnih nauka, psihologije, medicine i inženjerstva. Oni su u svojoj studiji pokušali da odgonetnu šta se, zapravo, dešava u mozgu programera kada, čitajući kod, naiđe na dve vrste grešaka. Prva vrsta su greške u formi (sintaksa), a druga vrsta su greške u značenju (semantika). U istraživanju je učestvovalo 62 Python programera, različitih nivoa znanja i iskustva, koji su postepeno čitali linije koda u realnom vremenu. Kako bi saznali nešto više o tome kako mozak programera reaguje na „kršenje“ forme i značenja koda, istraživači su koristili dva elektrofiziološka indikatora N400 i P600, koji se, inače, koriste za procese razumevanja jezika kod osoba kojima je dati jezik maternji i kod onih kojima je to drugi jezik. Tokom eksperimenta, svaka proba počinjala je prikazivanjem globalne promenljive na ekranu tokom 15 sekundi, nakon čega je linija koda prikazivana postepeno (stavku po stavku). Stavke su bile definisane kao delovi koda koji se pojavljuju između razmaka. Zadatak učesnika je bio da procene „prihvatljivost“ koda (termin koji je namerno ostavljen nejasnim, kako bi se sprečila pristrasnost prema sintaksičkim naspram semantičkih aspekata koda). Rezultati su pokazali da su manipulacije formom izazvale P600 efekte, dok su manipulacije značenjem rezultirale N400 efektima. Ono što je bilo veoma interesantno je to da je veća stručnost u Python-u bila povezana sa većom osetljivošću na kršenje forme, što ide u prilog ideji da je učenje programiranja slično kao i učenje drugog govornog jezika, jer se oslanja na integraciju „znanja o pravilima“. Ipak, istraživači su se složili da ova sličnost ne pruža i dokaz o tome da je učenje programiranja isto kao učenje drugog govornog jezika i potpuno neočekivano, dobijeni podaci zapravo su više doprineli zagovornicima teorije da N400 i P600 komponente uopšte nisu specifične za obradu učenja jezika. Sa druge strane, programeri svih nivoa veštine pokazali neuralnu osetljivost na manipulacije značenjem, što sugeriše na to da oslanjanje na postojeće semantičke odnose olakšava razumevanje koda, bez obzira na nivo veštine. U suštini, ovo predstavlja prvu studiju o tome kako programeri ispoljavaju neuralnu osetljivost na informacije o formi i značenju, dok u realnom vremenu čitaju kod i pokušavaju da ga razumeju. Svi dobijeni rezultati zajedno su pokazali da se u mozgu programera dešavaju procesi koji podsećaju na one koji se dešavaju kod onih drugih, naučenih, simboličkih i pravilno zasnovanih sistema kao što su čitanje, matematika ili učenje drugog jezika. U svetlu otkrivenih sličnosti, istraživači koji su radili na ovoj studiji u zaključku predlažu da trenutna debata o tome da li je kod više nalik jeziku ili matematici bude fokusirana na pitanje o vrstama informacija koje programeri koriste da razumeju šta, zapravo, linija koda radi i kako se to razvija dok postaju veštiji u kodiranju. Iako ne deluje da su ovom studijom odmakli daleko od početne tačke, ona može da posluži kao dobar uvod u promenu pravca istraživanja načina na koji učimo programske jezike, što bi kasnije dovelo do pojave novih, savršenih metoda učenja. Nagli skok u razvoju veštačke inteligencije svakako neće doprineti boljem učenju i želji za sticanjem znanja, tako da je važno da se otkrije najbolji mogući način da se znanje prenese i da se na kraju taj visok procenat polaznika koji odustaju pre završetka obuke drastično smanji.  

HelloWorld
0
10.07.2024. ·
1 min

VSCode ekstenzija koja je “zarazila” stotine hiljada računara

Većina programera koristi VSCode bez previše razmišljanja o ekstenzijama koje instaliraju, sve dok te ekstenzije olakšavaju rad ili poboljšavaju izgled programa. Međutim, izraelski bezbednosni istraživači (white hat hakeri) odlučili su da provere koliko je lako napisati VSCode ekstenziju koja izgleda legitimno, a u pozadini izvršava maliciozni kod. Istraživači su iskoristili popularnu temu "Dracula" i promenili njen naziv u "Darcula". Legitimnost ove teme osigurali su na dva načina: Prvo, naziv "Darcula" koristi se u JetBrains-ovim razvojnim okruženjima, što je mnoge programere navelo da pomisle da je tema zvanična. Drugo, u opisu Darcula teme stajalo je da je njihov web-sajt verifikovan (www.darculatheme.com, koji je sada ugašen). Nakon što su pustili ekstenziju u etar, za samo 24 sata bila je instalirana širom sveta. Eksperiment je otkrio šokantne podatke kada su istraživači analizirali druge ekstenzije: 283 ekstenzije sa poznatim zlonamernim kodom (229 miliona instalacija). 161 ekstenzija koje komuniciraju sa hardkodovanim IP adresama. 452 ekstenzije koje pokreću nepoznate izvršne fajlove. 304 ekstenzije koje koriste GitHub repozitorijum drugog izdavača, što ukazuje da su kopije. Ono što je zabrinjavajuće jeste činjenica da Microsoft nema ozbiljniju bezbednosnu proveru nad ekstenzijama koje se nalaze u extension store-u. Zbog toga je jedini savet za kolege programere da pažljivo proveravaju ekstenzije pre nego što ih instaliraju u svoj VSCode.  

09.07.2024. ·
2 min

Korak po korak do vašeg savršenog Infostud profila: Popuni profil do 100%!

Kako bismo ti olakšali proces dodavanja informacija o tvojim veštinama i iskustvu, sve nedostajuće informacije objedinili smo na jednom mestu. Na jednostavan i pregledan način popuni podatke u svom Infostud profilu, dostigni 100% popunjenosti, istakni se pred poslodavcima i povećaj svoje šanse za nove poslovne prilike.  Zašto je važno popuniti Infostud profil do 100%?  Kada poslodavci traže idealnog kandidata, oslanjaju se na informacije koje kandidati pružaju u svojim profilima. Potpuno popunjen profil omogućava ti da se istakneš, jer pruža sveobuhvatnu sliku o tvojim kvalifikacijama, veštinama i iskustvu. Evo kako to može pomoći:  Bolji prvi utisak: Detaljan profil pomaže poslodavcima da odmah steknu jasnu sliku o tvojim sposobnostima i iskustvu. To ostavlja snažan prvi utisak i može biti odlučujuće u procesu selekcije.  Veća vidljivost: Popunjavanjem svih obaveznih polja osiguravaš da tvoji podaci budu vidljivi poslodavcima, pružajući im potpunu sliku o tvojim kvalifikacijama i iskustvu. Detaljno opisano radno iskustvo i redovno osvežavanje profila dodatno povećavaju tvoje šanse da budeš primetan u bazi kandidata.  Jasne informacije: Popunjavanjem svih sekcija profila, uključujući osnovne podatke, radno iskustvo, obrazovanje, jezičke i tehničke veštine, omogućavaš poslodavcima da brzo i lako procene tvoje kvalifikacije za određeni posao.  Kako možeš popuniti svoj Infostud profil?  Osnovni podaci: Unesi svoje ime, prezime, grad, državu i broj telefona. Ove informacije su ključne za bolju komunikaciju sa poslodavcima.  Radno iskustvo: Navedi prethodne pozicije, odgovornosti i dostignuća. To pokazuje poslodavcima tvoju stručnost i profesionalizam.  Obrazovanje: Unesi detalje o svom obrazovanju, uključujući institucije koje si pohađao/la i diplome koje si stekao/la.  Poznavanje jezika: Opiši jezike koje govoriš i na kom nivou ih poznaješ. Jezičke veštine su često ključne za određene poslove.  Rad na računaru: Navedi poznavanje veština rada na računaru, od osnovnih programa do softverskih alata i tehnologija koje znaš da koristiš. Ovo je važno za poslove koji zahtevaju specifične tehničke veštine.  Dodatna usavršavanja: Unesi informacije o kursevima, obukama i sertifikatima koje si stekao/la. To pokazuje tvoju posvećenost kontinuiranom učenju i spremnosti za dalji profesionalni razvoj.  Lične osobine i veštine: Istakni svoje najjače lične osobine i veštine relevantne za posao.  Linkovi: Podeli linkove ka svojim radovima, portfolijima ili profilima na drugim platformama kako bi dodatno istakao/la svoje veštine i iskustvo.  Naš cilj je da ti pomognemo da se što bolje predstaviš poslodavcima i da povećaš svoje šanse za dobijanje posla iz snova. Zato te pozivamo da popuniš svoj profil do 100% i iskoristiš sve prednosti koje ti naša podrška pruža.  Ukoliko još uvek nemaš kreiran Infostud profil ili nije popunjen do kraja, možeš to uraditi na sledećem linku.  Srećno!   

HelloWorld
0
09.07.2024. ·
2 min

GitHub Copilot proširen ekstenzijama trećih strana

GitHub je predstavio novu funkciju koja će omogućiti developerima da prošire Copilot aplikacijama trećih strana, dodajući novi nivo prilagodljivosti. Na ovogodišnjoj Build konferenciji, GitHub je takođe najavio akviziciju kompanije Semantic Machines radi unapređenja svojih proizvoda. GitHubov „AI pair programming“ alat, Copilot, privukao je veliku pažnju zahvaljujući lansiranju Copilot Extensions – nove funkcije koja omogućava developerima da prošire Copilot aplikacijama trećih strana. Ova funkcija je privukla širok spektar partnera, uključujući DataStax, LambdaTest, LaunchDarkly, Microsoft Azure i Teams, MongoDB, Pangea, Sentry i Stripe. Mario Rodrigez, viši potpredsednik za proizvode u GitHubu, izjavio je da je cilj GitHuba da učini Copilot najmoćnijom i najinteligentnijom AI platformom na svetu, sa neograničenim mogućnostima za unapređenje tehnologije i društva. Dodao je da programiranje u prirodnom jeziku smanjuje barijere za one koji žele da kreiraju softver. Copilot Extensions dostupne su na GitHub Marketplaceu i omogućavaju developerima da kreiraju sopstvene ekstenzije prilagođene njihovim sistemima i programskom interfejsu. Ova fleksibilnost omogućava developerima da zadrže svoj način rada i lako se povezuju sa različitim sistemima koristeći prirodni jezik. Na primer, korisnici Octopus alata mogu da provere status svojih diplojmenta kroz Copilot ekstenziju, dok DataStax korisnici mogu da interaguju sa svojim bazama podataka koristeći prirodni jezik. Trenutno su Copilot ekstenzije dostupne samo odabranim korisnicima, ali će u budućnosti biti dostupne i širem krugu developera. Developeri mogu da aktiviraju ove ekstenzije kroz GitHub Marketplace i koriste ih u GitHub Copilot Chatu, Visual Studiu i VS Codeu. Bezbednosni problemi: Mračna strana otvorenih platformi Uprkos ovim poboljšanjima, GitHub se našao u vestima zbog napada sajber kriminalaca koji su iskoristili platformu za distribuciju malware programa. Recorded Future je otkrio kampanju koja koristi legitimne platforme kao što su GitHub i FileZilla za distribuciju malware programa koji kradu podatke i bankarskih trojanaca, predstavljajući se kao poznati softveri poput 1Password, Bartender 5 i Pixelmator Pro. Ova kampanja, poznata kao GitCaught, fokusira se na zloupotrebu stvarnih internet servisa za pokretanje sajber napada, koristeći više vrsta malware programa ciljanih na Android, macOS i Windows. Kampanja uključuje kreiranje lažnih profila i repozitorijuma na GitHubu, koji sadrže lažne verzije poznatih softvera namenjenih za krađu osetljivih podataka sa uređaja. Ovi štetni fajlovi se šire putem malvertajzinga i SEO kampanja. Dalja istraživanja su povezala disk image fajlove na GitHubu sa većom kampanjom koja ima za cilj distribuciju malware programa poput RedLine, Lumma, Raccoon, Vidar, Rhadamanthys, DanaBot i DarkComet RAT od avgusta 2023. Microsoftov tim za bezbednost izvestio je da je macOS backdoor, poznat kao Activator, i dalje aktivna pretnja. Ovaj backdoor se distribuira putem disk image fajlova koji imitiraju krekovane verzije legitimnog softvera i cilja aplikacije Exodus i Bitcoin-Qt wallet da bi krao podatke.  

Da ti ništa ne promakne

Ako želiš da ti stvarno ništa ne promakne, prijavi se jer šaljemo newsletter svake dve nedelje.