Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Извлечение экзешника из экзешника (http://forum.oszone.net/showthread.php?t=349037)

jkadaba 19-06-2021 20:29 2960579

Извлечение экзешника из экзешника
 
Суть проблемы. В экзешнике (не SFX архив) есть другой экзешник (медицинское ПО ели важно). Раньше экзешник как и положено выплёвывал 64 битный экзешник, а теперь что-то пошло не так. Разрабы из административного центра говорят, что у них всё работает и потому просто шлют нафиг. Можно ли как-то скриптом извлечь экзешник? Использование стороннего софта вроде ResHacker заблокировано на уровне политик ограниченного использования программ.

greg zakharov 19-06-2021 21:46 2960582

Смотрите в таблицу ресурсов, находите нужный, получаете его смещение и размер. Для простоты можете обратиться к модулю peview.
Код:

Install-Module peview
Пример извлечения драйвера из Process Monitor Руссиновича.
Код:

┌─[E:\sandbox]
└λ Import-Module peview

┌─[E:\sandbox]
└λ Get-PeResources .\test\procmon.exe
AFX_DIALOG_LAYOUT
  HISTORY_DEPTH          (RVA:000FE428, Offset:000F4A28, Size:0x2)
  USAGE                  (RVA:000FE420, Offset:000F4A20, Size:0x2)
BINRES
  RCDRIVERNT              (RVA:000FE430, Offset:000F4A30, Size:0x16F78) # драйвер
CURSOR
  21                      (RVA:000FE180, Offset:000F4780, Size:0x134)
...

┌─[E:\sandbox]
└λ [IO.File]::WriteAllBytes(
>> 'E:\sandbox\procmon.sys', (Format-Hex .\test\procmon.exe -Offset 0xF4A30 -Count 0x16F78
>> ).Bytes)

┌─[E:\sandbox]
└λ Get-PeHeaders procmon.sys
FILE HEADER VALUES
            8664 machine (AMD64)
              8 number of sections
        6080496E time date stamp (21.04.2021 15:49:02)
              0 pointer to symbol table
              0 number of symbols
              F0 size of optional header
            2022 characteristics
                  DLL
                  EXECUTABLE_IMAGE
                  LARGE_ADDRESS_AWARE
OPTIONAL HEADER VALUES
            20B magic # (PE32+)
          14.28 linker version
...

По аналогии извлекается любой другой PE файл.

jkadaba 20-06-2021 19:12 2960613

Хотелось бы одной командой, но все равно спасибо. Можно помечать тему решенной.

Гульф 21-06-2021 16:47 2960663

А как такое может быть: у exe есть иконка, а Get-PeHeaders из указанного модуля показывает что ресурсов нет?
Скрытый текст
Код:

FILE HEADER VALUES
            14C machine (I386)
              3 number of sections
        4651D825 time date stamp (21.05.2007 17:34:29)
              0 pointer to symbol table
              0 number of symbols
              E0 size of optional header
...
              0 [      0] RVA [size] of Resources Directory
              0 [      0] RVA [size] of Exception Directory
              0 [      0] RVA [size] of Certificates Directory
              0 [      0] RVA [size] of Base Relocation Directory
              0 [      0] RVA [size] of Debugs Directory
              0 [      0] RVA [size] of Architecture Directory
              0 [      0] RVA [size] of Global Pointer Directory
              0 [      0] RVA [size] of Thread Storage Directory
              0 [      0] RVA [size] of Load Configuration Directory
              0 [      0] RVA [size] of Bound Import Directory
              0 [      0] RVA [size] of Import Address Table Directory
              0 [      0] RVA [size] of Delay Import Directory
              0 [      0] RVA [size] of Com Descriptor Directory
              0 [      0] RVA [size] of Reserved Directory

Name VirtSize VirtAddr DataSize RawData  Characteristics
---- -------- -------- -------- -------  ---------------
dat0 0000C000 00001000 00000000 00000400 {MEM_WRITE, CNT_UNINITIALIZED_DATA, MEM_EXECUTE, MEM_READ}
dat1 00009000 0000D000 00008400 00000400 {MEM_WRITE, CNT_INITIALIZED_DATA, MEM_EXECUTE, MEM_READ}
dat2 00001000 00016000 00000200 00008800 {MEM_WRITE, CNT_INITIALIZED_DATA, MEM_READ}


greg zakharov 21-06-2021 17:33 2960665

Судя по секциям, файл пожат чем-то похожим на UPX. Возможно, что это и он есть, правда видоизменённый. В бытность актуальности PEiD можно было бы глянуть в последнем, сейчас ничего не остаётся как смотреть в hex-редактор или рыскать по БД сигнатур YARA. Последняя используется не только как инструмент в борьбе с вирусами, но и для выявления пакеров и протекторов.


Время: 15:24.

Время: 15:24.
© OSzone.net 2001-