Slijede razlike između dviju inačica stranice
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
studenti:bruno_humic:mp_dnevnik [2014/02/10 13:48] kskracic |
studenti:bruno_humic:mp_dnevnik [2023/06/19 16:21] (trenutno) |
||
---|---|---|---|
Redak 3: | Redak 3: | ||
==== Dnevnik rada ==== | ==== Dnevnik rada ==== | ||
- | === 1. tjedan (21.10 - 27.10.2013.) === | + | === 1. tjedan (4.2 - 8.2.2014.) === |
- | == Dosadašnji rad == | + | U prvom tjednu rada cilj je bio upoznati se sa osnovama asemblera za MS Windows operacijski sustav. U tu svrhu prošao sam seriju videa na stranici SecurityTube.net kako bi se prisjetio temeljnih stvari vezanih za asembler na MS Windows i Linux okruženju. Serije videa koje sam gledao mogu se na navedenoj stranici pronaći pod nazivima "Windows Assembly Language" i "Linux Assembly Megaprimer". |
----- | ----- | ||
- | === 2. tjedan (28.10 - 3.11.2013.) === | + | === 2. tjedan (10.2 - 18.2.2014.) === |
== Dosadašnji rad == | == Dosadašnji rad == | ||
+ | Ovaj tjedan uglavnom sam se bavio proučavanjem raznih materijala vezanih za reverzni inženjering. Preciznije, većinu vremena proveo sam čitajući određena poglavlja iz knjiga "Reversing, Secrets Of Reverse Engineering" i "Practical Malware Analysis". U poglavljima "Foundations" i "Low-Level Software" iz prve knjige naučio sam osnovne pojmove i tehnike vezane za reverzni inženjering te sam se prisjetio asemblerskog jezika. U poglavlju "Windows Fundamentals" dobio sam uvid u arhitekturu Windows operacijskog sustava te sam se polagano počeo privikavati na Windows API pošto ću se baviti analizom zloćudnih programa na tom operacijskom sustavu. | ||
+ | U knjizi "Practical Malware Analysis" prošao sam poglavlje vezano za prepoznavanje tipičnih dijelova programskog jezika C u asembleru. Tako sam naučio kako prepoznati razne vrste petlji (for, while), grananja (if...else, switch), strukture, povezane liste te polja. Osim toga, u navedenom poglavlju upoznao sam se i sa osnovnim vrstama poziva funkcija u asembleru (engl. calling conventions). Nakon što sam prošao navedena poglavlja te dobio određene temelje iz područja reverznog inženjerstva, pribavio sam IDA Pro alat za rastavljanje (engl. dissasembler). Radi se o jednom od najpoznatijih alata za analizu asemblera te sam u poglavlju "IDA PRO" u knjizi "Practical Malware Analysis" naučio osnove za korištenje tog alata. | ||
== Daljnji koraci == | == Daljnji koraci == | ||
+ | U sljedećem tjednu planiram se više orijentirati na praksu. Iz tog razloga upoznati ću se sa alatima vezanima za debugging i decompile na Windows operacijskom sustavu. Kako bi dobio dobar uvid u te alate proći ću poglavlje "Reversing Tools" u knjizi "Reversing, Secrets Of Reverse Engineering". Također, krenuti ću sa proučavanjem Olldbg debuggera te rješavati neke jednostavnije zadatke iz područja reverznog inženjeringa. | ||
----- | ----- | ||
- | === 3. tjedan (4.11 - 10.11.2013.) === | + | === 3. i 4. tjedan (19.2 - 5.3.2014.) === |
== Dosadašnji rad == | == Dosadašnji rad == | ||
+ | U ova dva tjedna rada najviše sam se bavio reverzingom jednostavnih crackme programa sa stranice "http://thelegendofrandom.com/blog/sample-page". Uspio sam proći prvih 13 zadataka te do kraja ovog tjedna planiram završiti sa zadnja dva kako je planirano u zadatku. Sav reverzing sam radio preko Ollydbg debuggera pošto se radi o jednom od najpopularnijih alata za reverzni inžinjering. Osim praktičnog dijela čitao sam o ostalim alatima koji se koriste u reverznom inženjeringu te sam isprovao besplatni verziju IDA Pro alata. | ||
| | ||
== Daljnji koraci == | == Daljnji koraci == | ||
+ | U sljedećem tjednu planiram završiti sa zadanim tutorialima na stranici "http://thelegendofrandom.com/blog/sample-page" te se okušati u malo složenijim problemima na stranici " http://crackmes.de". | ||
----- | ----- | ||
- | === 4. tjedan (11.11 - 17.11.2013.) === | + | === 5. i 6. tjedan (6.3 - 24.3.2014.) === |
== Dosadašnji rad == | == Dosadašnji rad == | ||
+ | U posljednja dva tjedna bavio sam se najviše reverznim inžinjeringom raznih Crackme programa sa stranice http://crackmes.de/ . Do sada sam uspio riješiti 20ak Crackmea te se sve bolje snalazim u tome području. Također, prvi puta sam se susreo sa programima pisanima u Delphi programskom jeziku. Disasemblanjem tih programa dobiva se struktura asemblerskog koda koja je donekle drugačija od asemblerskog zapisa programa pisanih u C i C++ jezicima, stoga sam dio vremena proveo čitajući literaturu namijenjenu reverznom inženjerstvu Delphi programa. Tako sam se susreo sa nekim novim alatima, poput Resource Hacker i DeDe, koji značajno pojednostavljuju reverzing Delphi programa. | ||
+ | Osim toga, započeo sam proučavati literaturu vezanu za naprednije statičke i dinamičke tehnike reverzinga iz knjige "Practical Malware Analysis". Time sam započeo sa drugom točkom plana rada gdje je potrebno proučiti tehnike analize zloćudnih aplikacija. U sljedećih nekoliko dana nastojat ću proći cijelu literaturu vezanu za nalizu kako je dogovoreno na sastanku. Nakon toga krenut ću na analizu nekih stvarnih malicioznih programa te ,nadam se da u konačnici, ponuditi i neka riješenja za njih. | ||
~~NOTOC~~ | ~~NOTOC~~ | ||
Redak 37: | Redak 40: | ||
----- | ----- | ||
- | === 5. tjedan (18.11 - 24.11.2013.) === | + | === 7. tjedan (25.3 - 4.4.2014.) === |
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | Napravio sam prvu verziju Bee-bota koji se upravlja računalom preko USB kabela i može se kretati u smjeru naprijed-nazad. Rastavio sam DVD drive i na donji pravokutni dio limenog kučišta sam pričvrstio tri DC motora. Po jedan sa stražnje lijeve i desne strane i jedan naprijed u sredini. Zadnja dva sam spojio na Arduino, protoboard, IC s H-bridegom i njima pokretao autić, dok je prednji motor služio samo za održavanje ravnoteže. | + | U posljednjih tjedan dana bavio sam se naprednijima temama iz područja statičke i dinamičke analize zločudnih programa. Prošao sam dio 2(Napredna statička analiza) i dio 3(Napredna dinamička analiza) u knjizi "Practical Malware Analysis". Na kraju svakog poglavlja u knjizi nalazi se popis malicioznih programa i zadataka koje je potrebno napraviti analizom istih te sam prošao te zadatke i time po prvi puta zakoračio u praktični dio vezan za analizu zločudnih programa. |
- | == Daljnji koraci == | + | Osim toga naučio sam se koristiti i nekim dodatnim alatima vezanima za analizu malwarea (osim Ollydbg i IDApro koje sam koristio i prije). Neki od tih alata su PEview, PEid, Dependency Walker, Process monitor, Process explorer te apateDNS. |
- | Napraviti cjelokupni program za rad Bee-bota, proučiti i naći rješenja za "ekstremne" slučajeve u kojima se Bee-bot može naći, uplodati programe direktno na zamjenski čip bez prethodnog uplodanja bootloadera. | + | |
~~NOTOC~~ | ~~NOTOC~~ | ||
----- | ----- | ||
- | === 6. tjedan (25.11 - 1.12.2013.) === | + | === 8., 9., 10. tjedan (5.4. - 29.4.2014.) === |
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | Mislim da bi rješenje za određivanje je li Bee-bot u nekom od "ekstremnih" slučajeva (podignut s poda, proklizavanje kotača ...) bilo korištenje akcelerometra koji može mjeriti vibracije. Odredio bih koliko iznose vibracije kada je Bee-bot u normalnom načinu rada i napravio bi rješenja za situacije kada se nađe u zabranjenom načinu rada. Umjesto prednjeg DC motora stavio sam kotač koji se može rotirati za 360 stupnjeva i tada bi autić mogao mijenjati smjer na način da se nakratko ugasi motor suprotan od strane u koju se želi dovesti autić tj. da se ostavi upaljen onaj u koju se stranu želi skrenuti. Tako ako se ostavi ugašen desni motor i lijevi upaljen motor će skrenuti u lijevo. Autić se nije pomicao, iako su motori radili kako treba. Pretpostavljam da su preslabi. | + | U posljednja tri tjedna bavio sam se analizom stvarnog malwarea. Program sam pronašao putem stranice http://www.malwareblacklist.com/ i sudeći po podacima sa stranice VirusTotal.com , pretpostavljam da se pojavio početkom 2013. godine. Odlučio sam napisati blog post na engleskom koji sadrži detaljnu statičku i dinamičku analizu nad zloćudnim programom jer smatram kako bi neke stvari u tom postu mogle poslužiti ostalima koji se bave ovim područjem. Blog sa detaljnom analizom nalazi se na sljedećoj poveznici: http://ubnixmalwareanalysis.blogspot.com/ |
- | + | Sljedeći korak je probati analizirati neki zapakirani malware te proučiti najpoznatije packere/unpackere. U tu svrhu ću također napisati blog kada završim. | |
- | ~~NOTOC~~ | + | |
- | ----- | + | |
- | === 7. tjedan (2.12 - 8.12.2013.) === | + | |
- | == Dosadašnji rad == | + | |
- | Proučio sam kako i na koji način radi laserski miš za računalo i njeogv IC ću iskoristiti za određivanje brzine i stanja Bee-bota. | + | |
- | == Daljnji koraci == | + | |
- | Napraviti "dijagram stanja" koji će grafički prikazati što će Bee-bot izvršavati i u kojem će se stanju naći u ovisnosti o unešenoj naredbi. | + | |
~~NOTOC~~ | ~~NOTOC~~ | ||
- | |||
- | ----- | ||
- | === 8. tjedan (9.12 - 15.12.2013.) === | ||
- | == Dosadašnji rad == | ||
- | Napravio sam "dijagram stanja" koji pokazuje kako bi Bee-bot trebao raditi. Proučio sam i uspio uplodati program (sketch) na Arduino direktno, bez prethodnog uplodanja bootloadera, kako bi se uštedilo na količini memorije. | ||
- | == Daljnji koraci == | ||
- | Probati pomoću zupčanika iz CD/DVD drivea dobiti da se Bee-bot može pomicati, jer DC motori imaju preslabi okretni momenat da bi uopće pokrenuli cijelu konstrukciju. | ||
- | ~~NOTOC~~ | ||
----- | ----- | ||
- | === 10. tjedan (16.12 - 22.12.2013.) === | + | === 11. tjedan (30.4. - 11.5.2014.) === |
== Dosadašnji rad == | == Dosadašnji rad == | ||
- | Zupčanici iz CD/DVD drivea neće biti dobri jer nema niti jedan par međusobno istih zupčanika i niti jedan se ne može staviti na već izvađene motore. Izvadio sam iz dva DC/DVD drivea dio kučišta na kojem se nalazi DC motor zajedno sa zupčanicima koji se izbacuju "ladicu" drivea. | + | U posljednjih tjedan dana bavio sam se proučavanjem alata za pakiranje(engl. packers) i raspakiranje(engl. unpackers) izvršnih datoteka. U svrhu toga prošao sam poglavlja 12,13 i 18 iz knjige "Practical Malware Analysis" te sam sa stranice tuts4you.com nabavio jedan zapakirani program koji sam otpakirao i opisao cijeli postupak na blogu: http://ubnixmalwareanalysis.blogspot.com/2014/05/manual-unpacking-of-upx-304.html |
- | == Daljnji koraci == | + | Također, napisao sam se i izvještaj na Hrvatskom jeziku koji sam poslao na uvid asistentu. Sljedeći tjedan bi trebao biti sastanak na kojem ćemo dogovoriti daljnje korake rada. |
- | Pokušati staviti IC od laserskog miša i mjeriti brzinu konstrukcije. | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ----- | + | |
- | === 11. tjedan (23.12 - 29.12.2013.) === | + | |
- | == Dosadašnji rad == | + | |
- | Motore sam zajedno sa zupčanicima na plastici iz kučišta drivea pričvrstio na šasiju i sada se konstrukcija bez problema pomiče u bilo kojem smjeru. Zamijenio sam podlogu od CD/DVD drivea na kojoj se nalazio sklop i na kojoj su bili pričvršćeni motori s poklopcem (gornjom stranom) HDD-a koja je čvršća i lakša i čitavom konstrukcijom za sada upravljam preko laptopa koji je USB kabelom spojen na Arduino i šaljem mu naredbe, preko serial porta, u kojem smjeru da okreče motore. | + | |
- | == Daljnji koraci == | + | |
- | Proučiti librarye napravljenje za Arduino za upravljanje IC-em iz laserskog miša. Saznati kako programirati Arduino da upravlja konstrukcijom bez da je prikopčan na laptop putem USB-a i da mu kao izvor energije služi baterija. | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 12. tjedan (30.12.2013. - 5.1.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | Napravio sam dijagram stanja i dijagram toka programa. Napravio sam pojednostavljeni sklop autića s tri push-buttona i dvije ledice. Pritiskanje prva dva gumba bi određivalo koja će LEDica blinkati, a treći gumb, kada se pritisne, bi u programu predstavljao kraj unosa naredbi preko prva dva gumba. Još nisam uspio dobiti program da ispravno radi, mada se program uploada bez javljanja grešaka. | + | |
- | == Daljnji koraci == | + | |
- | Poraviti program da radi kako treba i onda proširiti funkcionalnost na autić. Popraviti i doraditi dijagram stanja i dijagram toka programa | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 13. tjedan (6.1.2014. - 12.1.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | Dodao sam još tri LEDice i sada ih ima sveukupno četiri i one predstavljaju smjer gibanja autića. Spojio sam i šest push-buttona od kojih prva četiri određuju koja će se LEDica blinkati. Peti button određuje kada je gotov unos naredbi i kada će početi blinkanje, a ako se pritisne dok LEDice blinkaju, označava kraj tj. LEDice prestaju blinkati. Šesti button služi za brisanje unešenih naredbi | + | |
- | == Daljnji koraci == | + | |
- | Postići da kada se stisne peti gumb dok LEDice još blinkaju, blinkanje prestane. | + | |
- | + | ||
- | + | ||
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 14. tjedan (13.1.2014. - 19.1.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | Dodao sam mogučnost programu da, kada je pritisnut peti gumb, blinkanje prestane i program ponovo čeka pritisak nekih od prva četiri gumba koji označuju koja će LEDica blinkati. Program sada unešene naredbe (pritiske gumbiju) sprema u EEPROM. | + | |
- | == Daljnji koraci == | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 15. tjedan (20.1.2014. - 26.1.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | Napravio sam program gdje se u "glavnom dijelu" (void loop) očitavaju pritisnute tipke, određuje u kojem se stanju program trenutno nalazi i onda koje LEDice upaliti ili ugasiti. Dodan je i interrupt koji se dešava 5 puta u sekundi i on provjerava koje je trenutno stanje i da li je pritisnut peti gumb. Ukoliko je program u stanju blinkanja LEDica i peti gumb nije pritisnut, blinkanje se nastavlja. Ukoliko je program u stanju blinkanja LEDica i peti gumb je pritisnut, blinkanje prestaje i program prelazi u stanje "programiranja" i čeka nove pritiske buttona koji određuju kako blinkati LEDice. | + | |
- | == Daljnji koraci == | + | |
- | Primjeniti program na autiću. | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 16. tjedan (27.1.2014. - 2.2.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | Prebacio sam breadboard i Arduino na šasiju autića, priključio bateriju i pokrenuo ga. Autić se bez problema giba naprijed/nazad, ali skretanje je problem zbog središnjeg kotača koji se ne okreče dovoljno brzo. | + | |
- | == Daljnji koraci == | + | |
- | Naći drugo rješenje za središnji kotač. | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 17. tjedan (3.2.2014. - 9.2.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | Probao sam umjesto središnjeg kotača staviti kuglicu. Nije pomoglo jer je fiksirana, pa autić samo struže njome po podu. | + | |
- | == Daljnji koraci == | + | |
- | Napraviti program gdje će se očitavanje tipki i određivanje stanja dešavati u interruptu, a u glavnom dijelu programa će se samo izvoditi naredbe vezane za pojedinu tipku. Napraviti središnji kotač na principu starog računalnog miša s kuglicom, gdje je kuglica u potpunosti slobodna i može se okretati u bilo kojem smjeru. | + | |
- | ~~NOTOC~~ | + | |
- | + | ||
- | ---- | + | |
- | === 18. tjedan (10.2.2014. - 16.2.2014.) === | + | |
- | == Dosadašnji rad == | + | |
- | == Daljnji koraci == | + | |
- | ~~NOTOC~~ | + |