Форум » Clipper » Программа выдаёт сообщение too many servers !!!... » Ответить

Программа выдаёт сообщение too many servers !!!...

Levon: Имеется программа знаю что она написана на Clipper и FoxBase II 1988 года выпуска. При необходимости могу прогу выслать. После того как я переустановил компьютер на котором эта прога работала стало появляться такое сообщение До переустановки она отлично работала. А пограммист который её настраивал скончался теперь не знаю как её запустить. Если кто нибудь знает что делать пожалуйста подскажите.

Ответов - 49, стр: 1 2 3 All

Григорьев Владимир: Скорей всего в программе защита точная идентификация сервера либо по его имени, либо его адресу. И если какое-то значение не совпадает, то и выдается такое значение. Попробуйте посмотреть загрузочный модуль, если он написан на Clipper, и найдите то место, где происходит проверка, и посмотрите, что проверяется. Как я уже сказал, скорей всего проверяется некоторая фиксированная константа, идентифицирующая сервер.

Levon: Попробуйте посмотреть загрузочный модуль Извините а что такое загрузочный модуль?

Григорьев Владимир: Это ее exe-модуль. Так как Clipper - это интерпретатор, то по большей части все исходные команды языка Clipper присутствуют в ее exe-модуле. Попробуйте сначала найти строковый литерал с этим сообщением об ошибке. Вполне возможно, что он как раз присутствует в том месте программы, где делается проверка на магический идентификатор сервера. Может быть увидите, с чем именно происходит сравнение, прежде чем выдается сообщение об ошибке.


leo: Можно попробовать ее декомпилировать и тогда все станет ясно.

Levon: Как я понял загрузочный модуль, этот то файл которым я произвожу запуск программы? Я его открыл в блокноте вот что там было: @ECHO OFF SET COMSPEC= SET ALLUSERSPROFILE= SET APPDATA= SET CLIENTNAME= SET COMMONPROGRAMFILES= SET COMPUTERNAME= SET HOMEDRIVE= SET HOMEPATH= SET LOGONSERVER= SET NUMBER_OF_PROCESSORS= SET OS= SET PATHEXT= SET PROCESSOR_ARCHITECTURE= SET PROCESSOR_IDENTIFIER= SET PROCESSOR_LEVEL= SET PROCESSOR_REVISION= SET PROGRAMFILES= SET PROMPT= SET SESSIONNAME= SET TEMP= SET TMP= SET USERDOMAIN= SET USERNAME= SET USERPROFILE= SET BLASTER= SET WINDIR= SET WINBOOTDIR= SET PROMPT= SET VCSID= rem LH DL5 SET CLIPPER=F075;V010 PRO nopass Только он не .EXE а .BAT. но я еще нашел с кокого файла идет это предложение которое сообщает об ошибке. Я просматриваю через Notepad++ и я там мало что понял лишь только это предложение TOO MANY SERVERS !!! Давайте я лучше выложу этот файл а Вы быть может прочтёте его чем нибудь другим, и больше поймете чем я. Вот он:http://zalil.ru/31012499

leo: Нужен исполняемый файл с расширением Exe

SADSTAR4: дословные перевод - "Слишком много серверов" По логике работы программы - какие там серверы присутствуют?

vvv: Clipper - это интерпретатор ???

СевДон: если у Вас есть доступ к комрьютеру разработчика то: - попытайтесь найти там файлы с расширением .prg (они могут быть локализованы в нескольких папках) - если нашли то в этих разделах/подразделах попытайтесь контекстным поиском найти файлы, содержащие искомую строку "TOO MANY SERVERS" - если найдете -- выкладывайте сюда этот файл если этого невозмлжно сделать, остаётся надеяться что разработчик мог не "зашить" в исполняемый модуль ВЕСЬ анализ условия по которому выскакивает данное сообщение, а разместить его части во внешних файлах. поэтому проверьте файлы с расширениями .dbf/.dbt, .txt, .ini, .dat и т.п. (а может и вообще без расширения), которые находятся в папке с исполняемым модулем (файл с раширением .exe) или во вложенных подпапках на наличие строк со словом SERVER (правда может надо искать слово environment (сиречь окружение) или им подобные, тут уже хто его знает). ЗЫ А мануала к этой проге никакого не осталось?

Levon: к сожалению у меня нет доступа к комрьютеру этого программиста( вот я и говорю, нашел файл только расширение не такое как вы говорите а .OVL вот он этот файл:http://zalil.ru/31012499 вот в нем как раз упоменается о "TOO MANY SERVERS" !!! вот нашел файлы в которых упоменается слово environment вот архив:http://zalil.ru/31015737 мануала никакого нету.

Gas: на сколько ты знаешь "Clipper и FoxBase II 1988 года выпуска"?

СевДон: Расследование показало: 1. прога писана на Clipper S87 (а я его уже забыл) 2. гдето рядом пользуеся прога(-и) на FoxPro 3. рядом с компом стоит/стоял принтер HP 1100 если серъёзно: 1. те dbt файлы -- это мимо цели, увы 2. при просмотре файла TEST.exe видна строка "Файл конфигурации ZED.DBF не найден !!!" поэтому посмотрите данную базу, скорее всего там прописываются пути к БД, и может есть что-то упоминающее то "понятие СЕРВЕРа", которое подразумевал разработчик осмелюсь предположить: 1. прога может работать как с локальными базами так и по сети 2. при переустановке винды "слетел" признак какой вариант использовать "локальный/сетевой" 3. попытайтесь вспомнить: не присутствовал ли в старой системе один/несколько сетевых дисков. если да то какие буквы им присваивались в винде и есть ли в базе ZED.DBF символьные поля, содержащие такой(-ие) символы (например, X:\ABC, где Х -- имя сетевого диска, а ABC -- имя папки базами для проги) ЗЫ просмотрите не только ZED.DBF но и все остальные, т.к. файлов с настройками м.быть несколько

Haz: там может быть все что угодно ... начиная от банальной строки в окружении SET CLIPPER ( устанавливается батником) и параметра FILES= из config.sys ... до любой фантазии автора. Расследование методом тыка , обречено на провал ... но кое-что ценное уже есть - Clipper S87 Советую автору поста перерыть инет и найти декомпиляторы для клиппера. Одним из лучших был Valkirie 5 ( поправте меня если я наврал !!! ) Наличие OVL файла говорит от том что скорее всего программа собрана стандартным RTLINK , а валкирия его щелкала как семечки. Только получив исходники можно о чем то конкретно говорить, а так - пальцем небо

Haz: http://www.4shared.com/get/2TRW-uLo/Valkyrie_CA-Clipper_Decompiler.html

vvv: Не исключено, что запуск программы был привязан к имени компьютера, а после переустановки компьютеру присвоили другое имя. Интересно, а почему выдает "Слишком много серверов", а не "Сервер не найден" к примеру?

nick_mi: Судя по bat файлу должна быть программа PRO.EXE и ей передается параметр nopass. Найдите ее

Levon: СевДон: нет эта программа не работала по сети с другими базами. сетевых дисков тоже не было на той системе. нет я уверен что сеть здесь не причем потомучто у них в офисе два компьютера на втором близко ничего похожего и даже не похожего на эти базы нет! vvv:Вспоминаю какое имя компьютера было на той системе (007 чтоли было) но не стандартное (winxpsp3) это точно. Haz: Мне скачать по ссылке который вы дали или найти Valkirie 5 ? nick_mi: вот файл PRO.EXEhttp://zalil.ru/31022251

СевДон: у меня валькирия (Valkyrie Recovery Engine (Clipper S'87) Version 2.07) при декомпиляции PRO.EXE дает ошибку OUT OF MEMORY правда мож надо положить рядом с PRO.EXE ВСЕ его оверлеи (файлы .OVL) ?.. (я давненько сим не занимался) в догонку: я чё про сеть спрашивал -- в PRO.EXE есть строка "Имя в сети" да и термин SERVERS кагбы намекает по поводу оверлеев: в екзешнике упомянуты аж 20 шт! шо то я сумлеваюсь в успешной декомпиляции...

Dima: В Pro_1.ovl вижу зашитую строку c:\winnt\system\password.ini и после нее TOO MANY SERVERS !!! СевДон пишет: по поводу оверлеев: в екзешнике упомянуты аж 20 шт! Так и есть их много. Нужны все в общем для попытки декомпиляции.

Levon: СевДон: А если я найду компьютер на котором есть эта программа но в рабочем состоянии нам это что нибудь даст. Я еще помню что на той системе была установлена такая программа Borland Delphi 3. Еще я вот я вспомнил что на той системе полное имя компьютера было WIN007 и сетевая рабочая группа была OOFFICE. Может быть мне выложить полностью архив с этой программой?

СевДон: если Вы выложите весь набор баз, то Вас могут обвинить в разглашении конфиденциальной информации! нам это не надо киньне пока токмо все оверлеи и базу ZED.DBF (если там нет коммерческих секретов) кста в батнике экзешник запускается с параметром nopass а если без него? а если запускать PRO.EXE 123 (поэкспериментируйте) и шо говорят юзеры по поводу паролей? и какая винда была раньше а какая счас? а если чудом сохранился c:\winnt\system\password.ini старой винды, то шо там? или Levon пишет: А если я найду компьютер на котором есть эта программа но в рабочем состоянии нам это что нибудь даст. шо там на этой машине?

Levon: СевДон пишет: Вас могут обвинить в разглашении конфиденциальной информации! Кто может обвинить форум? А если со стороны правооблодателя то нечего страшного. насчет винды, винда была до этого такая же как сейчас (Windows XP SP3) в предпоследний раз я тоже я его переустанавливал. Только тогда программист был жив и сразу запустил программу. Вот пока оверлеи и базаhttp://zalil.ru/31023568 СевДон пишет: а если чудом сохранился c:\winnt\system\password.ini старой винды, то шо там? В поиске...

PSP: В PRO_1.OVL есть строка "art.dat". Есть такой файл?

Levon: да есть он хранится не в корне папки с программой а в папке под названием DISTR

PSP: Levon пишет: да есть он хранится не в корне папки с программой а в папке под названием DISTR И что в нем?

Levon: PSP пишет: И что в нем? он пуст.

СевДон: увы валькирия и с оверлеями даёт ошибку эксперименты показали: 1. без базы ZED.DBF до выдачи сообщения TOO MANY SERVERS прога не доходит, а выдает: "Proc NET_UZI line 393, open error zed.DBF (2) Retry? (Y/N)" (интересно NET это русское НЕТ или англицкое СЕТЬ...) 2. в базе ZED.DBF запись 24 поле KAT_3 содержит "Программные и системные файлы", а соседнее поле POL_C содержит "D:\BUCH" Проверьте на наличие данной папки у Вас и огласите ее содержимое.

Levon: D:\BUCH Это путь корневой директории там содержатся все те файлы которые я выкладываю сюда. Вот снял скрин посмотрите:http://zalil.ru/31024124

СевДон: содержимое AUTOEXEC.NTB, CONFIG.NTB, README, .dat-файлов, .bat-файлов? запуск проги идет через иконку? если да, надо бы посмотреть свойства... а вообще то, на мой взгяд, надо копать не стока в проге а системном окружении: раз прога не менялась а токмо ОС, скорее всего и надо в винде шото прописать, а вот что... если, как Вы говорите, можно добраться до компа с такой же задачей, надо сравнить установки и настройки этой и той виндовс. ведь зачем то в том батнике, что Вы привели идет тотальный сброс SET установок

Levon: СевДон пишет: если, как Вы говорите, можно добраться до компа с такой же задачей, надо сравнить установки и настройки этой и той виндовс. я этим сейчас занимаюсь.

nick_mi: есть такой код if !file("c:\winnt\system\password.ini") f_mess("TOO MANY SERVERS !!!",1) quit endif

Levon: люди я запустил её!!!!!!!!! знаете как?? просто вручную создал на диске C: \ папку с именем WINNT в ней же создал папку с названием SYSTEM в этой папке создал файл PASSWORD с расширением .ini и всё ВОТ ЧТО ОНА ХОТЕЛА!! Пока вроде работает корректно не знаю что будет дальше.

Haz: а ничего дальше не будет :-) требуется только наличие файла password.ini и более нигде он не проверяется , уже пол конфы декомпильнули эту програму . Что я по прежнему и рекомендую сделать автору поста - исходники нужны, если намерены и дальше работать ( ну не себе - так приемнику подарок сделаете ). там по коду еще есть какие-то фокусы с art.dat есть алгоритм проверки паролей и т.д. валкирия для S87 потрошит прогу за 3 секунды на состовляющие Levon, просто поупражняйтесь http://ftp.lakesoft.net/ftp/clipper/valkyrie/ 1. с помощью VPP создать RIP 2. c помощью v из rip получить кучу исходников 3. вдумчиво вчитываться :-)

Levon: Haz Да спасибо Вам я постараюсь позаниматься над этим делом.

Levon: я хочу отдельно поблагадарить СевДона за то что Вы потратили свое драгоценное время на этот пустяк СПАСИБО ВАМ БОЛЬШОЕ!

Григорьев Владимир: vvv пишет: quote: Clipper - это интерпретатор ??? Да, Clipper - это интерпретатор. Он интерпретирует тот код, который вы пишите на языке Clipper, предварительно переводя его в некоторый промежуточный код. По этому принципу работают C# и Java.

vvv: Не согласен. Вот одно из определений: Основное отличие компиляторов и интерпретаторов КОМПИЛЯТОР создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS). ИНТЕРПРЕТАТОР создает программу, время существования которой заканчивается по завершению выполнения или с выходом из нее. Для работы программы необходима программа-интерпретатор, для выполнения в котором она создана. (подробней click here). Отсюда получается, что Clipper - чистый компилятор (созданная им exe-шка абсолютно независима), а также, например, BCC++. Примеры интерпретаторов: FoxPro(ДОСовский), Basic (ДОСовский) - без их установки на компьютер программу просто не запустить, да и виндовые версии можно отнести к интерпретаторам, т.к. хотя на выходе и имеем exe-шку, но она не полностью независима - для работы нужны соответствующие dll-ки. С большой натяжкой можно считать Harbour интерпретатором, но очень условно.

Haz: не ссорьтесь истина посередине http://ru.wikipedia.org/wiki/Интерпретатор "Интерпретатор компилирующего типа — это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код" PS. хотя все же это интерпретатор компилирующего типа, а не компилятор интерпретирующего типа

Григорьев Владимир: vvv пишет: Не согласен. Вот одно из определений: цитата: Основное отличие компиляторов и интерпретаторов КОМПИЛЯТОР создает исполняемую программу, не нуждающуюся в других программных средствах (кроме OS). ИНТЕРПРЕТАТОР создает программу, время существования которой заканчивается по завершению выполнения или с выходом из нее. Для работы программы необходима программа-интерпретатор, для выполнения в котором она создана. Согласны вы, или нет, - это никого не волнует. Компилятор Clipper создает код, который как раз нуждается в другой программе, чтобы этот код выполнялся! Просто затем вы этот промежуточный, так называемый P-код присоединяете непосредственно с интерпретатором и получаете общий модуль, в котором интерпретатор и интепретируемый им код объединены. То есть генерируемый компилятором Clipper код не является машинным кодом и требует интерпретатора, который этот код будет интерпретировать! То есть код, который генерирует Clipper, является некоторыми входными данными для Clipper-интерпретатора. Именно поэтому и пишутся различные декомпиляторы для Clipper, потому что они находят этот P-код в объединенном модуле, то есть в модуле, содержащем интерпретатор и непосредственно интерпретируемый им код.

vvv: То есть генерируемый компилятором Clipper код не является машинным кодом и требует интерпретатора, который этот код будет интерпретировать! Но ведь чтобы запустить exe-шку, не надо иметь на компьютере никакого интерпретатора! Все, что вы перечислили, делается один раз при создании исполняемого модуля и больше для работы программы не нужно. PS. А какие языки тогда отнести к компиляторам?

Andrey: vvv пишет: А какие языки тогда отнести к компиляторам? Asm C Pascal

vvv: Ну не сам же я это придумал. http://www.nef.by/it/332-kompilyator-clipper.html http://online.spb4plus.ru/index.html?cliper_g00.htm http://lib.rin.ru/doc/i/107153p3.html http://infogoz.vimi.ru/otct/Infogoz/KN6/111.htm http://www.maksakov-sa.ru/EGEEInforman/TeoriaEGEEE/BD_EGE/VozmogAccess/index.html http://www.referat-web.ru/content/referat/computers/computers326.php http://koapp.narod.ru/tehlit/base/bd/09db.htm http://www.reflist.ru/doc/17390.shtml http://wiki-linki.ru/Citates/10924/11 Нигде не нашел, что clipper-интерпретатор.

Pasha: vvv пишет: Нигде не нашел, что clipper-интерпретатор. Чтобы немного отвлечься: вот 1эсники тоже спорят на ту же тему http://www.forum.mista.ru/topic.php?id=378021 А Владимир в крайнем посте правильно описал, как работает клиппер Мы настолько давно знаем клиппер, и многие копались в его кишках достаточно глубоко, что этот диспут немного странен. Как всегда, все говорят об одном и том же, но одни и те же термины понимают по разному. А клиппер работает и как компилятор в пи-код, и как интерпретатор этого кода в runtime

Григорьев Владимир: vvv пишет: Но ведь чтобы запустить exe-шку, не надо иметь на компьютере никакого интерпретатора! Все, что вы перечислили, делается один раз при создании исполняемого модуля и больше для работы программы не нужно. PS. А какие языки тогда отнести к компиляторам? Вы так и не поняли, что я написал! Вы запускаете как раз интерпретатор! То есть когда вы запускаете, якобы, свою программу, как вы наивно думаете, вы запускаете интерпретатор Clipper, к загрузочному модулю которого был присоединен P-код, который этим интерпретатором будет интерпретироваться! Чтобы вам было понятно, то есть некая аналогия между Windows-программой, к которой в exe-модуль, например, вставляются BMP-файлы. Тем не менее BMP-данные как были данными, а не машиннами командами, так ими и остались. К компиляторам относятся те средства, которые переводят исходный код в коды машинных команд!

Григорьев Владимир: vvv пишет: Ну не сам же я это придумал. ... Нигде не нашел, что clipper-интерпретатор. Я не стал читать ваши ссылки, так как они ничего абсолютно не доказывают! Я вам уже изложил суть дела. Чтобы вам еще более было понятно, то компилятор Clipper переводит, например, следуюший предложение с присваиванием LOCAL n; n = 9; Примерно в следующий код 0300 36 0900 2F 0100 Я набирал его по памяти, но это близко к действительным кодам. Первые два означают номер строки. где встретилась команда Clipper в исходном коде. Затем следует терм, который означает, что за ним идет целое число. Затем следует терм (P-код) 2F, который означает, что следует локальная переменная, а затем номер этой локальной переменной в последорвательности объявлений переменных в функции. Это не машинный код. Он не может непосредственно быть выполнен ни на одной машине. Для его выполнения требуется некоторый интерпретатор, который уже этот код будет переводить в машинные команды. Вот Clipper и делает это, включая в каждый итоговый загрузочный модуль интерпретатор этого кода и сам интерпретируемый код. То есть какие могут быть стратегии работы интерпретатора? Можно иметь один интерпретатор на машине, который будет интерпретировать все исходные коды. А можно каждый исходный код, предварительно переведя его в некую промежуточную форму, скомпоновать вместе с интерпретатором. Вот это и делает Clipper. То есть когда вы запускаете на выполнение exe-модуль, вы запускаете на выполнение интерпретатор! И этот интерпретатор начинает интерпретировать тот промежуточный код, который компилятор Clipper создал и присоединил к загрузочному модулю интерпретатора.

Pasha: Григорьев Владимир пишет: Вот Clipper и делает это, включая в каждый итоговый загрузочный модуль интерпретатор этого кода и сам интерпретируемый код. И этот интерпретатор имеет даже собственное имя: __PLANKTON Познакомиться, как работает клиппер, достаточно просто, и это может сделать любой интересующийся в домашних условиях, используя подручные средства. Надо взять обыкновенный хирургический скальпель дизассемблер watcom, аккуратно сделать надрез дизассемблировать любой клипперовский obj, и внимательно изучить строение внутренних органов пациента получившийся текст на asm. Мы увидим, что компилятор клиппер для каждой клипперовской процедуры или функции создает в сегменте кода файла obj маленькую функцию, а в сегменте данных - пи-код функции клиппера. Маленькая функция состоит из вызова интерпретатора __PLANKTON, в качестве параметра которой передается ссылка на пи-код. Таким образом, при вызове функции она в свою очередь вызывает интерпретатор, который собственно и выполняет пи-код. Примерно так работает и харбор, только в качестве интерпретатора у него используется Harbour Virtual Machine (HVM). Правда, харбор поддерживает и создание исполняемого кода без интерпретатора. В этом режиме для выполнения каждой пи-команды вызывается соответствующая функция. Но и клиппер, как и харбор, являются также полноценными компиляторами. Выходом компилятора не обязательно должен быть машинный код. А построены они оба как классические компиляторы. По поводу харбора я встречал суждение людей, поверхностно с ним познакомившихся, что это "всего-лишь" препроцессор для С. Это не так, и внешнее сходство не должно скрывать сути его работы.

Григорьев Владимир: Pasha пишет: И этот интерпретатор имеет даже собственное имя: __PLANKTON Я хотел это добавить, но не стал усложнять вопрос. Помимо __PLANKTON есть также модули, которые обрабатывают макросы. Я по памяти уже не помню, как эти модули называются.. Но не так давно я как раз восстановил лексический анализатор интерпретатора макросов. Следствием этого было мое сообщение на \этом форуме про причуды компилятора Clipper.

Haz: Во понаписали то ! Levon задал вопрос, получил ответ и счастлив на этом, помогли ему на форуме и отлично, на то он и форум. Мужики, но чего вы на vvv накинулись ? Человек перерыл кучу ссылок, и то что там писанина мягко говоря ни очем - не его вина. Да, vvv поднял тему которая лет 15 -20 назад и не могла возникнуть, потому что каждый програмист и системотехник знал что такое машинный код. Понабежали дядьки с кучей звезд разного цвета, запугали ... но все же разъяснили истину ( правда накидали новых непонятных слов типа дизасемблеров и лексических анализаторов ). vvv , ты не обижайся , народ на форуме в основном доброжелательный и пишет справедливые и грамотные ответы. Предлагаю подвести черту : 1. Levon получил помощь 2. Vvv понял, что в интернете не всему можно верить и обогатился знаниями 3. На форуме есть люди, готовые этими знаниями делиться ________________________________________________________________

Dima: Haz пишет: Предлагаю подвести черту На том и порешим ;) Тема закрыта.



полная версия страницы