metaclass: (Default)
[personal profile] metaclass
Посетила мысль, что реверс-инжиниринг форматов файлов при наличии проги работающей с ними, можно было бы автоматизировать, имея виртуальную машину с функцией "пометить область данных тэгом" и затем рассматривать продвижение оного тэга по памяти, вплоть до отображения результата на экране.
Частичный вариант оного - менять ручками байты в файле и смотреть как это отражается на работе программы.

Date: 2007-12-23 02:46 am (UTC)
From: [identity profile] 1ceheart.livejournal.com
Ну это нужно instruction-level эмулятор, потому что, грубо говоря, мы делаем "mov eax, [esi]; mov [edi], eax" и эмулятору надо будет понимать, что вот, если esi показывает в "помеченную область", то потом eax тоже надо пометить, а потом пометить [edi]. При этом отследить логические связи вообще малореально - например, мы делаем "xor eax, eax; mov [edi], eax" - и формально содержимое [edi] взялось из ниоткуда, но при этом логически оно может быть связано с [esi], т.к. до этого мы сделали "cmp [esi], ebx; jnz l1". В общем, в лучшем случае удастся относительно надежно отслеживать тупое копирование.

А реверс-инжиниринг формата чаще делается все равно наоборот (если есть возможность): т.е. в проге делаются небольшие изменения в данных и смотрится, что поменялось в файле. Это проще. Впрочем, от формата зависит тоже и от проги :)

Date: 2007-12-23 10:18 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да, кстати, вторая возможность у меня имеется, хехе.

Date: 2007-12-23 06:19 pm (UTC)
From: [identity profile] vp.livejournal.com
Задолбаться можно, честно говоря, меняя входной поток данных смотреть на то, что изменится в работе "черного ящика".

Date: 2007-12-23 07:45 pm (UTC)
From: [identity profile] inhate.livejournal.com
А зачем вообще реверс-инжинирить-то? Не проще ли просто взять описание формата и реализовать его...

Date: 2007-12-23 08:28 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Есть проприетарные форматы и есть описанные так, что без реверс-инжиниринга не разберешься.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 25th, 2025 01:13 pm
Powered by Dreamwidth Studios