- 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)
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!
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
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:
Wysłałem e-maila (KONKURS OSDev #4), doszedł ?
Doszedł, potwierdziłem mejlowo również :)
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)
+1
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
Potwierdzam, dotarło :)
@eider
Dzięki, na pewno się przyda :)
Add a comment: