Kilka notatek po ostatnim streamie + data kolejnego:
  • W środę/czwartek odbył się w Belluminar - CTF rozgrywany w Pekinie (przy czym dodatkowi gracze mogli grać również online), który był dość eksperymentalny jeśli chodzi o... wszystko. Przede wszystkim udział wziąć mogły jedynie zaproszone drużyny; zgodnie z opisem zostało zaproszone 10 najsilniejszych drużyn na świecie, w tym 5 według rankingu CTFTime.org (w którym nasza drużyna trzyma się w okolicach top1-3 od kilku lat), a 5 kolejnych spośród azjatyckich drużyn (ostatecznie znalazły się tam topowe drużyny z Chin, Taiwanu i Korei). Co więcej, zadania były przygotowywane również przez same drużyny (a nie przez organizatorów) - każda drużyna przygotowywała dwa zadania, z czego jedno musiało być związane z Windowsem; swoje zadania należało również zaprezentować po samym CTFie, za co otrzymywało się dodatkowe punkty (i to całkiem sporo). Interesująca była również pula nagród - top1 otrzymywał 50 tyś. USD, top2 30 tyś., a top3 20 tyś. Dragon Sector wywalczył czwarte miejsce, więc niestety musieliśmy obejść się smakiem (so close!). Dodam, że w skład reprezentacji Dragon Sector do Pekinu polecieli: valis, Redford, mak, jagger oraz Lympho - kudos! Ostatecznie wygrał zespół KeyResolve, który de facto składał się z członków koreańskiego DEFKOR (jest to zespół który wygrał ostatni DEF CON CTF w Vegas) oraz amerykańskiego PPP (którego chyba nie trzeba przedstawiać).
  • Następny stream: piątek 10.6 19:00 na gynvael.coldwind.pl/live. Jak wspominałem, będzie to powtórzenie mojej prelekcji z KrakWhiteHat pt. "Wstęp do RE". Na jeszcze kolejnym streamie wrócimy do OSDev, dodamy A20 i spróbujemy uruchomić to co mamy na prawdziwym komputerze.
  • Wczorajszy stream można znaleźć na YT - o dziwo tym razem wszystko zadziałało (no, może nie za pierwszym razem, ale ostatecznie zadziałało) i udało się skończyć o czasie. Kod można znaleźć na moim githubie. Kilka dodatkowych notatek z czatu (które wychwyciłem dopiero po streamie) znajduje się pod tymi newsami. Na streamie ogłosiłem również konkurs:
    KONKURS (tym razem skillowy)
    DO: 12.06 23:59
    Napisz efekt graficzny:
    - działający w trybie tekstowym
    - działający jako bootloader
    - zajmujący max 512 bajtów (stage1 ;>)
    - działający minimum pod Bochs
    Nagroda: gift card 100 GBP na amazon.co.uk
    Kod źródłowy oraz wersję skompilowaną (i najlepiej również bochsrc) należy podesłać na mojego mejla do następnej niedzieli do godziny 23:59; po wysłaniu mejla plz dajcie mi również znać w komentarzach/na ircu/gdziekolwiek, że wysłaliście, tak abym mógł potwierdzić, że praca doszła. Good luck!

A teraz kilka notatek z czatu ze streama które są ciekawe, ale których nie wyłapałem (uwaga: to są notatki, a nie dokładne cytaty):

Anoxic83: Bochs ma możliwość ustawienia breakpointa w kodzie; do konfiguracji bochs trzeba dodać: magic_break: enabled=1 a w kodzie xchg bx,bx
piotrm: jeśli kogoś interesuje to moge polecić taką książkę do nauki assemblera http://www.apress.com/9781484200650
reenz0h: http://wiki.osdev.org/ELF#Header - obie wersje, 32 i 64
Taeril: (ustawienie w vimie syntaxu na dialekt nasmowy) set ft=nasm ew. ustawić w vimrc nasm jako domyślny: let asmsyntax = "nasm"
verteks: natrafiłem ostatnio na ciekawy pdf o RE: "Reverse Engineering for Beginners", autor Dennis Yurichev, może komuś też się spodoba jak mi
Generalnie na czacie często pojawia się sporo innych ciekawostek rzucanych przez różne osoby aktywnie biorące udział w livestreamie - o tych które wyłapie staram się od razu mówić, ale nie zawsze wszystko wychwycę (nawet mimo pomocy moderatora). Dlatego zachęcam do przebywania na naszym IRCu podczas streama - #gynvaelstream na freenode.

I tyle.

Comments:

2016-06-07 11:10:47 = PROTON
{
Witam,
Wysłałem e-maila (KONKURS OSDev #4), doszedł ?
}
2016-06-07 11:45:47 = Gynvael Coldwind
{
@PROTON
Doszedł, potwierdziłem mejlowo również :)
}
2016-06-08 20:16:06 = eider
{
>i spróbujemy uruchomić to co mamy na prawdziwym komputerze.

Co byś nie latał na streamie debugując coś co działa:
Page1GB: 1-GByte pages.
If CPUID.80000001H:EDX.Page1GB [bit 26] = 1, 1-GByte pages are supported with IA-32e paging (see
Section 4.5).

w skrócie - najpewniej hardware który znajdziesz nie będzie najwyższej półki cenowej (jakiś i7 lub i5 4gen) i pewnie nie będzie obsługiwał 1GB pages... Cytat z docu intela powyżej pokazuje też gdzie patrzeć w CPUID na info o tym (26 bit edx 0x80000001)

Kod bootuje się na i5-4590, na CPU które nie obsługują 1GB page CPU wywala pagefaulta na "mov cr0, eax" (ostatnia instrukcja od enable paging)
}
2016-06-08 21:00:51 = Gynvael Coldwind
{
@eider
+1
}
2016-06-12 13:44:57 = hashedone
{
Wysłałem cosik, dotarło?
}
2016-06-12 20:48:25 = pajadam
{
Email poszedł :)
}
2016-06-12 20:56:46 = eider
{
update do mojego poprzedniego komentarza:

Można spokojnie użyć rozwiązania z https://github.com/reenz0h/osdev-by-gyn/blob/master/osdev3-addons/stage2-2M.asm jeżeli nie chcesz przepisywać tego na dynamiczne 4K - testowane na Dell D630 i VMware (oba na CPU bez obsługi 1GB dla pewności). VirtualBox wywala się nadal, tym razem na skoku do kernela - jeżeli wierzyć jego debuggerowi to pamięc gdzie powinien być kernel jest pusta. Nie mam szczerze mówiąć energii żeby bawić się ich debuggerem - jest strasznie toporny - ale jest to pewnie kolejna rzecz na którą powinieneś popatrzyć pewnie w którymś livestreamie - jakiś powód tego musi być a debugowanie tego może być ciekawe.

Działąjący kod - https://github.com/eider-i128/osdev
}
2016-06-12 21:44:08 = Lazarus
{
Tradycyjnie na krótko przed deadlinem, wysłałem małe intro :)
}
2016-06-12 22:02:27 = Daniej
{
Wysłałem, pozdrawiam ;)
}
2016-06-12 22:30:12 = Gynvael Coldwind
{
@hashedone, pajadam, Lazarus, Daniej
Potwierdzam, dotarło :)

@eider
Dzięki, na pewno się przyda :)
}

Add a comment:

Nick:
URL (optional):
Math captcha: 5 ∗ 1 + 1 =