WinDBG i firmware

2015-03-27 09:00

W teorii IDA pozwala na analizę dynamiczną firmware poprzez protokół GDB i połaczenie z hypervisorem takim jak np. VMWare Workstation. W praktyce jednak zarówno różne wersje IDY jak i serwerów GDB w hypervisorach zawierają różne błędy, które powodują między innymi że zawartość pamięci nie jest dostarczana do IDY poprawnie. Efektem tego jest oczywiście błędna deasemblacja kodu oraz niepoprawne działania debugera.

W przypadku platform x86/x64 z Windows alternatywą dla tego rozwiązania może być pakiet Microsoft Debugging Tools. WinDBG ma wsparcie dla debugowania BIOSu, choć wielu użytkowników nie zdaje sobie z tego sprawy. Poniżej przedstawiamy ściągawkę z tych poleceń:

  • !amli u – pozwala na deasemblacja kodu AML (ACPI Machine Language). Pełna lista rozszerzeń WinDBG obsługujących ACPI jest dostępna tutaj https://msdn.microsoft.com/en-us/library/windows/hardware/ff553164(v=vs.85).aspx
  • !mps – wyświetla informacje BIOSu zgodnie z MultiProcessor Specification Intela http://www.intel.com/design/pentium/datashts/24201606.pdf
  • !sysinfo cpuinfo – wyświetla informacje o procesorze
  • !sysinfo machineid – wyświetla informacje o BIOSie (producent, wersja, data itp.)
  • up – deasembluje kod z pamięci fizycznej a nie wirtualnej
  • ur – deasembluje 16 bitowy kod działający w trybie rzeczywistym (komenda u deasmbluje tylko kod 32 lub 64 bitowy)
  • ux – deasembluje kod x86 (dostępne tylko na platformie x86 w przypadku x64 polecenie skończy się komunikatem: Couldn’t resolve ‘ux’)

Oczywiście skorzystanie z większości tych poleceń wymaga zdalnego połączenia z drugim systemem. Wybrane polecenia są dostępne tylko w trybie kernel mode i target live debugging. Zrzut pamięci wykonany przez LiveKD nie zadziała w tym przypadku.

Przy okazji zamiast używać hypervisora – jeśli szybkość wykonywania kodu nie ma znaczenia – można użyć emulatora QEMU. Opisane polecenia Debugging Engine nie dotyczą platformy ARM.

Proces startu systemu w przypadku UEFI przebiega inaczej niż w przypadku BIOSa w związku z tym debugowanie firmware’u UEFI także różnic się od powyższego opisu.

Blog

MS SQL Server 2005 Extended Support kończy się 12 kwietnia

Rozszerzone wsparcie dla serwera Microsoft SQL Server 2005 kończy się 12 kwietnia. To ostatni moment aby dokonać migracji do wyższej wersji.

Jeśli tego nie zrobiłeś to AVET INS może wesprzeć ...

2016-03-01 09:00, Czytaj więcej Więcej
Kiedy Flash wyginie?

Flash to jedna z tych technologii, która ma bardzo złą – i w tym wypadku całkowicie zasłużenie – reputację w obszarze bezpieczeństwa. Ta reputacja jest tak zła, że od jakiegoś czasu część ...

2016-02-11 16:45, Czytaj więcej Więcej
Krytyczna podatność w kliencie OpenSSH (CVE-2016-0777, CVE-2016-0778)

Wersje oprogramowania klienckiego OpenSSH w wersjach od 5.4 do 7.1 podatne są na atak umożliwiający wyciek pamięci oraz kradzież kluczy prywatnych. W przypadku, gdy połączenie SSH zostanie przerwane ...

2016-02-01 09:30, Czytaj więcej Więcej
Microsoft ogranicza wsparcie IE tylko do wersji 11

Microsoft przestaje wspierać starsze wersje przeglądarki Internet Explorer. Jedyną wspieraną wersją od dzisiaj jest IE 11 i wyższe. Dla wielu systemów (np. Windows 7) może to oznaczać potrzebę aktualizacji lub ...

2016-01-13 09:00, Czytaj więcej Więcej
SafeNet Day: Szyfrowanie w chmurze - prezentacja

Prezentacja Aleksandra Czarnowskiego z konferencji SafeNet Day na temat Szyfrowanie w chmurze jest już dostępna do pobrania. Zapraszamy do pobrania poniżej:

http://www.avet.com.pl/media/pdf/2015-11-02_Szyfrowanie_w_chmurze.pdf

2015-10-31 10:00, Czytaj więcej Więcej