Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2011, 14:16   #1
iliili
Пользователь
 
Аватар для iliili
 
Регистрация: 06.03.2010
Сообщений: 56
По умолчанию Dcu файлы . bBorland Pascal 1882

нужно программно узнать список процедур в файле *.DCU
(при нажатии кнопки, имя файла вводится )
Сделал ошибку.Исправил.Подзаработал
iliili вне форума Ответить с цитированием
Старый 14.07.2011, 14:25   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

DCU это бинарные файлы которые в конечном итоге склеиваюися и становятся PE-файлом.

Как минимум, чтобы что-то из него вытащить, надо знать где это находится.
А чтобы файл вскрыть нужно либо HEX-редактор, либо дизассембер.


Чтобы написать ПО просмотра таких файлов, нужно написать для каждой версии компилятора delphi или BDS, свой модуль со смещениями в этих файлах. И по этим смещения определять нужные тебе данные.

Без них же, ты либо ничего не получишь, либо получишь, но совсем не то, что хотелось бы.

Последний раз редактировалось Человек_Борща; 14.07.2011 в 14:28.
Человек_Борща вне форума Ответить с цитированием
Старый 14.07.2011, 14:27   #3
iliili
Пользователь
 
Аватар для iliili
 
Регистрация: 06.03.2010
Сообщений: 56
По умолчанию

мне нужно именно под паскаль , может какая та прога есть что бы узнать список процедур?
Сделал ошибку.Исправил.Подзаработал
iliili вне форума Ответить с цитированием
Старый 14.07.2011, 14:32   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Да, такая программа есть. И называется она, дизассемблер.
______
В любом случае, вопросы взлома на этом форуме запрещены.
Человек_Борща вне форума Ответить с цитированием
Старый 14.07.2011, 14:40   #5
iliili
Пользователь
 
Аватар для iliili
 
Регистрация: 06.03.2010
Сообщений: 56
По умолчанию

но это не взлом , ведь паскаль сам использует это , а мне нужно для него же .
Сделал ошибку.Исправил.Подзаработал
iliili вне форума Ответить с цитированием
Старый 14.07.2011, 14:44   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Если это не обсуждение взлома, то возми pas-файлы из которых собран DCU, и в них смотри функции.
Человек_Борща вне форума Ответить с цитированием
Старый 14.07.2011, 14:52   #7
iliili
Пользователь
 
Аватар для iliili
 
Регистрация: 06.03.2010
Сообщений: 56
По умолчанию

а если пользеватель программы создал dcu файл и программе для работы нужно знать какие там процедуры? то тогда как?
Сделал ошибку.Исправил.Подзаработал
iliili вне форума Ответить с цитированием
Старый 14.07.2011, 14:57   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Как ни крутись, а ты не создашь DCU из ничего. DCU - это скоммпилированный pas(Delphi Compiled Unit). Соответственно смотри сам pas-файл из которого собран этот DCU.

Если DCU файл есть, а pas-файла из котрого собран этот DCU, нету, то можно сделать 2 вещи:
1. Поискать pas в интернете.
2. Дизассемблировать его.

Второее считается взломом.

Но можно и вывернуться. Взять delphi , подключить в uses свой dcu, например:
Код:
uses SmthUnit;
далее в теле какого-либо метода:
Код:
begin
...
SmthUnit.     //Пишем название модуля и ставим точку, после котрой помошник кода, тебе покажет какие методы вообще есть в этом модуле. 
...
end;

Последний раз редактировалось Человек_Борща; 14.07.2011 в 15:03.
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2011, 16:05   #9
iliili
Пользователь
 
Аватар для iliili
 
Регистрация: 06.03.2010
Сообщений: 56
По умолчанию

А если заранее не известно имя файла?
Как паскаль проверяет что в подключенном модуле есть процедура которую вызвали?
Сделал ошибку.Исправил.Подзаработал
iliili вне форума Ответить с цитированием
Старый 15.07.2011, 16:39   #10
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

что-то я вообще не понимаю зачем вам это!?

Человек_Борща, вам точно сказал
Цитата:
Но можно и вывернуться. Взять delphi , подключить в uses свой dcu, например:
P.S. если делфи его (DCU) собрала, то она может и разобрать его!
ZuBy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы ( Pascal ) Дабл Помощь студентам 6 24.12.2009 00:30
Не видны файлы *.dcu в директории указанной в Project->Options->Directories/Conditionals->Search Path Иванчо Общие вопросы Delphi 2 20.09.2007 10:57