Создаю файл, в конце секции .data которого записываю другой файл, ну, к примеру, TCPVIEW.EXE. Правлю в соответствии с размером записанного файла данные в заголовке. Файл при запуске распаковывает в темп TCPVIEW.EXE и запускает. Загрузчик винды не ругается, вроде все пучком, работает. Но вот запаковать файл UPXом или FSG! некоторые файлы не могу. UPX пишет, что section size problem, FSG! вылетает вообще. Файл прикрепил, поможите кто могёт. Спасибо.
KondraT может быть стоит просто поксорить сам TCPVIEW, а потом запихнуть в секцию? интересно вот это нормально пакует: Код (Text): format pe gui entry main section '.text' code readable executable main: xor eax, eax ret section '.data' data readable writeable mumu: file 'test.exe' исходник в студию.
KondraT набредил я тут. вообщем проблема в том что вы не правильно отредактировали реальный и виртуальный размер секции .data у вас: V. Size: 0x17399 R. Size: 0x17400 <- Ошибка, реальный размер секции больше чем на самом деле в файле 'test.exe' я выставил так: V. Size: 0x17000 R. Size: 0x17000 все нормально упаковал.
Arthur, запаковался, но сам ехе стал не рабочий. На самом деле всё оказалось намного прощё: не выровнял SizeOfImage = 1A339h по SectionAlign - 1B000h. Проверил, что виндовому загрузчику нравится, думал и пакерам сойдет, но оказалось, что им это значение надо ровнять.
Ничего не пойму... Записал в конец .data секции другой файл (dumpingicq.exe, вобщем, не важно какая). Теперь при запаковке UPX ругается что NotCompressibleException. Хотя, опять же, файл полностью работоспособный и виндовый загрузчик его грузит, PETools тоже всё норм вроде: Размер образа выровнял... Что ему еще надо не пойму. FSG тоже не жмет. Файл прикрепил. Спасибо кому не лень посмотреть.
А вот если уменьшить размер RAW size на 200h - 18000h тогда жмёт... Сам RAW размер-то правильный! .data секция от 800h до 1А000h. 800h+1A000h=1A800h, что есть размер всего файла.