Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Чем можно аккуратно "разобрать" PE файл, и чем его "собрать" в исходное состояни
Посл.ответ Сообщение

Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 июля 2006 16:57
· Личное сообщение · #1

Дано: DLL файл из состава Microsoft Visual Studio 2005 Express.
PeID 0.94 определяет его как PE Win32 DLL (0 EntryPoint) в режиме Normal Scan.
В режиме External Scan выдаёт UPolyX v0.5 *.
Вообще-то библиотека создана при помощи C++ (на 100% не уверен).
Microsoft Visual Studio 2005 Express имеется.
Вопрос новичка, не знакомого совершенно с C++. Чем его(её) можно аккуратно "разобрать", и чем "собрать" в исходное состояние?
"Хакать" библиотеку не нужно. Хочу всего-лишь перевести текстовые ресурсы на русский язык.
Заранее спасибо за помощь.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 03 июля 2006 18:34
· Личное сообщение · #2

если текстовые ресурсы и нчием не паковано - то какие проблемы?
редактор ресурсов+прога типа OgreGUI и вперед

-----
Тут не могла быть ваша реклама




Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 июля 2006 06:55
· Личное сообщение · #3

OgreGUI не берёт. После неё неправильно отображается, либо совсем не отображается русский шрифт.
Повторяю: строковые ресурсы "зашиты" в код DLL. HEX-редакторы не годятся - та же проблема с отображением русского, редакторы ресурсов их не видят. Мне надо знать, каким штатным дизассемблером (декомпилятором) можно "разобрать" DLL, и каким штатным ассемблером (компилятором) можно её собрать обратно. Штатный - это значит из состава пакета Microsoft Visual С++. Желательно в подробностях.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 04 июля 2006 08:23
· Личное сообщение · #4

А, так ты хочешь разобрать в C и скомпилить студией! Ну так флаг в руки, напиши такую прогу, многим пригодится.... Или прочти это http://www.exelab.ru/kid.php

-----
Yann Tiersen best and do not fuck




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 04 июля 2006 10:35
· Личное сообщение · #5

teacher10 пишет:
Чем его(её) можно аккуратно "разобрать", и чем "собрать" в исходное состояние?
"Хакать" библиотеку не нужно. Хочу всего-лишь перевести текстовые ресурсы на русский язык.

Разобрать - это слишком круто. Да и бессмысленно. Для ресурсов есть редакторы - если одни не берут, то другие смогут. Например, в Студии открой свою dll как ресурсы - и редактируй. Редактирование встроенных строк - это чистый хак. Нужно перенести строку в другое место, т.к. русский текст обычно длиннее и поменять ее адрес в вызове. OgreGUI это делает автоматом, но любая программа имеет ограниченное применение.
teacher10 пишет:
После неё неправильно отображается, либо совсем не отображается русский шрифт.

Поточнее нельзя выразится ?! Возможно для отображения символов используется шрифт без кириллицы - в этом случае надо шрифт менять. Тебе действительно не хак нужен, а реверсинг - т.е. разобраться, как программа работает с сообщениями - после этого русификация станет легкой.



Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 июля 2006 16:51 · Поправил: teacher10
· Личное сообщение · #6

Для Pe_Kill:
я вроде внимательно читал материал для новичков. К сожалению, не нашёл там ответ на свой вопрос. Но все равно спасибо.

Для tundra37:
В студии эта DLL не открывается как ресурс, т.е. я пробовал открыть её "в лоб". Может, Вы имеете в виду не известный мне способ, так подскажите его, пожалуйста. Я ведь ещё не успел начать знакомство с С++.

В OgreGUI я пробовал применять все имеющиеся варианты отображения шрифта: ASCIIZ, UNICODE, RESUNI и PASCAL. Положительного результата нет.
Так как мне разобраться с тем, как программа работает?
Что нужно для реверсинга? Какие инструменты? Компиляторы, декомпиляторы, ассемблеры, дизассемблеры?
Я эту DLL при помощи dumpbin.exe сохранил на диске в виде бинарного дампа. С ним можно работать, т.е. перевести строковые ресурсы. А дальше то что мне делать? Чем мне бинарный дамп собрать обратно в DLL и проверить на работоспособность?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 04 июля 2006 16:58
· Личное сообщение · #7

teacher10 пишет:
я вроде внимательно читал материал для новичков

Значит не внимательно

teacher10 пишет:
Что нужно для реверсинга?

Вторым шагом на пути к крэкерству должно стать изучение низкоуровневого языка программрования - ассемблера, нужно изучить структуру процессора и основные команды ассемблера, это очень поможет вам в дальнейшем. Не пугайтесь, на самом деле всё это достаточно просто.
http://www.exelab.ru/pro/asm.php


teacher10 пишет:
Какие инструменты?

Нужно достать основные крэкерские инструменты, такие как ... http://www.exelab.ru/download.php[/c]

-----
Yann Tiersen best and do not fuck




Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 июля 2006 17:26
· Личное сообщение · #8

Для Pe_Kill:

Да скачал я уже почти все инструменты. Те, что велики, заказал на диске. Только придёт ли тот диск и когда?
Если мне сейчас придётся ещё и ассемблер начинать, то это...
Я хотел вначале всего-лишь разобраться с VB, входящим в студию 2005. Перевести его, то-сё. Я ведь пропустил студии 2002 и 2003. Сидел на VB98. Начал переводить, разбирать примеры, Starter Kit-ы.
Вот с переводом то и попал прямо туда, куда и не думал.
Плюс мне на старости лет становится крэкером как-то...
Так чем собрать бинарный дамп?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 05 июля 2006 09:22
· Личное сообщение · #9

teacher10
Про Студию: в 4-й ресурсы было видно всегда. Я ее долго держал, пока однажды она не обломилась. Стал открывать в 6-й и внимательно смотреть. Когда задаешь имя файла, там есть внизу строчка с опциями : auto ..... resourses. Чего в 2005-й не знаю - я даже дистрибутив 2003-й не ставил.teacher10 пишет:
Плюс мне на старости лет становится крэкером как-то......
В OgreGUI я пробовал применять все имеющиеся варианты отображения шрифта: ASCIIZ, UNICODE, RESUNI и PASCAL .......... Я эту DLL при помощи dumpbin.exe сохранил на диске в виде бинарного дампа. С ним можно работать, т.е. перевести строковые ресурсы.

1) Если нет больших знаний в Виндах и ассемблере, то будет тяжеловато реверсингом заниматься.
2) Раз dumpbin строки показывает - нужно искать программу умеющую работать с ними.
3) Про OgreGUI - ASCIIZ, UNICODE - это кодировки, а не шрифты. Шрифты - Arial, Courier и т.д.
У шрифтов есть доп.кодировки - кодовые страницы для разных языков. Ogre, наверное, русский показывает в своем шрифте, а DLL может показывать в своем, в котором нет кодовой страницы кириллицы.
========================================================
Поэтому нужна информация, а так получается беспредметный разговор. DLL может вообще быть на .NET и тогда естественно ее мало какие инструменты возьмут. Короче надо или ссылку или выложить куда-то.
Ну и хотя бы фрагмент dumpbin со строчками - может прояснится что.



Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июля 2006 15:58
· Личное сообщение · #10

Для tundra37:
Ну ошибся я, вместо "кодировки" написал "шрифты". У нас с МСК разница в 9 часов. Поздно ночью писал, устал.

Если у Вас есть Microsoft Visual Studio 2005 Express Edition, то вот два примера:

1) Файл vsmsoui.dll, находящийся в C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\1033. Как его определяет PEiD, я указал в первом сообщении. Сниффер Pe Tools v.1.5 определяет эту DLL как "Microsoft Visual C++ vx.x DLL".
В vsmsoui.dll содержится фраза "&Rearrange Commands...". Она отображается на кнопке в панели "Customize" меню Tools – Customize. В WinHex эту фразу можно найти по адресу: Offset 00487744 - decimal (00077140 - hexadecimal).
ResourceHacker и LikeRusXP 4.1 Final Reality позволяют только просмотреть этот ресурс (тип ресурса 221, идентификатор – 12)
В этой DLL то, что видно обычными редакторами ресурсов, я перевёл. А вот то, что они не видят...? Либо видят, но редактировать не могут? А там есть ещё строковые ресурсы!
---------------------------------------------------------------------- ------------------------
Б) Второй пример будет сложнее – нативная сборка.
C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\System.Windows.Forms\c4 40ef992d24e947937ec66a72504f5d\System.Windows.Forms.ni.dll.
В этой библиотеке содержатся подсказки, отображающиеся в нижней части панели Properties для свойств, имеющихся у объекта. Возьмём обычную форму. У неё есть свойство "Minimum Size". Подсказка внизу панели – "The minimum size the form can be resized to."
Проблема та же, файл определяется как в пункте А. Но операционная система WinXP не даёт изменять/заменять файлы в папке " …WINDOWS\assembly\" .
---------------------------------------------------------------------
Если у Вас нет Microsoft Visual Studio 2005 Express Edition, то тогда получается действительно беспредметный разговор. А куда я Вам выложу? Первая библиотека на 1,5, а вторая более 13 мегабайт.
С моим dial-up это несерьёзно. Может, у кого-то из Ваших знакомых/друзей есть?
---------------------------------------------------------------------- --------------------------------------------------------
А с файлами типа "Microsoft Visual C# / Basic .NET" я вполне успешно справляюсь при помощи ассемблера Ilasm и дизассемблера Ildasm из состава всё той же студии.
В "Виндах" знания есть, а вот в ассемблерах и правда, нет.
Поэтому и пришёл сюда, я ведь не планировал ассемблер изучать столь срочно.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 06 июля 2006 09:39
· Личное сообщение · #11

teacher10
1) Идею о "собрать из дизассемблера" лучше отбросить и не смешить людей - сделать это можно в принципе, но будет очень дорого стоить. Есть более простые решения и подешевле.
2) Для русификации ( я уже видел ветку на wasm.ru) потребуется владение отладчиком на троечку и умение читать дизассемблерный текст. Второму я учился на ассемблерных листингах компилятора.
Т.е. придется аналогичные русифицируемым проги транслировать и изучать ассемблерный текст и сосвечивать его с дизассемблером отладчика и обучаться править.
3) Самое быстрое - это заказать автоматический патчер. Но сколько это будет стоить - не знаю. Я 2005 студию не знаю и ковырять такого монстра стал бы тоже только задорого.



Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 июля 2006 16:34
· Личное сообщение · #12

Для tundra37:
------------------
Спасибо. А какой отладчик Вы имеете в виду?
И чем транслировать?
Я ещё только начал с горя переводить MSDN в той части, которая касается консольных инструментов С++.
Ну и "ковыряю" я студию задаром, чисто для себя и общего развития.
Так Вы всё-таки советуете начать с изучения ассемблера? А то у меня есть подозрение, что я не с того места начал знакомство с реверсингом.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 06 июля 2006 18:17
· Личное сообщение · #13

teacher10 пишет:
А какой отладчик Вы имеете в виду?
И чем транслировать?

1) Отладчик - олли. Небольшой и удобный.
2) Транслировать - рано еще. Можно будет транслировать на чем угодно - на чем удобнее.
3) Важно понять, что надо заменить в DLL и автоматизировать эти замены. Конечно можно неспеша патчить через олли строчка за строчкой, но это же долго. Надоест и захочется автомат
4) Для общего развития задачка больно сложная. Гораздо проще подождать или скачать на русском
книжку. Кстати есть сервис для модемщиков : качают по вашей ссылке и высылают по почте : СиДи - 150 р. Ну или книгу заказать - это уже дороже будет.
5) Ассемблер по моей методе автоматом выучится. Точнее выучите то, что нужно для вашей задачи.



Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 июля 2006 15:47
· Личное сообщение · #14

Для tundra37:
Спасибо.
Олли есть. Но я думал, есть дизассемблеры под С++. Чтобы дизассемблировать, а потом уже рассмотреть код. Короче, я уехал надолго. Тему закрываю.
Всем спасибо!


 eXeL@B —› Вопросы новичков —› Чем можно аккуратно "разобрать" PE файл, и чем его "собрать" в исходное состояни
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати