Мне кажется, что обратная задача не вполне однозначна. Поэтому и решени найти не просто. Если транслитерируешь с русского на латиницу, то можно придерживаться определенных правил, например, "ц" писать как "c". А другой будет писать как "ts". Все равно русский человек без особого труда прочитает.
А при обратной процедуре проблема в том, что не знаешь, кто какие буквы использовал. Это мог делать и автомат, и вручную. В результате не будет последовательности. Например:
"цветочек" - "cvetochek/tsvetochek/tsveto4ek". Когда читаешь транслитерацию, то на такие мелочи можно не обращать внимания. Но если перевести обратно в кириллицу, то могут получиться слабочитаемые слова, типа "тсветочек". Сомневаюсь, что есть программа, учитывающая ВСЕ возможные варианты. Но если первая транслитерация была сделана последовательно, по вполне определенным правилам, то, думаю, все рашаемо.