Analiza malware, cybersecurity - jak zacząć

Analiza malware, cybersecurity - jak zacząć
0

Od pewnego czasu zastanawiam się nad zmianą ścieżki kariery. Do tej pory pracowałem i pracuje jako programista, przy aplikacjach webowych, systemach mocno backendowych oraz bazach danych. Jednak chciałbym zająć się czymś innym, nowym i ciekawszym.

Bezpieczeństwo komputerowe oraz tematy powiązane z wirusami, jak działają, jak je "rozszyfrować" interesowały mnie już na studiach, jednak nigdy nie miałem praktycznej wiedzy na ten temat. Chciałbym na początek podszkolić się we własnym zakresie z analizy malware, zabezpieczeń komputerów czy sieci.
Podstawową wiedzę z security posiadam, nie raz zetknąłem się z nią czy to na studiach, w pracy, czy ogólnie w internecie. Chodzi mi teraz o to, żeby całkowicie zająć się tą tematyką.

Znam dość dobrze C/C++ oraz mam jakieś podstawy assemblera. Znalazłem też kilka kursów i stron w internecie, które dość fajnie pokazują jak zacząć.
Jednak chciałbym dowiedzieć się więcej, w szczególności o tym jak zacząć naukę analizy malware'u - jakie narzędzia, kursy, książki ogarnąć na początek, żeby potem móc to w jakiś sposób praktykować.
Macie jakieś sprawdzone porady?

RE
Shameless plug: jak już się trochę douczysz i będziesz chciał analizować malware full time to wal do nas (CERT Polska), lepszego miejsca na początek w Polsce nie znajdziesz.
Bartosz Wójcik
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 4 lata
  • Postów:439
2

Nieskromnie:

Szeroki przegląd narzędzi do reverse engineeringu
https://www.pelock.com/pl/artykuly/przeglad-narzedzi-do-reverse-engineeringu

Techniki wykorzystywane przez malware do ochrony przed antywirusami
https://www.pelock.com/pl/artykuly/anti-reverse-engineering-wirusy-kontra-antywirusy

Przykładowa analiza techniczna malware:
https://www.pelock.com/pl/artykuly/kod-zniszczenia-analiza-malware

Darmowa książka o reverse engineeringu, bardzo ciekawie i dobrze napisana:
https://beginners.re/

Ostatnio na ZaufanejTrzeciejStronie można znaleźć ciekawe analizy malware.

https://zaufanatrzeciastrona.pl/post/rozmowy-z-botnetem-czyli-analiza-zagrozenia-krok-po-kroku/

edytowany 2x, ostatnio: Bartosz Wójcik
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2
  1. Jest sporo serwisów w internecie z crackme i zadaniami z zakresu RE
  2. Klikać CTFy -> ctftime.org tylko na samym tutejszym forum udzielają się członkowie 3 różnych drużyn. Może Raccoons cię przygarną? @big_y @WhiteLightning @stawrocek @damonsson

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

@Shalom - taki mam właśnie zamiar. Na początek zaznajomić się z RE, nauczyć się w odpowiednim stopni asm i podszkolić z c++. Następnie wziąć jakieś proste programiki i je deasemblować. Myślę, że na początek będzie to ok.
Co do CTF' ów - wydaje mi się, że muszę jeszcze pogłębić wiedzę z pewnych zakresów, żeby wziąć w tym udział :).

@Bartosz Wójcik - Dzięki, przeglądnę :).

@Rev - dzięki bardzo za propozycję. Może kiedyś będę myślał bardziej o pracy pod tym względem, jednak najpierw jakieś umiejętności :). Z ciekawości - jak jest w tej "działce" z doświadczeniem? Warto już mieć coś wcześniej czy po prostu trzeba opanować pewne bardziej niskopoziomowe zagadnienia i można szukać pracy?

1

Zacząłem naukę od analizy teoretycznych rzeczy, z tych stron:
https://digital-forensics.sans.org/blog/2010/11/12/get-started-with-malware-analysis/
https://blog.malwarebytes.com/security-world/2012/09/so-you-want-to-be-a-malware-analyst/

Pytanie odnośnie środowiska do RE oraz analizy. Czy maszyny wirtualne są konieczne? Posiadam stary komputer, który do niczgo mi nie służy, a który ma na tyle wystarczające parametry, zeby służyć jako laboratorium. Wtedy jedyny sens zastosowania VM widzę po to, żeby postawić na nich różne systemy operacyjne (linux, inne windowsy, mac, etc.) i sprawdzić jak dane programy zachowują się pod nimi. Dobry trop?

Postanowiłem też na początek bardziej zagłębić RE i tym się zająć. Głównie napisać jakieś proste programy, a potem je zdekompilować.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Nie no odpalanie malware/nieznanego softu do reversowania pod nie-vmką to szaleństwo trochę. Jak ci ten malware/binarka namiesza w systemie to co? VMkę możesz mieć skopiowaną, albo mieć snapshoty i w 5 sekund sobie postawisz nową, a nie będziesz instalował systemu od nowa. Gorzej jeszcze jak wirus robi hardkor który może uszkodzić sprzęt, wtedy w ogóle komputer pójdzie do piachu.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0
Shalom napisał(a):

Nie no odpalanie malware/nieznanego softu do reversowania pod nie-vmką to szaleństwo trochę. Jak ci ten malware/binarka namiesza w systemie to co? VMkę możesz mieć skopiowaną, albo mieć snapshoty i w 5 sekund sobie postawisz nową, a nie będziesz instalował systemu od nowa. Gorzej jeszcze jak wirus robi hardkor który może uszkodzić sprzęt, wtedy w ogóle komputer pójdzie do piachu.

Czyli najlepiej osobny komp i na nim jeszcze wirtualki do zabawy? W sumie masz racje, nie przemyślałem sensu do końca :P.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Nie no o ile vmki mają bezpieczny sandbox to wystarczą, chociaż zdarza sie czasem jakiś exploit pozwalajacy uciec z sandboxa vmki na host system :)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0
Shalom napisał(a):

Nie no o ile vmki mają bezpieczny sandbox to wystarczą, chociaż zdarza sie czasem jakiś exploit pozwalajacy uciec z sandboxa vmki na host system :)

Też właśnie o tym myślę, ze jakby się zdarzyła jakaś binarka, któa wie, ze siedzi w VM'ce to zdycyduje sie uciec :P.
Dlatego z tego względu trochę bym się cykał na normalnym kompie się w to bawić. Wolałbym na początek trochę odseperować środowiska.
Ale to raczej melodia na potem, bo do zwykłego RE znanych programów/swoich nie trzeba mi VM'ki ;).

Bartosz Wójcik
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 4 lata
  • Postów:439
2

Zainstaluj sobie Sandboxie na początek.

BY
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:65
2

Raccoons przygarną jak będziesz miał ochotę/czas/wiarę w siebie ;)

OV
to jak się czegoś poduczę w tym temacie, to się chętnie odezwę :).
2
Shalom
Tam akurat RE jest mało, już prędzej na challenges.re albo rozwal.to
1

Ja radzę pisać własne programy w C, C++ i próbować je debugować - śledzić krok po kroku.
Do tego czytanie dobrej książki na temat asemblera(Asembler - Sztuka Programowania).

Super tutorial:
https://beginners.re/RE4B-EN.pdf

IMHO - z czasem Windows zostanie wyparty przez Linuxa więc i zagrożeń będzie mniej. Co więcej nowe zagrożenia będą wykrywane przez automaty z mocnym AI.....

Bartosz Wójcik
A kiedy to nastąpi, w roku Linuxa?
twonek
z czasem Windows zostanie wyparty przez Linuxa więc i zagrożeń będzie mniej - jeśli taki dzień nadejdzie to po prostu będzie więcej zagrożeń na Linuksa
0

@wielki Terrorysta - nie zgodzę się w kwestii Linuxa. Co do reszty wydaje mi się to też niewykonalne na ten moment, ale tu nie posiadam szerszej wiedzy, więc chętnie doczytam.

@Rev i @Świetny Mleczarz1 - dzięki za linki.

Obecnie zająłem się RE i analizą własnego kodu, używania odpowiednich narzędzi i poznawania wszystkiego. Póki co "na sucho", bez żadnego laba. Ale wkrótce zamierzam wdrożyć i to :).

0

Jeżeli mogę podpiąć się nieco pod temat: jak wygląda rynek pracy w tym kierunku? W sumie jeszcze nigdy nie spotkałem oferty pracy dla programisty od security. Czy przydaje się tu znajomość języków wysokopoziomowych (Java, C#), czy raczej nie są one używane w tym obszarze?

Bartosz Wójcik
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 4 lata
  • Postów:439
1

Skończysz tak jak @Rev w CERTcie jakimś albo w ESECie w Krakowie, dostaniesz ciepłą fuchę, kartę multisport i licencję na IDA ;), no chyba że będziesz miał więcej ambicji i pomysłów niż robienie analiz durnych botów i malware przez kolejnych 20 lat i założysz swój interes, co jednak bardzo rzadko się zdarza, bo zwykle jak ktoś wyląduje na ciepłej posadce to na tym kończą osobiste ambicje, przynajmniej w branży security.

Większość ludzi których kiedyś znałem i którzy zajmowali się reversingiem zupełnie porzuciła temat lub skończyła w firmach antywirusowych, od tego czasu ani żadnych publikacji nie robią, nie piszą żadnych książek, nikt z nich nie wydał żadnych znaczących narzędzi związanych z ich pracą (ReWolf DirtyJoe i to chyba koniec), biorą srebrniki i pracują na sukces zagranicznej firmy, od czasu do czasu na konferencję ich wyślą i tak wygląda kariera większości polskich specjalistów od security. Przykre ale prawdziwe. Ja zawsze myślałem, że Ci ludzie zostaną jakimiś pionierami technologicznymi, że założą swoje firmy (choćby antywirusowe), stworzą jakieś rewolucyjne narzędzia. Jeśli poznasz kilku ludzi zajmujących się security zrozumiesz również, że często mają oni sporo problemów psychicznych, emocjonalnych, dużo z nich to introwertycy, genialni często w tym co robią, ale zupełnie nieprzystosowani do prawdziwego świata i być może to jest przyczyna dlaczego wolą zaszyć się w boksie w jakiejś firmie i nie podejmować niepotrzebnego ryzyka.

edytowany 2x, ostatnio: Bartosz Wójcik
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
6

@Bartosz Wójcik nie widzę specjalnie różnicy w porównaniu do 99% programistów. Większość ludzi po prostu traktuje pracę jako pracę, a w ramach hobby rozwija inne zainteresowania. Prowadzenie firmy czy pisanie własnego produktu często oznacza niestety ze prowadzenie firmy staje się twoim hobby bo na inne nie ma już czasu. Z kasą też różnie wtedy bywa. Fajna opcja jeśli masz ciekawy pomysł i zero zobowiązań, ale jak masz rodzinę, 3 dzieci i kredyt na dom to nagle przestaje to wyglądać tak różowo :) A jednak dla wielu ludzi sukces w życiu to właśnie ten dom i gromadka dzieci, a nie fakt że twój program kupił ktoś w Chinach.
Swoja drogą uważam za smiesznie stwierdzenie skończysz jak... i podanie za przykład kogoś kto ma 25 czy 26 lat :D faktycznie skończył, nie ma co! :D

Z tego co zresztą pamiętam to ty sam chciałeś w CERT pracować, tylko że cię nie chcieli, tak przynajmniej pisałeś na blogu. Więc nie pracujesz bo miałeś więcej ambicji i pomysłów niż robienie analiz durnych botów i malware przez kolejnych 20 lat czy może jednak po prostu brakło skilla? ;)

Jeśli chodzi o publikacje i ksiażki to twoich nie kojarze, a takie od @Gynvael Coldwind czy j00ru już tak ;)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 2x, ostatnio: Shalom
Bartosz Wójcik
I o takim podejściu mówię - zero ambicji i pomysłów na swoje życie niż ciepła posadka... Jeśli uważasz, że własna praca to hobby, że sprzedasz swoje usługi jedynie do Chin, nie masz pomysłów na cokolwiek, a twój własny interes nie potrafił przynosić dochodów na rodzinę, dom i psa to po co ktoś w ogóle miałby słuchać twoich rad, żeby zostać kolejną amebą w korporacyjnym akwarium tak jak ty?
Shalom
@Bartosz Wójcik każdy ma swoje cele i marzenia :) Niestety ale sam nie zbuduje w garażu generatora czarnych dziur ani nie wyśle sam łazika na Marsa, więc wolę pracować wspólnie z innymi ludźmi w organizacjach/firmach z budżetem liczonym w mld euro bo dzięki temu mogę się takimi ciekawostkami zajmować. Nie mówiąc już o tym że zwyczajnie nie kręci mnie prowadzenie firmy, szukanie klientów, zajmowanie się finansami. Ja się wole jednak zająć kodem ;)
Bartosz Wójcik
@Shalom no ok rozumiem, ale ja tutaj odnosiłem się ściśle do tematu, który znam i wiem jak potoczyły się kariery wielu ludzi i naprawdę dobrze wszystkim życzyłem i jest mi przykro patrzeć, że dużo utalentowanych ludzi utknęło głównie w AV na wiele lat i na tym ich "twórczość" się skończyła, kompletnie przepadli, zostali anonimowymi trybikami w wielkich machinach i wcale nie dla dobra ludzkości, tak jak ty mówisz, że pracujesz, ale dobra zagranicznych komercyjnych firm.
xfin
  • Rejestracja:ponad 11 lat
  • Ostatnio:8 miesięcy
  • Lokalizacja:Genewa
  • Postów:597
0

@Bartosz Wójcik W komentarzu pod poprzednim się nie mieszczę, więc...

Zakładanie firmy z samym pomysłem to kiepska sprawa, jak Shalom napisał. Z kolei zakładanie firmy z budżetem od kogoś to też strzał w stopę, bo prędzej czy później to się obraca przeciwko. Swoją drogą - co jest złego w sprzedaży "jedynie do Chin"? Chińczycy teraz to potężna gospodarka z miliardami do wydania, więc nie rozumiem co to miało znaczyć. Branża antywirusowa nie jest prosta - sukces firmy warunkują kontakty i budżet, a nie to czy ktoś umie robić dobrą analizę malware czy RE (bo jak wszędzie - pomysł i umiejętności to często zbyt mało i brakuje cebulionów żeby się rozwinąć).

Zakładanie własnego interesu to też nic przyjemnego - byłem i troszkę nadal jestem w inkubatorze. Tyle papierów ile trzeba było wypełnić odnośnie "wynalazku" i ochrony własności intelektualnej to głowa mała (a i tak robiąc w takim programie jest prościej niż normalnie). Zakupy sprzętu, szukanie firmy, która będzie chciała współpracować żeby coś wypuścić - to wszystko jest czasochłonne i odbiega od technicznego clue sprawy.

Dlatego te "ciepłe posadki" jak to nazwałeś są dużo atrakcyjniejsze. A niektóre takie nawet dużo bardziej rozwojowe niż własny produkt. I częściej pracując w R&D powstają jakieś publikacje niż mając własną firmę.

@Shalom przez Twoje "generatory czarnych dziur" ludzie na ulicach później protestują i chcą Cern zamykać, bo gdzieś tu Shiva stoi, który czarnymi dziurami rozedrze świat ;)

edytowany 1x, ostatnio: xfin
0

@Bartosz Wójcik - taka sama filozofia jest w pracy programisty w każdej większej firmie czy korporacji. To, że ktoś pracuje w takim miejscu nie czyni go od razu kimś bez ambicji, bez pomysłu na siebie i życie, i zwykłym przegrywem. Wręcz przeciwnie. Pracowałem w kilku różnych miejscach, sam obecnie siedzę w korporacji i jakoś nie twierdzę, że brak mi ambicji i dbam o swoją ciepłą posadkę. Owszem jest fajnie, miło i przyjemnie, ale to wszystko po jakimś czasie się po prostu nudzi. Człowiek chce wyjść z jakiejś monotonii i poznać coś nowego, dowiedzieć się. Stąd ten temat.
Oczywiście nie twierdzę, że 99% ludzi w korpo to osoby, którym nie wyszło dlatego teraz grzeją dupcie w pewnym miejscu, w którym będą tak długo dopóki ktoś ich nie wywali. Po prostu dla niektórych, na pewnym etapie życia pojawiają się inne kwestie, gdzie "ja" już niekoniecznie jestem na pierwszym miejscu. @Shalom o tym napisał i bardzo dobrze to podsumował.
Co do racji tego, to najlepiej podyskutować z psychologami czy ludzi od socjalizacji, a nie z programistami :).
To czy ktoś jest ambitny i ma pomysł na siebie na pewno nie świadczy to gdzie pracuje. Mam w swojej pracy ludzi bardzo rozwiniętych, doświadczonych i pasjonatów. Ale też podkreślają, że każde miejsce pracy jest po prostu miejscem pracy i jak chcesz robić coś innego to się wynosisz.

Moim zdaniem niepotrzebnie zaczynasz flame, który koniec końców do niczego odkrywczego nie prowadzi. Dla jednego praca w AV jest wystarczająca, dla drugiego prowadzenie własnej firmy. Osobiście pisanie książek zostawiam pisarzom, a pisanie kodu programistom. Dlatego trochę nie widzę związku, oprócz niepotrzebnej spiny. Każdy robi co lubi ;).

Wracając do tematu - czy polecacie jakieś książki odnośnie analizy malware'u? Natknąłem się na taką - https://www.amazon.com/Practical-Malware-Analysis-Hands-Dissecting/dp/1593272901 i jest wszędzie jest dość polecana. Czy ktoś z Was ją posiada i może coś więcej powiedzieć - warto/nie warto ? :)

BY
Przez begginers.re nie byłem w stanie się przebić, przez Practical Malware powoli się przebijam. Czytało mi się przyjemnie, trochę ostatnio zapuściłem z racji uczenia się czegoś odrobinę innego, ale z pewnością będę chciał wrócić. Imho fajnie napisana, ale może ktoś lepiej ogarniający RE powie więcej.
OV
@big_y - Zarejestrowałem się, żeby pisać komentarze (Dziki dzik) :). Ok, ale ogólnie sensownie napisana? Warto wydać na nią te 2 stówki i się czegoś nauczyć? beginners.re dopiero zacząłem i jak na razie nie mam żadnych większych odczuć pozytywnych/negatywnych. Za parę dni postaram się dać znać więcej.
b0arsec0
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Katowice
  • Postów:1
0

Hej Cyber świry, czy są jakieś nowe metody pozyskiwania wiedzy w tym temacie ?
jakieś polskie ?
rozumie, że angielskich jest mnóstwo... ;)
ktoś coś?


#Sekurak #Niebezpiecznik #CyberSec
Zobacz pozostałe 2 komentarze
Shalom
@Bartosz Wójcik: chcieliśmy kiedyś wrzucić połamanie puloka jako zadanie na CTFa, ale uznaliśmy że raz ze trochę za proste, a dwa że jakieś licencje trzeba i w ogóle... :P A łamanie VMek to nie rocket science, ale jest zwyczajnie żmudne a dla tych losowo generowanych ciężko zrobić sensowny automat.
Bartosz Wójcik
@Shalom rozumiem, a to licencja, a to za żmudne, wiadomka, komu by się chciało męczyć... Chciałbym być kiedyś takim profesjonalistą jak Wy, aż serce się raduje, że tacy ludzie chronią polski internet :)
Shalom
A tam polski internet, akurat ja to bronię świata przed najeźdźcami z kosmosu!
Bartosz Wójcik
To może i lepiej ;)
K5
Masz dostęp do wnętrza strefy 51 @Shalom?
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)