Tema: Re: DELL BIOS išpakavimas
Autorius: saimhe
Data: 2010-08-27 15:51:54
> turim dell bios'ą exe failo pavidalu.Iš esmės ten yra į exe kaip konteinerį
> sukišti afuwin.exe, afudos.exe ir pats bios romas. Kaip išskleisti šitą exe
> failą?

   Štai parsitempiau pirmam pasitaikiusiam -- Inspiron 8600 (pavadinimas kažkuo
pažįstamas pasirodė). 572 KB. Yra vardinis exe resursas "PAYLOAD", viduje pagal
importuojamų funkcijų vardus akivaizdžiai draiveris, kode matosi originalus
pavadinimas "DellBios.sys". Paskutinė exe sekcija yra tie patys resursai, jei
failas tenai baigtųsi, būtų 208 KB. Bet nesibaigia, kabo dar 364 KB:

00033FE0:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
00033FF0:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
00034000:  44 65 6C 6C-42 49 4F 53-00 ED 45 AF-05 00 5C 00  DellBIOS.ĒE»..\.
00034010:  10 00 1F 8B-08 00 00 00-00 00 00 00-EC BD 0B 40  ...ŗ........ņĮ.@

   Nuo 0x34012 panašu į gzip, be to, 4 baitai nuo 0x3400A aiškiai yra jo ilgis.
Akurat, gzip.exe sako: "decompression OK, trailing garbage ignored".
Rezultatas -- megabaitas su trupučiu (0x10005C), panašu į patį biosą:

00000000:  24 52 42 55-54 01 00 01-43 6F 70 79-72 69 67 68  $RBUT...Copyrigh
00000010:  74 20 32 30-30 35 20 44-65 6C 6C 20-43 6F 6D 70  t 2005 Dell Comp
00000020:  75 74 65 72-20 43 6F 72-70 6F 72 61-74 69 6F 6E  uter Corporation
00000030:  41 31 34 00-00 00 00 00-00 00 00 00-6A 08 00 00  A14.........j...

   Kas ten per trailing garbage? Net gzip -v neišduoda, kur jos prasideda.
Paknisau RFC 1952, na ir brudnas formatas: hederyje ilgio nėra, vienintelė
išeitis yra ieškoti žinomo pradinių duomenų ilgio (to 0x10005C), kuris turėtų
būti iškart už duomenų. Laimei, tai yra pats failo galas:

0005AF40:  FF 5C 00 10-00 00 40 03-00         -              .\....@..

  Ištrynus paskutinius 4 baitus, gzip lieka patenkintas. Ištrynus bent vienu
daugiau, nebeišarchyvuoja.
  Jau akivaizdu, kad 4 baitai nuo 0x3400E yra pradinis duomenų ilgis.
O kam reikalingi šitie?

00034008: 00 ED
0005AF45: 00 40 03 00

  Spėliok pats. Gal galima ir nekeisti.

-- 
  saimhe