sadj
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Если про 11-ую, то саму таблицу, в прямом понимании, так с кондачка, определить довольно сложно. Повторюсь, в явном виде (т.е. наглядном и простом) ее нет, она перемешана с участками рабочего кода и адресами доступа к листам. И тут еще надо учитывать, что после m0, а тем более m1, адреса начала блоков (читай листов), могут поплыть, хотя и не на много. Поиск самих листов, затруднений не вызывает. Главное - надо учитывать способ хранения данных для процессора винта. У него, как и у семейства Intel, все через одно место - «задом на перед», т.е. первым идет младший байт. Поэтому, для организации поиска в бинарных файлах, можно воспользоваться и простым Total Commander, в режиме поиска текста, а именно, скормить ему все папки с этими файлами в режиме [С текстом:], указав только какой текст [v] HEX-код, а в самой строке поиска, если ищем адреса засветившиеся в листах, их значения надо выворачивать тем же способом: «задом на перед» по байтно. !!! Важно - именно по байтно. Чем длинее адрес, тем большая вероятность удачного поиска. Далее скармливаем шестнадцатиричнму редактору (WinHex) найденные файлы и ищем в них тот же HEX-контекст. Поднимаемся по адресам к началу блока (читай листа), там будет HEX-код типа 33303346, ASCII представление 303F, вот именно после этого кода, в направлении к старшим значениям offset и проверяем этот участок файла на соответствие адресов нашем листу, не забывая о том, что все здесь, через это знаменитое место... Добавлено: Если необходимо отыскать начало блока, то поднимаемся по offset от сигнатуры 303F, как правило, на 6E или 6А байт, там будет одно или двух байтное значение. После локализации этого offset, можно предположить, что его значение соответствует наполнению листа. Обнулив это значение, мы можем предположить, что лист будет являться очищенным, хотя не все так просто. Бороться с копиями листов – это отдельная тема. Добавлено: Исправление: на 6E или 6F байт, подвела прога - Punto Switcher. |