Ochrona kodu

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
0

Jak sobie radzicie z ochrona kodu C#? Np przed dekompilacja? Obfuscatorem? Czy tez wlasne podobne rozwiazania? Jak zrobic taki wlasny szyfrator kodu? Czy taki pomysl jest dobry:
Aplikacja dziala tylko z dostepem do internetu nastepnie wysyla zadanie kodu z serwera i deszyfruje kod uruchamiajac poprawnie aplikacje glowna.


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
Grzegorz Świdwa
Grzegorz Świdwa
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:385
1

Ja sobie nie radzę 🤣

Zobacz pozostałe 9 komentarzy
JP
@MESSAIAH A masz już jakichś klientów których możesz stracić? To dobrze jest mieć wiarę w siebie ale rynek może tej wiary nie podzielić. Ja mam kilka programów automatyzujących pracę i jakoś nie wszyscy chcą kupić.
katakrowa
Skoro nie chcą kupić to może go nie potrzebują. Wątpię, że czają się Twoją pomyłkę by zacząć go używać nielegalnie a do tego jeszcze bawić się w debugowanie.
JP
Chyba się nie zrozumieliśmy. Ja ospowiedalem autorowi oryginalnego posta. Ja bym nawet chciał, żeby nielegalnie używali mojego Soft. Odszkodowanie cena x 5. Najłatwiejsze kasa w życiu. A co do tego czy potrzebują to tak, potrzebuje. Ale tu psychologia wkracza. Szef produkcji ma obiekcje A prezes nie ma żadnych. Szef produkcji twierdzi, że można to w Excelu zrobić:) A to nie zarząd rządzi tylko średni szczebel.
ME
@jacek.placek: Panie kochay. Wystarczy mi tylko kod zrodlowy Twojej aplikacji i w zadnym sadzie nie wygrasz w sprawie plagiatu bo pozmieniam to i tamto. A jesli uzywasz bibliotek to jeszcze latwiej to zrobic.
JP
Ech... No to powodzenia.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Wrocław
7

Wystawiając jako SaaS.

Grzegorz Świdwa
Grzegorz Świdwa
Chodzi tu o to, że logika jest ukryta w usługach?
somekind
Tak, na serwerze. Ty wysyłasz request np. po HTTP i dostajesz dane też przez HTTP. Nie ma dostępu do kodu, nie ma po co obfuskować.
PerlMonk
@somekind: Serwer też wysyłasz klientowi czy utrzymujesz go sam?
somekind
No jak wyślę klientowi serwer, to to raczej SaaS nie będzie. :P
JP
No raczej, że wysyła serwer. I pakiet prądu na uruchomienie do testów. Każdy tak robi.
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
0
somekind napisał(a):

Wystawiając jako SaaS.

Nie bardzo wiem jak dziala to SaaS


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
Zobacz pozostałe 2 komentarze
ME
@Grzegorz Świdwa: Nie wiem ale chyba musisz miec to u siebie na serwerze + zewnetrzne IP ale nie jestem pewien.
Grzegorz Świdwa
Grzegorz Świdwa
To na pewno
Grzegorz Świdwa
Grzegorz Świdwa
Chyba tutaj chodzi w grę serwer vps
somekind
Albo tzw. dedykowany albo chmura, to już zależy od innych czynników.
somedev
@MESSIAH: tak, oraz co więcej kasujesz klienta abonament za używanie tego bo musisz łącze i serwer utrzymać. Najlepiej to postawić na dedykowanym hostingu lub w chmurze. Sporo aplikacji nawet standalone (nie webowych) tak działa. Ukrywają logikę np. zaawansowane ocr, rozpoznawanie mowy, decyzje w sprawie udzielenia kredytu etc. etc.
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
1

Kompiluję do exe albo udostępniam funkcjonalności z serwera.


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
Grzegorz Świdwa
Grzegorz Świdwa
Czyli tak jak myślałem, w końcu po tylu latach coś dobrze powiedziałem 😂
FO
Dla programu desktopowego obfuskacja kodu i kompilacja .exe oraz publikacja - wydanie oprogramowania w tej wersji to chyba jedyna forma ochrony. Poprawcie mnie jak się mylę.
ME
@Forik: Chyba mozna zlamac takie zabezpieczenia jak obfuskacja - widzialem na roznych forach komentarze o tym ze to zajmuje od kilku godzin do kilku dni - zalezy od zlozonosci szyfracji. Podobno najlatwiej lamie sie te najbardziej uzywane bo kod zrodlowy jest dostepny.
katakrowa
Można nawet dissassemblować kod maszynowy a nawet szlifować obudowy układów scalonych by poznać ich architekturę. Pozostaje pytanie czy jest sens angażować takie środki by poznać "cudo", które stworzyłeś zamiast zaprojektować to samemu.
ME
@katakrowa: Jesli kupie aplikacje od Ciebie za 200 zl i bede musial pozniej dokupowac poprawki itp to duzo wydam. Natomiast jesli ktos udostepni Twoj plik do pobrania i pokaze jak to zdekompilowac i jak latwo zrobic taka aplikacje to juz masz problem i spadek klientow. Po co w takim razie istnieja licencje? Obfuscatory itp? Przeciez nikt nie przepisze Twojego kodu.
ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 21 godzin
0

Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 11 godzin
2

Kiedy kod jest i tak publicznie na GitHubie to się nie trzeba przejmować ochroną ;)

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
0
katakrowa napisał(a):

Kompiluję do exe albo udostępniam funkcjonalności z serwera.

No wlasnie ze mozna zdekompilowac latwo taki plik. Wlasnie sprawdzilem to na swojej aplikacji. Wystarczy pobrac dekompilator zaladowac plik i mamy juz caly kod logiczny.


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
katakrowa
Zaleczy do czego i jak skompilowałeś. Jak do .Net to łatwiej jak do kodu maszynowego to już nie tak łatwo. Zresztą sam zobacz jak ten kod wygląda. Jeśli rzeczywiście po dekompilacji Twój algorytm jest czytelny to może nie warto go aż tak chronić.
ZK
  • Rejestracja:prawie 7 lat
  • Ostatnio:5 miesięcy
  • Postów:273
1

A co myślicie panowie programiści o NET NATIVE ?

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Wrocław
1
MESSIAH napisał(a):

No wlasnie ze mozna zdekompilowac latwo taki plik. Wlasnie sprawdzilem to na swojej aplikacji. Wystarczy pobrac dekompilator zaladowac plik i mamy juz caly kod logiczny.

Exe owszem, ale żeby zdekompilować z serwera, to trzeba by najpierw mieć dostęp do plików na nim się znajdujących, co przy normalnej konfiguracji nie jest możliwe bez uprawiania hakierstwa.

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
0
somekind napisał(a):
MESSIAH napisał(a):

No wlasnie ze mozna zdekompilowac latwo taki plik. Wlasnie sprawdzilem to na swojej aplikacji. Wystarczy pobrac dekompilator zaladowac plik i mamy juz caly kod logiczny.

Exe owszem, ale żeby zdekompilować z serwera, to trzeba by najpierw mieć dostęp do plików na nim się znajdujących, co przy normalnej konfiguracji nie jest możliwe bez uprawiania hakierstwa.

Wykupienie VPS w jakiejs p0lskiej firmie wiaze sie to z tym iz bedziesz kontrolowany - zakladam sie iz na 100% ktos sprawdza pliki na serwerach i jesli zobaczy ze cos jest dochodowego jak np w naszym przypadku to juz mamy maly problem. Wiem co mowie bo juz mialem podobna sytuacje z serwerem gdzie nagle 100% zapytan bylo przekierowanych przez serwer glowny i ktokolwiek wszedl na Twoj serwer to pokazywalo sie tylko jedno IP a serwer w p0lszy byl buferem.


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
Zobacz pozostałe 4 komentarze
cmd
Twoj serwer to pokazywalo sie tylko jedno IP a serwer w p0lszy byl buferem. czy to IP zaczynalo się od 127. ?;)
WeiXiao
@cmd: nie, adres pochodził z rosji i zaczynał się od 192.168.43
cmd
a to mnie ci sami śledzili :/
ME
@cmd: Niestety nie. Bylo to IP serwera z p0lszy gdzie mialem wykupiony hosting.
KL
Dobranoc, zalecam odpowiednią wizytę u odpowiedniego specjalisty. Rozwiąże 99% problemów.
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
3

Odpowiadając na komentarz:

@MESSIAH napisał

Jesli kupie aplikacje od Ciebie za 200 zl i bede musial pozniej dokupowac poprawki itp to duzo wydam. Natomiast jesli ktos udostepni Twoj plik do pobrania i pokaze jak to zdekompilowac i jak latwo zrobic >taka aplikacje to juz masz problem i spadek klientow. Po co w takim razie istnieja licencje? Obfuscatory itp? Przeciez nikt nie przepisze Twojego kodu.

W takim razie się zabezpiecz. Generalnie chodzi mi o ogólny poziom wiedzy i umiejętności autora programu zabezpieczanego.
Innymi słowy wątpię, że osoba nie potrafiąca zaimplementować zabezpieczeń swojego kodu, wymyśliła coś co ma jakąś wymierną wartość dla osoby która potrafi to zdekompilować i jeszcze kreatywnie wykorzystać ze szkodą dla autora.

Podsumowując: Obfuscatory są słabym zabezpieczeniem i też do zabezpieczania zwykle "mało wartościowych rozwiązań" są stosowane - w sensie takich, których ryzyko odkodowania nie pociąga za sobą dużych strat. Jak masz rzeczywiście cenne algorytmy to udostępniasz je jako np. webService. Natomiast w przypadku gdy faktycznie trzeba dać je klientowi to dajesz jako skompilowane do kodu maszynowego biblioteki + dodatkowo wprowadzając zabezpieczenia utrudniające debuggowanie takiego kodu maszynowego.

Jakoś nie widzę kogoś zawzięcie debugującego kod żeby zaoszczędzić 200 czy nawet 1000zł. Rozumiem, że jako 15-16 latek debugowałem gry, żeby zapisać się w tabeli wyników albo żeby mieć nieskończoną kasę :-) Ale w "dorosłym" życiu to chyba jedynie jak ktoś przychodzi i mówi słuchaj Pan mam program w fabryce ale programista zaginął/umarł/uciekł a program steruje całą linią produkcyjną i jestem w du..ie. Wtedy może w ramach pomocy bym coś debugował ale jednocześnie sugerując szybką zmianę systemu na taki z wsparciem.


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
edytowany 4x, ostatnio: katakrowa
Zobacz pozostały 1 komentarz
katakrowa
Dlatego, że dekompilacja to po pierwsze konieczność posiadania wiedzy a po drugie konieczność poświęcenia czasy i żeby coś dekompilować ma sens tyko gdy jest z tego bilans na korzyść dekompilującego. Czyli nie będę dekmompilował czegoś jeśli wkład pracy w dekompilację jest porównywalny z zaimplementowaniem czegoś samodzielnie.
WeiXiao
Tak, ale sugerujesz jakoby osoba bez umiejętności zabezpieczenia kodu nie mogła stworzyć czegoś wartościowego dla osoby potrafiącej robić dekompilacje, co według mnie jest bez sensu, bo są to różne skille.
katakrowa
Może niefortunnie i zbyt dosadnie to brzmi ale trochę tak uważam i nie mam tu na myśli naukowców, matematyków i inżynierów tworzących specjalistyczne algorytmy w matLabach czy pythonach a programistów wytwarzających Oprogramowanie "na sprzedaż". Ci naukowcy to inna bajka - oni są od tworzenia algorytmów a to zupełnie inny wymiar programowania niż aplikacji dla klienta.
WeiXiao
Nie przesadzajmy, nie musisz robić czegoś nieprawdopodobnie innowacyjnego aby bardziej opłacało się zreversować i ukraść 500LoC niż je samemu napisać. Aby napisać kod trzeba mieć wiedzę domenową, a jej zdobycie może być problemem.
katakrowa
Ale jak nie masz tej wiedzy domenowej to po co ten kod?
JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
12

Mam wrażenie, że temat ociera się o absurd.
99,99999999% ludzi ma w dupie Twój kod. Jeśli biznes okaże się dochodowy to ktos to sobie napisze po swojemu. No chyba, że łamiesz klucze prywatne do portfeli bitcoinowych. W ciagu ponas 20 lat raz w zyciu mialwm taki przypadek, ze jakiś stary soft twierdzil brak klucza licencyjnego a firma od dawna nie istniala. Do czasu zastapienia wlasnym softem ttzeba bylo przykombinowac i po rewersie odczytalismy kod sprawdzania licencji.
Myślisz, że Comarch sprzedaje tysiące licencji na Optimę czy XLa bo tam jest jakiś magiczny kod? Nie. To sieć sprzedaży i marketing na to pracuje.
Teksty o sprawdzaniu plikow na VPSach to jakieś chore imaginacje.
Tracisz czas na głupoty.

UglyMan
Proszę polać temu panu. A za ostatnie zdanie to da razy.
katakrowa
W swoich "wypocinach" próbowałem przekazać dokładnie to co napisałeś w 2 zdaniu chyba najcelniej jak się da :-)
JP
Prawie doba minęła i nikt mi nie polał. :/
UglyMan
A to świnie!
PL
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 2 lata
  • Postów:104
1

Osobiście uważam, że kod każdej aplikacji dostępnej publicznie powinien być dobrze zaciemniony. Jeżeli chodzi o Jave/C# to dekompilacja sprowadza się do otwarcia programu w odpowiednim dekompilatorze i otrzymujemy czysty kod źródłowy.

edytowany 1x, ostatnio: ple
ME
Chcesz wodke? Dobrze prawisz.
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
0
ple napisał(a):

Osobiście uważam, że kod każdej aplikacji dostępnej publicznie powinien być dobrze zaciemniony.

Po co każdej ?


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
Grzegorz Świdwa
Grzegorz Świdwa
Aplikacja ma tylko pobierać dane za pomocą dostępnego API. Dzięki właśnie temu nie ma potrzeby zabezpieczania kodu ponieważ nie udostępnia się tego jak działa serwer
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
0
jacek.placek napisał(a):

Mam wrażenie, że temat ociera się o absurd.
99,99999999% ludzi ma w dupie Twój kod. Jeśli biznes okaże się dochodowy to ktos to sobie napisze po swojemu. No chyba, że łamiesz klucze prywatne do portfeli bitcoinowych. W ciagu ponas 20 lat raz w zyciu mialwm taki przypadek, ze jakiś stary soft twierdzil brak klucza licencyjnego a firma od dawna nie istniala. Do czasu zastapienia wlasnym softem ttzeba bylo przykombinowac i po rewersie odczytalismy kod sprawdzania licencji.
Myślisz, że Comarch sprzedaje tysiące licencji na Optimę czy XLa bo tam jest jakiś magiczny kod? Nie. To sieć sprzedaży i marketing na to pracuje.
Teksty o sprawdzaniu plikow na VPSach to jakieś chore imaginacje.
Tracisz czas na głupoty.

katakrowa napisał(a):
ple napisał(a):

Osobiście uważam, że kod każdej aplikacji dostępnej publicznie powinien być dobrze zaciemniony.

Po co każdej ?

Ja chcialbym napisac aplikacje dla osob w przedziale 15-30 lat. I jesli biznes by wypalil to zaraz sie znajda 16 latkowie co wpisze w google dekompilacja kodu a pozniej pobierze VS 2019 i wklei gotowy kod po czym usprawni lub zaktualizuje kod do obecnych standardow i odsprzeda za doladowania PSC 30 zl i szukaj krowy w polu.


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
Grzegorz Świdwa
Grzegorz Świdwa
Ale już praktycznie na początku dostałeś odpowiedź jak zabezpieczyć kod
ŁF
Żyjesz w świecie fikcji. Owszem, może znaleźć się nastoletni geniusz, ale on nie będzie pracował za 30zł. Zrobi albo za darmo, dla przyjemności, albo za konkretne pieniądze. "wklei gotowy kod" - widziałeś, jak wygląda kod z dekompilatora? "usprawni lub zaktualizuje kod do obecnych standardow" - przy czym najpierw zrozumie działanie logiki biznesowej części, jeśli nie całej aplikacji, co może zająć miesiące, bo nie dysponuje żadną dokumentacją techniczną. Akurat usunięcie zabezpieczeń nie ma nic wspólnego z "usprawnieniem lub zaktualizowaniem kodu".
KR
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:174
0

Może autor wątku zdradzi jaki pomysł stoi z aplikacją? Bo skoro algorytm jest tak skomplikowany, to samą ideę można chyba ujawnić?

JP
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:1065
0
MESSIAH napisał(a):

Ja chcialbym napisac aplikacje dla osob w przedziale 15-30 lat. I jesli biznes by wypalil to zaraz sie znajda 16 latkowie co wpisze w google dekompilacja kodu a pozniej pobierze VS 2019 i wklei gotowy kod po czym usprawni lub zaktualizuje kod do obecnych standardow i odsprzeda za doladowania PSC 30 zl i szukaj krowy w polu.

No to napisz. Jeśli ktoś uzna, że chce za to zapłacić to zapłaci a jeśli nie to nie. Teksty o 16-latkach dekompilujących kod to jakieś bzdury. Ja jestem SPOZA zakresu 15-30 ale jakoś nie kojarzę istnienia takiego rynku nielegalnego softu za doładowanie.

edytowany 1x, ostatnio: ŁF
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
1
jacek.placek napisał(a):
MESSIAH napisał(a):

Ja chcialbym napisac aplikacje dla osob w przedziale 15-30 lat. I jesli biznes by wypalil to zaraz sie znajda 16 latkowie co wpisze w google dekompilacja kodu a pozniej pobierze VS 2019 i wklei gotowy kod po czym usprawni lub zaktualizuje kod do obecnych standardow i odsprzeda za doladowania PSC 30 zl i szukaj krowy w polu.

No to napisz. Jeśli ktoś uzna, że chce za to zapłacić to zapłaci a jeśli nie to nie. Teksty o 16-latkach dekompilujących kod to jakieś bzdury. Ja jestem SPOZA zakresu 15-30 ale jakoś nie kojarzę istnienia takiego rynku nielegalnego softu za doładowanie.

No bo nie siedzisz w takich grupach wiekowych. Jesli zaczniesz z nimi wspolpracowac - czyli dostarczac im soft - szybko beda pytac w swoich kregach jak to zrobic za darmo. Tak jak gry na torrenie.


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
KL
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:191
2

Kolego, ale już otrzymałeś odpowiedź - istotne mechanizmy trzymaj na serwerze, dostraczaj tylko klienta, który to konsumuje.
W ten sposób masz zabezpieczone istotne mechanizmy i nie wpadasz w paranoję, że "ktoś Ci kud wykradnie, jakiś zdemoralizowany 12-latek".

Oczywiscie, jak ktoś będzie baaaasrdzo chciał, to mało co go powstrzyma, ale nasuwa się pytanie kiedy zacząć brać tabletki ;)

Serio, wg. mnie przeceniasz istotę problemu przede wszystkim i tyle.
A jak masz faktycznie wątpliwościa, to też już się ludzie ogarnięci w temacie wypowiedzieli. Jedyne czego próbujesz udowodnić to niepowtarzalność algorytmu, a to... Jest wątpliwe :P

No offence mate. Ja się tu udzielam raz na pół roku, jestem "junioro-senioro-cholerawieczym" i nadal się uczę :)

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 8 godzin
  • Postów:5108
2

@Klojtex:

Serio, wg. mnie przeceniasz istotę problemu przede wszystkim i tyle.

Zależy od typu softu.

Jeżeli są to cheaty do gier, to twój soft mógłby być piracony i często używany nawet 10 lat po zaprzestaniu jego rozwoju, znam takie przypadki ;)

Software który był płatny ale został zcrackowany ok. 10 lat temu jest nadal używany przez graczy jeżeli jeszcze grają i są to setki - tysiące osób.

I to akurat jest ten target o którym pisze @MESSIAH - 16 latkowie

No bo nie siedzisz w takich grupach wiekowych. Jesli zaczniesz z nimi wspolpracowac - czyli dostarczac im soft - szybko beda pytac w swoich kregach jak to zrobic za darmo. Tak jak gry na torrenie.

edytowany 4x, ostatnio: WeiXiao
somekind
No, co jak co ale na młodzieżowym targecie znasz się tutaj najlepiej.
KL
Jak zajmuje się haxami dla pr0gam3rów, to niech się zajmie czymś sensownym, przydatnym w społeczeństwie ;) Ale tak serio... Z tonu wypowiedzi założyłem coś innego, bardziej "biznesowego" w klasycznym rozumieniu. Może i to był mój błąd. A jeśli zajmuje się cheatami, mając przy tym wątpliwości jak je sensownie ukryć przed użyszkodnikiem, pomijając przy tym algorytmy detekcji... To wg. mnie średnie cheaty są. Ale jak w poście, ja serio guzik wiem i mogę bzdury pleść :P
KL
Znowu zbyt długo pisałem. Napisałem, przeczytałem i umrzyłem. Kocham Was platonicznie.
somekind
Majówka była 2 tygodnie temu, a niektórych chyba jeszcze "grill" trzyma. ;)
KL
Owszem, trzyma. I to nie majówka, z tego, co wiem ;)
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:57
0

@Klojtex: Tak Panie programmer. Nie celuje w cheaty tylko młodzież z pieniędzmi. Znam już grupy osób które chciałyby korzystać z mojego rozwiązania. Pytałem o to wcześniej i jest zainteresowanie. Pytanie tylko kto jest po drugiej stronie monitora - z tego co można wywnioskować z obserwacji są to ludzie którzy prawdopodobnie znają ify, else i tym podobne 😏. Moim skromnym zdaniem lepiej dmuchać na zimne.


LIFE'S A BITCH AND I'M CUSTOMER WITHOUT WALLET
edytowany 1x, ostatnio: MESSIAH
ZK
  • Rejestracja:prawie 7 lat
  • Ostatnio:5 miesięcy
  • Postów:273
0

O jaką dekompilację chodzi ?

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)