Декомпиляция проекта, в котором много exe | |
---|---|
Wiss Автор Сообщений: 8 Дата регистрации: 10.06.2019 |
Добрый день!
Столкнулся с необходимостью внесения правок в проект, написанный на VoxPro, который уже много лет используется в моей организации. Опыт работы с FoxPro никакой, но деваться некуда. Исходников не сохранилось, так что приходится его декомпилировать посредством ReFox. Проблема состоит в том, что проект состоит из кучи exe и я не могу понять, как же мне отлаживать сделанные правки... -Если я декомпилирую и запущу основной файл, то я не могу отлаживать прочие мелкие exe. -Если я декомпилирую нужный мне exe, то я смогу его исправить, но не смогу нормально отладить, так как он предназначен для работы в общей среде программы и использует некие глобальные переменные. Не подскажете как с этим зоопарком разбираться?! Пока что единственная мысль - декомпилировать основной exe, декомпилировать нуджный мне exe, изменять в коде ссылку с exe на pjx и пытаться отлаживать из основного файла, потом менять ссылки обратно и компилировать обратно в exe. Но я же банально запутаюсь. Не может быть, чтобы это так писалось изначально. Подскажите пожалуйста, куда копать? Что почитать? |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
бывают исчо зоопарки из exe и множества APP, и это есть правильно, т.е. создается константный EXE, который практически не меняется .. и АРР уже постоянно модифицируюся/дорабатываются, ... масштабируются .... (заказчику отдаются обновления в виде АРР ...) ну создать каталоги под каждый проект. разложить там файлики ... на них пути ... смотреть взаимосвязи ... |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Wiss Автор Сообщений: 8 Дата регистрации: 10.06.2019 |
Проблема в том, что у меня куча exe. Первый exe создаёт основную форму и менюшку + посредством другого exe загружает глобальные переменные. Каждый пункт меню - свой exe, каждый чих - свой exe (всего их 91). Тот exe, который мне нужен, это где-то 4-й в иерархии (main.exe вызывает ехе, который вызывает ехе, который вызывает мой ехе). Я правлю "свой" ехе, компилирую обратно и всё рушится. Причём я не могу понять что именно рухнуло, какой-то из этих 4-х ехе или ещё какой-то 5-й. Потому что отладка у меня работает, конечно, только на первом файле, который я декомпилировал и открыл как проект из FoxPro. Причём в этом "проекте" у меня 1 prg файл на 500 строк и всё. Формы нет (она создаётся прямо в коде), "при нажатии на пункт меню Х выполнить exe1, при событии Y выполнить exe2 и т.д." После моих манипуляций с кодом, само-собой возникают ошибки, причём возникают они неизвестно где и как (debuger не работает в скомпилированных exe). Как можно запустить этот проект, чтобы было понятно какая из программ крашнулась?! Пока что я не могу даже тот файл, который правлю отладить (он exe и запускается другими подпрограммами).
Просто как-то непривычно, что все части проекта скомпилированны и непонятно с какой стороны подходить к их отладке. Если я из декомпилирую, то они перестанут вызываться (или нет?), а если я их не декомпилирую, то не смогу запустить отладку. Исправлено 1 раз(а). Последнее : Wiss, 10.06.19 13:51 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Ничего себе. А вообще приложение сложное? может ну его в топку без исходников...91 экзешник депкомпилировать, там концов не соберёшь потом в этой проге... ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 2 раз(а). Последнее : Божья_коровка, 10.06.19 14:04 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Обычно для отладки такой архитектуры создают отдельную программу, которая в IDE моделирует архитектуру основного решения, и уже в этой среде производится отладка вызываемых отдельных блоков. Раз исходников нет, придётся такую штуку писать самостоятельно, на базе того что есть в основном запускающем exe.
В других случаях, отладка становится адищем. |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Wiss Автор Сообщений: 8 Дата регистрации: 10.06.2019 |
вроде бы ничего особенного. Просто программа для формирования десятка отчётов, в которые мне нужно добавить пару столбцов. Казалось бы - проще написать заново, но внутрь программы зашиты некие "алгоритмы контролей", которых никто не знает. Так что приходится ковыряться в коде. Поправил базу, поправил шаблон формы, поправил контроль, а потом всё крашнулось потому, что где-то ещё есть кроссформенный контороль. Приходится искать в коде в каком файле этот кросформенный контроль, а потом глазами смотреть, что там могло пойти не так. Вместо нормального дебагера, который остановился бы на месте ошибки. Исправлено 1 раз(а). Последнее : Wiss, 10.06.19 14:11 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Так и напишите заново свой проект. Пусть старая крутится, а когда нужны новые отчеты, запускают вашу. И реализовать можно на чем угодно, что лучше знаете. |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
прошелмимо Сообщений: 784 Дата регистрации: 21.02.2012 |
Каждый пункт меню - свой exe
ну, видимо, тот кто делал это, - был любитель EXE/ Не понимаю такого. Для старта большого/сложного приложения в фокспро, - достаточно маленького запускающего ядра. Далее такое ядро может взаимодействовать со множеством АПП (репортпривью.апп например - яркий пример из "стандарта"/поставки фокспро) ... пробуйте все рекомпилить , посмотрите взаимосвязи.... но делать 91 EXE - это нечто ... |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Wiss Автор Сообщений: 8 Дата регистрации: 10.06.2019 |
Спасибо всем за ответы. Успокоили, что, вероятно, я всё открываю правильно и из 91 exe единый проект по нажатию кнопки собрать нельзя. Придётся разбирать все отдельно и смотреть.
|
Re: Декомпиляция проекта, в котором много exe | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Скорее всего, ваши .exe однотипны. Каждый .exe имеет стартовый файл. Попробуйте в 2-3 вызовах .exe заменить на вызов этого файла и посмотреть, что из этого получится. |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Wiss Автор Сообщений: 8 Дата регистрации: 10.06.2019 |
Спасибо, это должно существенно упростить мне работу. Заменил exe на полученные из него prg и fxp фалы и программа продолжила работать. Изменения, вносимые в prg файл влияют на ход выполнения программы. |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Если и дальше будет получаться, то вы эти подпрограммы сможете собрать в один проект. Систематизируйте их и, возможно, понадобится небольшое меню. Ошибки компиляции смотрите в файле .err, если он появится. |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Qv_1 Сообщений: 201 Дата регистрации: 14.02.2007 |
Делов то. Напиши к девяносту одному exe еще десять своих, которые будут делать то, что тебе нужно, и добавь в проект.
Исправлено 1 раз(а). Последнее : Qv_1, 10.06.19 16:50 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Wiss Автор Сообщений: 8 Дата регистрации: 10.06.2019 |
А вот это отдельная проблема, которой я ещё не занимался. Этих ошибок в .err у меня вагон и маленькая тележка, потому что все exe запускаются следующим образом:
таким образом, при сборке проекта компилятор не может найти эти файлы и пишет соответствующее сообщение в .err. Да, уже попробовал писать полные пути к файлам в DO, чтобы они нормально определялись при компиляции - работает, но я повешусь потом отлавливать все ссылки на все файлы, так что, вероятно, придётся структуру оставлять "как есть". |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Строго говоря, SET DEFAULT лучше иметь один, "главный".
И при необходимости изменений "возвращаться": LOCAL lcOldDefault lcOldDefault = SET('DEFAUILT'" SET DEFAULT TO 'newdefault' ...... SET DEFAULT TO lcOldDefault. Да и нужно ли в данном случае - с полными путями непонятно. У вас 91-exe задуманы чтобы не вводить их в основной проект, похоже это автономные отчеты. По-моему, пути можно вставлять через макроподстановку, для 91 вызова возможно даже где-то отдельно.. Исправлено 1 раз(а). Последнее : lulgu, 10.06.19 18:00 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
AndyNigmatec Сообщений: 1551 Откуда: Волгоград Дата регистрации: 28.06.2015 |
А я вот что-то не понял - о каких глобальных переменных идет речь ежели стартуется куча отдельных exe = экземпляров рантайма?
|
Re: Декомпиляция проекта, в котором много exe | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Троллик прилетел, опять за свое принялся. Исправлено 1 раз(а). Последнее : lulgu, 10.06.19 18:32 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
AndyNigmatec, а как думаешь подобный подход разработки (пусть даже отчетности) он оправдан? В чем смысл плодить столько экзешников, почти под сотню?
------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
AndyNigmatec Сообщений: 1551 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Я лично не вижу такого смысла ... у себя я экзешники дополнительные делал именно с целью выполнения какой-либо задачи в отдельном потоке.
Дополнение: вроде как у ТС отчетность какая-то так реализована - затрудняюсь предположить зачем именно так. Исправлено 1 раз(а). Последнее : AndyNigmatec, 10.06.19 19:10 |
Re: Декомпиляция проекта, в котором много exe | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Ну да, я тоже так делала, но у меня от силы было несколько штук. А тут получается каждый шаг - новый экзешник. Что говоря я впервые вижу, чтобы подобным образом строили приложение и не могу понять о чём же думал разработчик или аналитик кто строил модель данного приложения. Т.е. какая то же цель закладывалась если он пошёл по этому пути.... ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... |
© 2000-2024 Fox Club  |