Да в принципе не сложно это сделать, если сам будешь разбираться, выложу пару примеров работы с исполняемыми файлами, а то у меня сессия на носу, некогда
Я делал компонент, но как то потерял интерес к этому.
Именно с иконками не работал, но думаю по аналогии с секциями:
1 находишь физический адрес иконки в файле и ее размер
2 заменяешь полученный блок своей иконкой
3 вписываешь новый размер
Это самый простой вариант. Сложности могут быть с остальными адресациями, если не уложишься в определенный размер, возможно придется вносить дополнительные правки.
Будешь делать, помогу, чем смогу