Спецификация jpeg описана в документе
www.w3.org/Graphics/JPEG/itu-t81.pdf.
Данные в jpeg'е кодируются строками сверху вниз, строки кодируются слева направо. Найти место повреждения вы можете методом "научного тыка" - берете этот файл и изменяете байт в середине, смотрите с какого места начались новые повреждения. Если после (в этой же строке правее или в любой строке ниже) вашего повреждения - значит и новое повреждение находится в файле позже (по большему смещению). Если раньше - раньше. Так половинным делением вы сильно сузите круг поиска. Дальше надо найти тот самый бит, который вам все испортил. Тут, наверное, долгий и нудный перебор каждого бита в оставшемся диапазоне, с последующим просмотром.
Кажется, когда-то видел программу, которая реализовывала такой подход. В ней надо было мышкой указать где именно поломалась картинка.