LINUX.ORG.RU
ФорумTalks

[ЖЖ][ЕРУНДА][БРЕД]до чего техника дошла!!!11

 , ,


0

0

расковыривал тут образ биоса от ASUS EEE PC T101MT. наткнулся на виндовый PE бинарь в образе биоса. судя по мессагам в бинаре кусок отвечающий за обновление биоса на конкретной платформе.

serge@blackmarble:~/tmp/T101MT/T101MT-ASUS-0503.---$ file amibody.a2 amibody.a2: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit

т.е. в юзерспейсе универсальная обертка которая линкует при старте этот кусок. и вот что мне подумалось - включаем в биос бинарь с бэкдором, в драйвере или юзерспейсовой обертке линкуемся с ним, ?????, PROFIT!!!11. получаем универсальный бэкдор который не определяется дисковыми сканерами.

> т.е. в юзерспейсе универсальная обертка которая линкует при старте этот кусок

вот это утверждение ещё надо доказать

name_no ★★
()
Ответ на: комментарий от exception13

Ты проверял что это действительно секция а не просто там сигнатура совпала?

true_admin ★★★★★
()
Ответ на: комментарий от exception13

> а что тогда делает в образе биоса секция с PE бинарем?

Случайно там оказалась, например. Ты не забывай, что для того, чтобы с ней слинковаться, надо её оттуда вытащить, а для этого нужно иметь такой же бинарь снаружи.

name_no ★★
()

А как именно определяется PE? простой проверкой заголовков?

Попробуй взять какую-нибудь утилиту для анализа PE (PEiD или LordPE) и посмотреть, насколько оно действительно PE.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

>>Попробуй взять какую-нибудь утилиту для анализа PE (PEiD или LordPE) и посмотреть, насколько оно действительно PE.

у меня есть IDA Pro Free. сейчас прогоню

exception13 ★★★★★
() автор топика
Ответ на: комментарий от Yareg

Free не видел. юзаю или в виртуалке или под вайном

exception13 ★★★★★
() автор топика
Ответ на: комментарий от exception13

> в общем самая настоящая .dll

способ линкования ты уже определил? мне жутко интересно, как «универсальная обёртка» линкуется с dll, зашитой в биос.

name_no ★★
()
Ответ на: комментарий от name_no

>>способ линкования ты уже определил? мне жутко интересно, как «универсальная обёртка» линкуется с dll, зашитой в биос.

легко. а в чем проблема?

exception13 ★★★★★
() автор топика
Ответ на: комментарий от exception13

> легко. а в чем проблема?

Ну, я просто надеялся, что ты поделишься соображениями на эту тему. Мне же интересно.

name_no ★★
()

Вопрос: ты этот образ BIOS'а откуда взял? Просто возможно эта DLL есть только в образе, предназначенном для прошивальщика, а в самом BIOS'е (который прошит в чип на мамке) этой DLL нет.

Deleted
()
Ответ на: комментарий от Deleted

>>Вопрос: ты этот образ BIOS'а откуда взял? Просто возможно эта DLL есть только в образе, предназначенном для прошивальщика, а в самом BIOS'е (который прошит в чип на мамке) этой DLL нет.

RAW образ с оффсайта и эта .dll запакована в одну из секций этого RAW образа (между bios code и pci rom extentions) и является его частью.

exception13 ★★★★★
() автор топика
Ответ на: комментарий от exception13
+------------------------------------------------------------------------------+
| Class.Instance (Name)        Packed --->  Expanded      Compression   Offset |
+------------------------------------------------------------------------------+

   11 01 (     P6 Microcode)    03008 ( 12296) => 03008 ( 12296)      11014h
   A2 02 (  User-Defined ;))    01600 ( 05632) => 01600 ( 05632)      14034h
   08 03 (        Interface)    0079C ( 01948) => 0079C ( 01948)      15650h
   30 04 (    Font Database)    00048 ( 00072) => 00048 ( 00072)      15E04h
   FC 05 (  User-Defined ;))    00010 ( 00016) => 00010 ( 00016)      15E68h
   0C 06 (           ROM-ID)    00008 ( 00008) => 00008 ( 00008)      15E8Ch
   1B 07 (             SLAB)    2E9C1 (190913) => 624B4 (402612)  +   15EA8h
   20 08 (    PCI AddOn ROM)    08DD3 ( 36307) => 0E800 ( 59392)  +   44880h
   20 09 (    PCI AddOn ROM)    08A99 ( 35481) => 10000 ( 65536)  +   4D668h
   04 10 (     Setup Client)    04756 ( 18262) => 07457 ( 29783)  +   56118h
   21 11 (    Multilanguage)    0392B ( 14635) => 07DBC ( 32188)  +   5A884h
   0E 12 (         OEM Logo)    02BAC ( 11180) => 4B294 (307860)  +   5E1C4h
   18 13 (ADM (Display MGR))    017FC ( 06140) => 04247 ( 16967)  +   60D84h
   19 14 (         ADM Font)    0059C ( 01436) => 01304 ( 04868)  +   62594h
   1A 15 (       Small Logo)    00532 ( 01330) => 026A2 ( 09890)  +   62B44h
   06 16 (         DMI Data)    0028B ( 00651) => 00800 ( 02048)  +   6308Ch
   80 17 (  User-Defined ;))    00098 ( 00152) => 00098 ( 00152)      6332Ch
exception13 ★★★★★
() автор топика
Ответ на: комментарий от exception13

Нет, я серьёзно, не в порядке троллинга интересуюсь, как можно слинковаться с кодом, который находится в биосе?

name_no ★★
()
Ответ на: комментарий от name_no

Нет, я серьёзно, не в порядке троллинга интересуюсь, как можно слинковаться с кодом, который находится в биосе?

1: используется shadow ram т.е. образ биоса разворачивается в обычную оперативку;

2: адрес и смещение мы знаем и тогда 2 варианта:
  1: используем оригинальный сегмент и вызываем системную или собственную функцию линковки (извини но в win32 api я полный ноль);
  2: копируем код из оригинального сегмента в адресное пространство процесса и опять таки вызываем системную или собственную функцию линковки;

3: ?????;

4: PROFIT!!!11
exception13 ★★★★★
() автор топика
Ответ на: комментарий от exception13

> 1: используется shadow ram т.е. образ биоса разворачивается в обычную оперативку;

А разве для первого действия не нужно иметь в себе те же функции, как те, что спрятаны в сабжевой dll-ке?

Кстати, есть подозрение, что антивирь-таки будет ругаться на такой алгоритм.

name_no ★★
()
Ответ на: комментарий от name_no

Код читается в память и линкуется, какие проблемы? В биосе лежат байтики, имеющие форму исполняемого файла. Еще они, кажется, замаплены на некоторый адрес ОЗУ со старта. Берешь и читаешь.

shimon ★★★★★
()
Ответ на: комментарий от name_no

>>А разве для первого действия не нужно иметь в себе те же функции, как те, что спрятаны в сабжевой dll-ке?

нет. образ биоса развернут в оперативную память.

exception13 ★★★★★
() автор топика
Ответ на: комментарий от name_no

> А разве для первого действия не нужно иметь в себе те же функции, как те, что спрятаны в сабжевой dll-ке?

А что, чтобы загрузить DLL-ку, она в обязательном порядке должна находиться на файловой системе и только так?

shimon ★★★★★
()
Ответ на: комментарий от exception13

> нет. образ биоса развернут в оперативную память.

ага, вот об этом я не знал.

name_no ★★
()
Ответ на: комментарий от shimon

> А что, чтобы загрузить DLL-ку, она в обязательном порядке должна находиться на файловой системе и только так?

Необязательно. Главное --- замапить кусок памяти и любым загрузчиком PE загрузить в неё DLL.

trapezoid
()

на wasm'е такое вроде было. троян (или даже вирус) в bios, троян в videobios

deathmagnetic
()

дык это прошивалка биоса. оно сейчас на всех асусах

Suicide_inc ★★
()

Антивирь с эвристикопроактивнками однозначно будет ругаться на обращение даже безвредного процесса к BIOS.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от Yareg

Кстати. IDA есть под онтопик? А то искал как-то и не нашёл...

(1069) darkman@sl500:/opt/idastd> file ./idal
./idal: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
Darkman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.