Krótka historia o debugowaniu laptopa, który nie budził się z uśpienia , Warsaw C++ Users' Group Michał Redford Kowalczyk

Podobne dokumenty
O dwóch takich, co chcieli odblokować laptopa. Security PWNing Conference 2017

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

1. Komputer przenośny nr 1 9 szt.

Linux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM

Computer Setup Instrukcja obsługi

Computer Setup Instrukcja obsługi

DVD MAKER USB2.0 Instrukcja instalacji

Wstęp... 5 Rozdział 1. Podstawowe informacje... 7

Narzędzie Setup Instrukcja obsługi

BIOS. Przewodnik. Wydanie III

BIOS - (czyli Basic Input/Output System)

Część I: Komputery przenośne... 2 LAPTOP STACJA DOKUJĄCA DO LAPTOPA LAPTOP STACJA DOKUJĄCA DO LAPTOPA

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Opis instalacji i konfiguracji programu HW Virtual Serial Port z kasą PS3000Net

Computer Setup Instrukcja obsługi

Wymagane parametry techniczne laptopa

Konwerter RS-485->TCP/IP [ethernet] ATC-1000 SZYBKI START [konfiguracja urządzenia do współpracy z programem Meternet]

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA SPECYFIKACJA TECHNICZNA ZAMAWIANEGO SPRZĘTU

Podręcznik do programu Computer Setup (F10) modele dx7500 Komputer osobisty HP Compaq Business

Kto kontroluje twój modem?

Podręcznik do programu Computer Setup (F10) model dx2450 typu microtower Komputer osobisty HP Compaq Business

Instrukcja obsługi programu DS150E. Dangerfield March. 2009V3.0 Delphi PSS

Podręcznik do programu Computer Setup (F10) Komputer HP Compaq serii dx7400

Podręcznik do programu Computer Setup (F10) modele serii dx2300 typu microtower

Konwerter RS-485->TCP/IP [ethernet] ATC-1000 SZYBKI START [konfiguracja urządzenia do współpracy z programem MeternetPRO]

min. 8 GB, możliwość rozbudowy do min 16 GB, minimum jeden slot wolny na dalszą rozbudowę.

MultiBoot Instrukcja obsługi

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Spanning Tree to samo zło, czyli Protekcja Ringu w Ethernecie na podstawie wdrożenia w sieci Leon

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Instalacja, aktualizacja i migracja do Windows 7

Instalacja drukarki ADM dla interfejsu WiFi

Instrukcja szybkiej instalacji

SystimPlus. Dokumentacja (FAQ) dla wersji: v

Podłącz bezprzewodowy punkt dostępowy DWL-700AP do sieci.

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Instrukcja obsługi. Grand IP Camera III. Kamera IP do monitoringu

Co to jest BCD? Jak możemy edytować magazyn BCD?

MultiBoot Instrukcja obsługi

Konwerter RS-485->Ethernet [TCP/IP] CN-ETH-485 INSTRUKCJA [konfiguracja urządzenia do współpracy z programem MeternetPRO]

Kto kontroluje twój modem?

Instrukcja konfigurowania GPS Trackera

OPIS PRZEDMIOTU ZAMÓWIENIA. Notebook nr 1. Procesor Ilość punktów uzyskanych w teście 3Dmark06 CPU Pamięć RAM Typ dysku twardego

4 Channel Video Server ACD Ver Quick Installation Guide

MP4 FY535D. Włączanie: Przesuń przełacznik ON/OFF na pozycję ON i przytrzymaj przycisk > aby właczyć. Aby wyłączyć przesuń przełacznik na pozycję OFF

VLAN-Cisco. 1. Login/Hasło. 2. Połączenie z Cisco: Cisco: admin admin. Jest możliwe połączyć się za pomocą polecania minicom lub telnet.

Instrukcja instalacji połączenia sterownika PL11-MUT24 ze stroną internetową.

Program Computer Setup

Sterownik oczyszczalni ścieków OS-One

Komputer przenośny typ I szt.

OPIS PRZEDMIOTU ZAMÓWIENIA

Moduł Ethernetowy EL-ETH. Instrukcja obsługi

DA Podręcznik użytkownika. Kabel USB 2.0 DLA IDE i SATA

OPIS PRZEDMIOTU ZAMÓWIENIA. Przedmiotem zamówienia jest dostawa laptopów i stacji dokujących na potrzeby Centralnego Portu Komunikacyjnego sp. z o.o.

Zadanie4. Sprawdzian z informatyki dla Gimnazjum z zagadnień: budowa komputera i sieci komputerowej

NWD-170N. Szybki start. Bezprzewodowa karta CardBus n. Wersja Wydanie 1

Podręcznik do programu Computer Setup (F10) modele dx2390 i dx2400 typu microtower Komputer osobisty HP Compaq Business

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zarządzanie i drukowanie Instrukcja obsługi


MultiBoot Instrukcja obsługi

Wykład 3: Implementacja programów wbudowanych

MultiBoot. Instrukcja obsługi

Podręcznik do programu (F10) model dx2200 typu microtower

Laboratorium - Konfiguracja zabezpieczeń sieci bezprzewodowej

Dotyczy: postępowania o udzielenie zamówienia publicznego na: Dostawa sprzętu komputerowego w ramach umowy ramowej

Product Update Funkcjonalność ADR dla przemienników Częstotliwości PowerFlex 750 oraz 525 6

Tomasz Greszata - Koszalin

Wzmacniacz sygnału, repeater Wi-Fi Conrad N300, do gniazdka, 1xRJ45

Spis Treści 1 INSTRUKCJE DOT. BEZPIECZEŃSTWA 2 2 ZAWARTOŚĆ OPAKOWANIA 3 3 WYGLĄD WYROBU 4 4 POŁĄCZENIA SYSTEMOWE 5

Podręcznik do programu (F10) model dx2250 typu microtower

Computer Setup Instrukcja obsługi

TOUCH LCD WALL CONTROLLER for Online Controller

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

CZĘŚĆ I PRZEDMIOTU ZAMÓWIENIA WYMAGANIA TECHNICZNE Część I A I. Komputer przenośny Liczba sztuk: 4 Oferowany model*.. Producent*..

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Narzędzie Setup. Instrukcja obsługi

DWL-2100AP g/108Mbps Bezprzewodowy punkt dostępowy D-Link AirPlus XtremeG

Rozwiązywanie problemów z komputerem

ZAPYTANIE OFERTOWE NR 6

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Instrukcja instalacji oraz obsługi SMT Interface wersja 01

NWD-370N. Szybki start. Bezprzewodowa karta PCI n. Wersja Wydanie 1

PODSTAWOWA KONFIGURACJA LINKSYS WRT300N

OPIS PRZEDMIOTU ZAMÓWIENIA (OPZ)

Instrukcja szybkiej instalacji

Podręcznik do programu Computer Setup (F10) Komputery z serii HP Elite 7000 MT

SPECYFIKACJA TECHNICZNA GRUPA III

Przejściówka, adapter Digitus USB 2.0, wtyk USB A <=> SATA/IDE, 0,53 m

Uproszczona instrukcja instalacji systemu Windows na Intel Rapid Storage Technology enterprises inne nazwy : (RSTe) [Matrix]

ZL24PRG. Interfejs JTAG dla mikrokontrolerów ARM


Ważne: Przed rozpoczęciem instalowania serwera DP-G321 NALEŻY WYŁACZYĆ zasilanie drukarki.

Uproszczona instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Dziękujemy za zakup przenośnego obrazu systemu (Recovery).

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA DOTYCZĄCEGO ZAKUP SPRZĘTU KOMPUTEROWEGO I OPROGRAMOWANIA DLA SZKOŁY PODSTAWOWEJ W WOLI ZARADZYŃSKIEJ

Załącznik nr 3. Komputer klasy PC desktop. Procesor

UWAGA!!! Tablety. Tablet TB 1. Tablet TB 2. Tablet TB 3

Transkrypt:

Krótka historia o debugowaniu laptopa, który nie budził się z uśpienia 15.05.2019, Warsaw C++ Users' Group Michał Redford Kowalczyk

O mnie Wicekapitan @ Dragon Sector CTF team Researcher @ Invisible Things Lab Inżynieria wsteczna, IT sec, kryptografia Współautor Praktycznej Inżynierii Wstecznej [dodane po prelekcji] Inna moja prezentacja, na podobny temat: https://www.youtube.com/watch?v=fpabnjo9a0w

Intro Znajomemu nie działa suspend w laptopie Usypia się poprawnie, ale hard reset przy próbie obudzenia Thinkpad x230, Qubes OS (z Xenem jako hypervisorem)

Standardowe sprawdzenia Update BIOS-u, firmware u i sterowników Reset BIOS-u do ustawień fabrycznych Przełożenie dysku do innego Thinkpada x230 Zmiana BIOS-u na coreboota Zmiana OS-a na inny Nie widać żadnej oczywistej przyczyny pora na debugowanie!

Ale najpierw, jak to wszystko działa?

Jak działa komputer: BIOS, ACPI, OS... GPU PSC CPU Northbridge RAM Battery HDD Audio EC/KBC Keyboard Ethernet Southbridge BIOS Touchpad

Boot GPU PSC EIP=... CPU RAX=... Northbridge RAM RBX=...... Battery HDD Audio EC/KBC Keyboard Ethernet Southbridge BIOS Touchpad

Boot GPU PSC EIP=... CPU RAX=... Northbridge RAM RBX=...... Battery HDD Audio EC/KBC Keyboard Ethernet Southbridge BIOS Touchpad

Boot GPU PSC EIP=... CPU RAX=... Northbridge RAM RBX=...... Battery HDD Audio EC/KBC Keyboard Ethernet Southbridge BIOS Touchpad

Przejście w S3 GPU PSC EIP=... CPU RAX=... Northbridge RAM RBX=...... Battery HDD Audio EC/KBC Keyboard Ethernet Southbridge BIOS Touchpad

Budzenie z S3 GPU PSC EIP=... CPU RAX=... Northbridge RAM RBX=...... Battery HDD Audio EC/KBC Keyboard Ethernet Southbridge BIOS Touchpad

Qubes OS / Xen Hardware Xen host OS Dom0 DomU DomU... management domain (VM) user domains (VMs)

Debugowanie

Sposoby na debugowanie Ekran - wyłączony/gpu wyłączone Serial port - nie mamy stacji dokującej while (1) {} RTC timer

pm_trace Ficzer Linuxa do debugowania ACPI static int device_resume_noirq(struct device *dev, pm_message_t state, bool async) { pm_callback_t callback; const char *info; bool skip_resume; int error = 0; TRACE_DEVICE(dev); TRACE_RESUME(0); if (dev->power.syscore dev->power.direct_complete) goto Out;

pm_trace w Dom0: echo 1 > /sys/power/pm_trace suspend resume auto reboot dmesg: Magic number: 0:848:178 hash matches [snip]/linux-4.14.74/drivers/base/power/main.c:1143

pm_trace w Dom0: echo 1 > /sys/power/pm_trace suspend resume auto reboot dmesg: Magic number: 0:848:178 hash matches [snip]/linux-4.14.74/drivers/base/power/main.c:1143 Czyli: Complete: complete_all(&dev->power.completion); TRACE_SUSPEND(error); 0 return error; Suspend się powiódł, ale do resume w ogóle nie dotarło

pm_trace w Xenie? Nie ma, ale... przeportowanie z Linuxa do Xena okazało się dość proste Setup: netboot przez PXELINUX

Dokąd dociera wykonanie? arch/x86/boot/wakeup.s#l152: movl $MSR_EFER,%ecx rdmsr btsl $_EFER_LME,%eax /* Long Mode */ btsl $_EFER_SCE,%eax /* SYSCALL/SYSRET */ btl $20,%edi /* No Execute? */ jnc 1f btsl $_EFER_NX,%eax /* No Execute */ 1: wrmsr

NX? Niewłączanie NX naprawia problem Ale dlaczego NX nie daje się włączyć?

NX Intel SDM, Volume 3: If the execute-disable capability is not available, a write to set IA32_EFER.NXE produces a #GP exception. Ale procesor w tym laptopie wspiera NX.

NX IA32_MISC_ENABLE MSR:

BIOS! BIOS na Thinkpadach x230 domyślnie ma wyłączony NX Xen przy starcie komputera nadpisuje wyłączenie NX i z powrotem go włącza (najpierw w IA32_MISC_ENABLE a potem w EFER.NXE) Ale przy resume robi tylko to drugie

Naprawa Zmiana ustawień BIOS-u naprawia problem Patch do Xena też nie zaszkodzi

Pytania? Email: redford@dragonsector.pl Twitter: @dsredford IRC: Redford @ freenode.net