eXeL@B —› Основной форум —› Разбор объёмных структур. Делимся опытом и советами |
Посл.ответ | Сообщение |
|
Создано: 10 марта 2013 21:16 · Личное сообщение · #1 Приветствую! Наверняка многим приходилось реверсить приложения, где используются большие, вложенные пользовательские структуры. В моём случае в приложении инициализируются несколько одинаковых структур с большим количеством полей. Поля в структуре заполняются в разных местах проги и не подряд. Задача состоит в том чтобы полностью повторить эту структуру и скормить её IDA. Если бы структура заполнялась в одном месте и подряд, проблем особых небыло бы. Суть проблемы, думаю ясна. Есть ли какие-то проги, помогающие разбирать и строить структуры? ----- Research For Food |
|
Создано: 10 марта 2013 21:33 · Личное сообщение · #2 |
|
Создано: 10 марта 2013 21:37 · Личное сообщение · #3 |
|
Создано: 10 марта 2013 21:39 · Личное сообщение · #4 reversecode Да, умеет создавать, и даже можно было бы смириться с убогостью, но это происходит в пределах одной функции, так что не используемая часть структуры обозначаются массивами байтовыми для заполнения пустот. А руками заполнять не очень легко, если размер структуры =0x2A8D байт ----- Research For Food |
|
Создано: 10 марта 2013 21:43 · Поправил: reversecode · Личное сообщение · #5 да, не заполненые поля, заполняются байтовый массив можете сделать их dword овыми и опять преобразовать в массив а вы хотели всю структуру одними dword полями? изучайте данные в той структуре иногда получается вложеными структурами быстрее ее наполнить, если формат их одинаков например массив каких то векторов где вектор по 0x20 или 0x24 сайза и тогда уже наложив структуру можно из нее массив сделать в Н елементов daFix пишет: 0x2A8D это вообще мало вот к примеру тоже не очень большие и уже разобраные 00000000 xxxx_t struc ; (sizeof=0x38828) ; XREF: xxxx_tr или в том же проекте 00000000 yyyy_t struc ; (sizeof=0x56DC) ; XREF: .data:_yyyy_ctx |
|
Создано: 10 марта 2013 22:08 · Поправил: hors · Личное сообщение · #6 daFix пишет: Суть проблемы, думаю ясна. Есть ли какие-то проги, помогающие разбирать и строить структуры? Не совсем понятно на каком принципе эти проги, если бы они существовали, работали. А так структуры в ида заполняются только вручную, по мере исследования. Если есть pdb(случайно ), то структуры можно выдернуть этой программой ----- http://ntinfo.biz |
|
Создано: 10 марта 2013 22:16 · Личное сообщение · #7 |
|
Создано: 10 марта 2013 22:40 · Поправил: hors · Личное сообщение · #8 |
|
Создано: 10 марта 2013 22:51 · Личное сообщение · #9 |
|
Создано: 10 марта 2013 22:53 · Личное сообщение · #10 hors пишет: Не совсем понятно на каком принципе эти проги, если бы они существовали, работали Да и мне не совсем понятно)) Как вариант - прога, в которую указываешь размерность массива, создаётся массив байт, потом по мере определения полей, вписываешь имя элемента, размерность и адрес, а прога сама перестраивает структуру с учётом новых изменений. Всё это конечно и руками делается не плохо, но слишком муторно и начинаешь путаться, когда структура разрастается. Сейчас голова не работает, болею, поэтому могу тормозить ----- Research For Food |
|
Создано: 10 марта 2013 22:59 · Личное сообщение · #11 |
|
Создано: 10 марта 2013 23:15 · Личное сообщение · #12 |
eXeL@B —› Основной форум —› Разбор объёмных структур. Делимся опытом и советами |