March 29, 2024, 02:35
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: Gears of War 3. Epic fail of Epic Games  (Read 6462 times)
destrator
Newbie
*
Posts: 20


View Profile
« on: August 16, 2011, 22:55 »

Собственно, на днях приобрел Gears of War 3, открыл DVD и обнаружил... pdb-файлы (!). Не для Win, конечно же, а для XBOX 360. Уже изучаю и Вам советую присоединиться. Теперь внутренние форматы UE3 можно будет изучить более подробно Smiley
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #1 on: August 16, 2011, 22:58 »

Ну, здесь будет видно не "форматы", а "структуры" (если не понятно - это очень большая разница). Многие из них уже открыты в виде UnrealScript-файлов.
А с точки зрения "узнать какой-нибудь алгоритм" XBox360 executable слишком тяжёл для изучения. Кстати, не пробовали - можно ли загрузить этот pdb к xex-файлу в IDA?
Logged
destrator
Newbie
*
Posts: 20


View Profile
« Reply #2 on: August 16, 2011, 23:02 »

> Ну, здесь будет видно не "форматы", а "структуры"
Ну конечно же Smiley И не только структуры, а также все имена классов, функций и даже локальных переменных (!) Вы же не будете спорить, что реверсить код с осмысленными именами гораздо удобнее, чем массив безымянных функций и переменных Smiley
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #3 on: August 16, 2011, 23:08 »

Только что проверил - IDA не может загрузить pdb.
Кстати, не знаете дампер pdb получше чем Dia2Dump?
Logged
destrator
Newbie
*
Posts: 20


View Profile
« Reply #4 on: August 16, 2011, 23:13 »

Quote
Вы грузили непосредственно xex или exe? PDB вероятнее всего собиралась вместе с exe до конвертирования в xex.

Quote
Нет, не встречал. Есть еще pdbdump, но он менее функционален, часто выдает ошибки и достает далеко не все типы. А чем Dia2Dump не нравится? Он ведь дампит практически все.

(Gildor: прошу прощения, вместо reply видимо нажал modify - восстановил сообщение как мог ... что-то работа меня выматывает в последнее время Sad)
« Last Edit: August 16, 2011, 23:25 by gildor » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #5 on: August 16, 2011, 23:24 »

Quote
Вы грузили непосредственно xex или exe? PDB вероятнее всего собиралась вместе с exe до конвертирования в xex.
В IDA плагин для pdb работает только с Windows. Конечно, MS-тулзы его возьмут - ведь для XBox360 отладка идёт в том же Visual Studio.
Quote
Нет, не встречал. Есть еще pdbdump, но он менее функционален, часто выдает ошибки и достает далеко не все типы. А чем Dia2Dump не нравится? Он ведь дампит практически все.
Не всё. Многие enum-ы приходится доставать оттуда "руками" - то есть надо знать название типа и запросить его напрямую. Плюс, он дублирует данные, да и формат вывода мог бы быть поближе к C/C++ (IDA HexRays ведь на основе того же pdb даже таблицы виртуальных мелодов восстанавливает!)
Есть желание переделать Dia2Dump на свой вкус - пользы больше будет.
Logged
destrator
Newbie
*
Posts: 20


View Profile
« Reply #6 on: August 17, 2011, 00:39 »

Мдя, что-то не получается Sad Попробовал преобразовать обратно в PE утилитой XexTool 6.1. Модуль выходит с ошибками. dumpbin из комплекта XDK дизассемблировать его не хочет, из полезной информации выписал только  имена методов и функций (взятые из PDB Smiley.

Придется довольствоваться только структурами данных Sad
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #7 on: August 17, 2011, 01:09 »

Если не секрет - зачем вам это?
Logged
destrator
Newbie
*
Posts: 20


View Profile
« Reply #8 on: August 17, 2011, 07:18 »

> Если не секрет - зачем вам это?

Просто люблю поковырять чужие технологии Smiley
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #9 on: August 17, 2011, 10:57 »

Ну, структуры данных мало чем помогут. Разве что вручную перенести их в PC-версию exe+idb.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #10 on: August 19, 2011, 00:49 »

Чего-то озадачился я тем, что Dia2Dump производит плохой дамп и есть в ней баги. Посидел пару вечеров, переписал. Теперь текстовый дамп pdb занимает не 450 мегабайт, а только 90 (убрал повторы, немного оптимизировал вывод ...). Ещё сделал вывод enum и typedef (кстати, в typedef там тоже ошибка была). В общем, привёл утилиту к более-менее юзабельному виду. Осталось сделать вывод в C-стиле. Даже подумываю как-нибудь выложить утилиту - я порыскал в интернете насчёт аналогов (их мало и они нефункциональные), похоже такая утилита будет пользоваться спросом.
Logged
destrator
Newbie
*
Posts: 20


View Profile
« Reply #11 on: September 01, 2011, 20:23 »

похоже такая утилита будет пользоваться спросом.

Мне бы пригодилась, но самому писать лень Smiley Если Вы еще и классы (с расстановкой членов и методов) сделаете, то цены ей не будет.
Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS