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ɎѼô

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



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


Advertisement


(Read 8 comments)

Post a comment in response:

From:
Help
Identity URL: 
Username:
Password:
Don't have an account? Create one now.
Subject:
No HTML allowed in subject
   Help
Message:

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