1. Пишешь утилиту, которая будет копировать битмап в хвост ехе.
В принципе можно обойстись даже батником.
Перед битмапом пишешь сигнатуру. Сигнатуру выбираешь от 8 до ХХХ байт.
Таким образом чтобы она не встречалась в ехе файле.
К примеру:
copy /b a.exe+sig+a.bmp b.exe
2. В ехе отрываешь сам себя на чтение, читаешь файл и ищещь сигнатуру.
если нашел - после нее битмап. Для облегчения жизни после сиг. можно и длину
битмапа записать.
Главное - не пиши в ехе:
if (strstr(buf,"mysupersig"))
ибо найдется место, где лежит строкая константа.
ergo, сравнение делай побайтно
if (buf[i]=='s' && buf[i+1]=='i' && ....)
Усе.
Andrey Tretjakov 2:5085/40
Предыдущий вопрос
|
|
Следующий вопрос
источник
by jenyok
|