igoriando ([info]igoriando) wrote,
@ 2008-10-09 15:02:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Как восстановить файл, убитый в памяти КПК с Windows Mobile.
Из-за отсутствия recycle bin в моем PDA, давно хотел научиться восстанавливать удаленные файлы не только на флешке, для чего существует уйма программ, но и на внутренней памяти устройства. Во многих местах написано что это невозможно, однако люди ведь как-то снимают образ ROM чтобы поиграть с Windows Mobile. Для этого используется набор утилит голландского девелопера itsme, которые можно взять здесь:
http://www.xs4all.nl/~itsme/projects/xda/tools.html
В составе архива куча exe-шек и itsutils.dll, которая копируется через ActiveSync на мобильное устройство в папку /Windows при первом запуске любой утилитки, для низкоуровневой работы с WinCE утсройством.

Нам нужна утилитка pdocread.

Сначала смотрим какого размера у нас основная память на КПК
Start > Settings > System > Memory > Storage
В моем случае 83.90МВ

В дальнейших выводах все совпадения цифр между командами неслучайны :)

На компьютере с подключенным КПК устройством запускаем pdocread -l
В выводе команды находим kernel handle для раздела подходящего размера:
 
STRG handles:
handle#0 aff43ac2  85.24M (0x553e800)

Теперь узнаем точную длину этого раздела
pdocread -h 0xaff43ac2 -t
real nr of sectors: 174720  -  85.31Mbyte, 0x5550000

Теперь этот раздел можно считать в файл (не забываем про 0x перед handle!)
pdocread -h 0xaff43ac2 0x0 0x5550000 dump.raw
CopyTFFSToFile(0x0, 0x5550000, dump.raw)

Дальше наступает самое главное. Понадобится программа восстановления удаленных файлов, умеющая работать с файлами-образами, но скорее всего она скажет invalid volume type и не найдет сектор, с которого начинается таблица FAT. Придется найти hex-редактор, я использую WinHex, и удалить несколько первых 512-байтных секторов, до начала того сектора, где в первый раз будет найдено слово FAT. В моем случае, пришлось удалить первые 11 секторов (5632 байта), до начала вот такого куска:
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

00000C00   EB 58 90 4D 53 44 4F 53  35 2E 30 00 02 08 26 00   ëXMSDOS5.0...&.
00000C10   02 00 00 00 00 F8 00 00  3F 00 FF 00 00 00 00 00   .....ø..?.ÿ.....
00000C20   00 40 1F 00 CD 07 00 00  00 00 00 00 02 00 00 00   .@..Í...........
00000C30   01 00 06 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000C40   00 00 29 D1 69 B3 08 4E  4F 20 4E 41 4D 45 20 20   ..)Ñi³.NO NAME  
00000C50   20 20 46 41 54 33 32 20  20 20 33 C9 8E D1 BC F4     FAT32   3ɎѼô

Полученный обрезок сохраняем и вуаля - он нормально открывается как образ диска :)
Надеюсь, кому-то эта информация сохранит нервные клетки, ведь как известно, в них сидят нервные тигры :)



использованы идеи этого блог-поста



(8 comments) - (Post a new comment)

Как восстановить файл, убитый в памяти КПК
(Anonymous)
2009-04-02 03:38 pm UTC (link)
Здравствуйте, igoriando. Очень понравилась и пригодилась Ваша информация по восстановлению файлов с КПК. Через разные тернии освоения командной строки, разлочивания телефона, поиска HEX-редактора и разных мелочей, связанных с абсолютным незнанием английского языка, я добрался до создания RAW-образа дампа памяти коммуникатора. И теперь, когда уже вроде мерещится финишная прямая, я встал в ступор от одной проблемы: какой программой можно обрабатывать RAW-образ для восстановления файлов? (особо подчеркну, что на коммуникаторе файловая система TFAT и обычные программы восстановления с жёстких дисков, работающие с FAT и NTFS, ничего не видят). Вы пишете: "Понадобится программа восстановления удаленных файлов, умеющая работать с файлами-образами, но скорее всего она скажет invalid volume type и не найдет сектор, с которого начинается таблица FAT." Я нашёл только сектор с TFAT, а программа, которая умеет работать с файлами-образами RAW, по моим поисковым запросам в Гугле не находится. Подскажите, пожалуйста, какой программой Вы пользовались и как быть с файловой системой TFAT? Извините, пожалуйста, за "анонимный" вопрос, просто длительность (нудность) и трата трафика для процедуры регистрации на разных форумах и сайтах меня просто "убивает". Ещё раз большое спасибо за Ваше внимание к этой проблеме. Поражаюсь, почему ни программеры Мелкософта, ни разработчики сторонних программ восстановления данных до сих пор не придумали что-нибудь полезное для таких юзеров, как я; лёгкую программу восстановления данных на КПК. Ведь понять, что требуется бэкап, можно только тогда, когда узнаёшь, что все нужные файлы слетели по независящим от тебя причинам...Грустно... мой электронный адрес: rabotnik_alex mailru, С уважением, Александр.

(Reply to this) (Thread)

Re: Как восстановить файл, убитый в памяти КПК
(Anonymous)
2009-04-11 08:19 am UTC (link)
Вот эта программка замечательно работает с TFAT (WM2003) и TFAT32 (WM5, WM6):
http://www.ufsexplorer.com/rdr_fat.php

Кстати, там есть еще и такое:
http://www.ufsexplorer.com/rdr_mobile.php
но с основной памятью напрямую не работает :(

(Reply to this) (Parent)(Thread)

Re: Как восстановить файл, убитый в памяти КПК
(Anonymous)
2009-12-19 01:19 am UTC (link)
Я использовал Active File Recovery для открытия RAW файла. Правда после операции некоторые файлы остались поврежденными :(

(Reply to this) (Parent)


(Anonymous)
2009-09-26 02:20 am UTC (link)
у меня e-ten x800.
Пробовал как здесь написано, но почему-то не определяет размер раздела, количество секторов -1:

c:\Tools\Itsutils>pdocread -l
253.88M (0xfde0000) FLASHDR
| 2.25M (0×23fc00) Part00
| 36.50M (0×2480000) Part01
| 215.13M (0xd720000) Part02
STRG handles:
handle 639385d2215.13M (0xd720000)
handle 83a71c2a 36.50M (0×2480000)
handle 83a71a3e 2.25M (0×23fc00)
disk 639385d2
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk 83a71c2a
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
disk 83a71a3e
0 partitions, 0 binary partitions
customerid=00000000 uniqueid= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

c:\Tools\Itsutils>pdocread -h 0×639385d2 -t
real nr of sectors: 1 – 512.00byte, 0×200

c:\Tools\Itsutils>pdocread -h 0×83a71c2a -t
real nr of sectors: 1 – 512.00byte, 0×200

Как нибудь еще можно восстановить?

(Reply to this) (Thread)


[info]igoriando
2009-09-30 08:25 am UTC (link)
Добрый день, вы бы хоть представились :)
Мне кажется, что у вас проблема не с поиском убитых файлов в еще существующих разделах, а "слетели" сами разделы в таблице разделов (partition table). Соответственно, непонятно, где начинается раздел и его файловая система.

Но по крайней мере, у вас есть адрес накопителя, 0xfde0000
Поищите среди тех же утилит itsme ключики для чтения всего диска, чтобы считать вообще всё, невзирая на разделы (логические диски). Хорошие программы восстановления из этого месива способны сами найти отдельные файлы по характерным начальным байтам, невзирая на рухнувшую таблицу разделов или файловую систему.

(Reply to this) (Parent)(Thread)


[info]igoriando
2009-09-30 08:40 am UTC (link)
Посмотрел внимательней, у вас же смартфон? И если у меня pdocread определяет тип файловой системы как TrueFFS и успешно ее читает, то у вас в этом месте FLASHDR. Ваш вывод похож на описанный здесь почитайте там и вокруг, возможно найдется способ. Из опыта общения с телефонами, идет постоянная война между "хакерами" и производителями, выпускающими прошивки с новыми CID, в которых не работают "старые" алгоритмы взлома. В общем, очень творческая работа :)

(Reply to this) (Parent)


[info]derstor
2009-11-23 02:08 pm UTC (link)
Добрый день,igoriando ! Очень полезная и своевременная заметка :). Скачал утилиты, записал dll-ку в папку Windows. Но столкнулся с небольшой проблемой - не запускается itsutils.dll, выводится сообщение: "ERROR loading itsutils.dll - probably denied by policy restriction", видимо речь идет о правах и разрешениях, но не могу сообразить где и в какой момент их устанавливать. Не подскажешь для чайников как это делается? Нужно реестр править или можно малой кровью обойтись? Заранее благодарен.

(Reply to this) (Thread)


[info]derstor
2009-11-23 02:43 pm UTC (link)
забыл добавить, аппарат HTC-x7500 advantage

(Reply to this) (Parent)


(8 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…