Я обычно подобные решения пишу на HeX HeX - это лучший инструмент