Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите разобраться с fox таблицами / 25 сообщений из 25, страница 1 из 1
17.04.2010, 23:40
    #36584008
помогите разобраться с fox таблицами
Ковыряюсь в фоксовой БД написанной неизвестно кем.
В ней есть таблица Y в которой содержится информация по московским домам:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 house | drob | korp | letter | stroen | id_house |      name       | number | did |  mind  |     ulc     
-------+------+------+--------+--------+----------+-----------------+--------+-----+--------+-------------
  9      |  0     |  3     |        |  0       |  1         |                 |  1       |     |        | - 1381263430 
  4      |  0     |  4     |        |  0       |  2         |                 |  1       |     |        | - 1381263430 
  4      |  0     |  0     |        |  0       |  3         |                 |  1       |  131  |  123308  | - 1381263430 
  14     |  0     |  0     |        |  0       |  4         |                 |  1       |     |        | - 1058441994 
  5      |  0     |  0     |        |  0       |  5         |                 |  1       |     |        |    746644877 
  3      |  0     |  5     |        |  0       |  6         |                 |  1       |     |        | - 2079227808 
  3      |  0     |  0     |        |  0       |  7         |                 |  1       |     |        |    578150664 
  16     |  0     |  0     |        |  0       |  8         |                 |  1       |     |        |   1118200766 
  29     |  0     |  0     |        |  0       |  9         |                 |  1       |  22   |  129347  |    - 2400413 
  59     |  0     |  0     |        |  0       |  10        |                 |  1       |     |        |   1336001590 
  8      |  0     |  0     |        |  0       |  11        |                 |  1       |  47   |  129347  |   1415149874 
  4      |  0     |  3     |        |  0       |  12        |                 |  1       |  142  |  129347  |   1029228097 
  2      |  0     |  0     |        |  0       |  13        |                 |  1       |     |        |   1703508029 
  1      |  0     |  4     |        |  0       |  14        |                 |  1       |  142  |  117556  | - 1058441994 
  8      |  0     |  0     |        |  0       |  15        |                 |  1       |  142  |  129347  |  - 568477029 
  70     |  0     |  2     |        |  0       |  16        |                 |  1       |  142  |  117556  | - 2023736138 
  6      |  0     |  1     |        |  0       |  17        |                 |  1       |     |        |   1703508029 
  13     |  0     |  2     |        |  0       |  18        |                 |  1       |  142  |  129347  |   2034840377 
  4      |  0     |  0     |        |  0       |  19        |                 |  1       |  142  |  117556  |    746644877 
  10     |  0     |  1     |        |  0       |  20        |                 |  1       |  142  |  117452  |    746644877 
  2      |  0     |  2     |        |  0       |  21        |                 |  1       |  47   |  129347  | - 1240945167 
  5      |  0     |  1     |        |  0       |  22        |                 |  1       |  142  |  117556  | - 1058441994 
 
Здесь i d _house это уникальный ключ каждого московского дома,
а ulc ссылка на московскую улицу. Есть таблица с названиями московских улиц K :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 bbbbbbbbbb | aaaaaaaaaa                      | number
------------+---------------------------------+--------
  13157       | Абрамцевская ул.                |  2 
  17434       | Абрикосовский пер.              |  2 
  13030       | Авангардная ул.                 |  2 
  16523       | Авиамоторная ст. м.             |  2 
  13405       | Авиамоторная ул.                |  2 
  16188       | Авиаторов ул.                   |  2 
  16173       | Авиационная ул.                 |  2 
  12996       | Авиационный пер.                |  2 
  26231       | Авиационный пр. (Тушино)        |  2 
  10708       | Автозаводская пл.               |  2 
  12840       | Автозаводская ст. м.            |  2 
Но сразу бросается в глаза, что ключ bbbbbbbbbb всегда положителен
и значительно меньше размером, чем ключ ulc в таблице Y .
Помогите расшифровать связь между ключами, т.к. сам я в foxpro не силён.
Ещё заметил поля непонятные did и mind в таблице Y ,
может это ключи к шифрованию, хотя они определены не для каждой записи.
В остальных полях и таблицах такого шифрования нет - значения индексов совпадают.
Если понадобится, могу написать несколько соответствующих друг другу пар индексов.
...
Рейтинг: 0 / 0
18.04.2010, 00:02
    #36584029
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Ничего специфически фоксового я тут не увидел.
...
Рейтинг: 0 / 0
18.04.2010, 18:22
    #36584448
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Присоединяюсь к Dag - здесь нет ничего, что было бы характерно исключительно для FoxPro. Даже тот факт, что все это хранится в DBF-таблицах ни о чем не говорит. Может, это программа на Clipper написанная.

Организация структуры данных, как правило, не зависит от того, на каком языке будет написано клиентское приложение. В зависимости от степени образованности разработчика программы и требований задачи, структура реляционной базы данных так или иначе будет приведена, как минимум, к третьей нормальной форме.

Как следствие, с подобным вопросом Вы можете обратится на ЛЮБОЙ из форумов данного сайта, который посвящен СУБД. Опустите только упоминание о том, что это хранится в DBF-таблицах. Ответы будут совершенно одинаковыми. Примерно такого содержания: Вам надо, Вы и разбирайтесь.

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

Вот с какой стати, Вы решили, что таблица домов имеет внешний ключ на таблицу улиц? Разве не может быть таблицы-посредника? Видно же, что значение поля ulc ну никак не совпадает со значением bbbbbbbbbbbbbb. Но, чтобы подтвердить или опровергнуть это предположение, надо видеть приложение. Как ТАМ организовано взаимодействие таблиц. А у разработчика спросить нельзя?
...
Рейтинг: 0 / 0
18.04.2010, 19:32
    #36584499
помогите разобраться с fox таблицами
ВладимирМКак следствие, с подобным вопросом Вы можете обратится на ЛЮБОЙ из форумов данного сайта, который посвящен СУБД. Да я было попытался этот вопрос на Постгресе задать - тут же пинками погнали на Фокс .
ВладимирМ... надо видеть приложение. Как ТАМ организовано взаимодействие таблиц. Всё что я вижу - это 80 dbf-ных таблиц и одно exe приложение.
А в каком файле(расширение) у Фокса может храниться структура БД?
А то приходится руками каждую таблицу ковырять :(
ВладимирМА у разработчика спросить нельзя? Да это телефонный справочник ЕГТС. Боюсь за такие вопросы по голове настучат ))
...
Рейтинг: 0 / 0
18.04.2010, 19:39
    #36584501
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
dod.NET программист и одно exe приложение.refox?
dod.NET программист А в каком файле(расширение) у Фокса может храниться структура БД?Если вы имеете в виду связи между таблицами - то, увы, ни в каком. Впрочем, можете поискать *.dbc|*.dct|*.dcx, но почему-то мне кажется, что их там не будет...
...
Рейтинг: 0 / 0
18.04.2010, 20:26
    #36584540
Fffffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Если это Foxpro, то есть шанс, запустив exe-файл непосредственно в самом FoxPro, сделать Suspend и посмотреть, как организованы связи.
Ну и Refox.
...
Рейтинг: 0 / 0
04.05.2010, 09:28
    #36610250
помогите разобраться с fox таблицами
Поставил WinXP на usb flash.
Появилась возможность поковыряца с рефоксом.
вроде бы нашёл кусок кода с нужной мне функцией:
Код: plaintext
decrn(b.ulc) = k.bbbbbbbbbb
// напомню, что ulc имеет тип I(4) , а bbbbbbbbbb - N(5)
В файле repformu.fxp нашёл описание функции repformu.fxp :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
**
FUNCTION decrn
 LPARAMETERS stroka
 LOCAL stro
 stro = stroka
 IF decryptint(@stroka, @stro)<> 0 
    QUIT
 ENDIF
 RETURN stro
ENDFUNC
**
// растолкуйте непосвящённому, как устроена эта функция

Функция decryptint обявляется сразу в 2-х файлах:
neoglite.fxp :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 DECLARE INTEGER CheckAuthorization IN NEOGLITE.DLL INTEGER @
 DECLARE INTEGER MakeRequestCode IN NEOGLITE.DLL STRING @
 DECLARE INTEGER CheckLicense IN NEOGLITE.DLL STRING @, INTEGER @
 DECLARE INTEGER EncryptString IN NEOGLITE.DLL STRING @, STRING @
 DECLARE INTEGER DecryptString IN NEOGLITE.DLL STRING @, STRING @
 DECLARE INTEGER EncryptMemory IN NEOGLITE.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER DecryptMemory IN NEOGLITE.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER FastEncryptMemory IN NEOGLITE.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER FastDecryptMemory IN NEOGLITE.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER EncryptInt IN NEOGLITE.DLL INTEGER @, INTEGER @
 DECLARE INTEGER DecryptInt IN NEOGLITE.DLL INTEGER @, INTEGER @
 DECLARE INTEGER EncryptQWord IN NEOGLITE.DLL INTEGER @, INTEGER @
 DECLARE INTEGER DecryptQWord IN NEOGLITE.DLL INTEGER @, INTEGER @
ENDPROC
**
// NEOGLITE.DLL присутствует
и практически одинаковом файле neoguard.fxp :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 DECLARE INTEGER CheckAuthorization IN NEOGUARD.DLL INTEGER @
 DECLARE INTEGER MakeRequestCode IN NEOGUARD.DLL STRING @
 DECLARE INTEGER CheckLicense IN NEOGUARD.DLL STRING @, INTEGER @
 DECLARE INTEGER EncryptString IN NEOGUARD.DLL STRING @, STRING @
 DECLARE INTEGER DecryptString IN NEOGUARD.DLL STRING @, STRING @
 DECLARE INTEGER EncryptMemory IN NEOGUARD.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER DecryptMemory IN NEOGUARD.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER FastEncryptMemory IN NEOGUARD.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER FastDecryptMemory IN NEOGUARD.DLL STRING @, STRING @, INTEGER
 DECLARE INTEGER EncryptInt IN NEOGUARD.DLL INTEGER @, INTEGER @
 DECLARE INTEGER DecryptInt IN NEOGUARD.DLL INTEGER @, INTEGER @
 DECLARE INTEGER EncryptQword IN NEOGUARD.DLL
 DECLARE INTEGER DecryptQword IN NEOGUARD.DLL
ENDPROC
**
// NEOGUARD.DLL отсутствует

Как я понимаю decrn возвпащает короткое целое.
Например decrn(-1203119795) должна вернуть 14907
Помогите с дешифровкой.
...
Рейтинг: 0 / 0
04.05.2010, 09:53
    #36610286
помогите разобраться с fox таблицами
dod.NET программистПомогите с дешифровкой.Интересно,а каким образом это можно сделать? Телепатически? Только по именам функций?
...
Рейтинг: 0 / 0
05.05.2010, 06:36
    #36611978
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
dod.NET программист,

Не совсем понял, что вам осталось непонятным. У вас на руках есть DLL, в которую включены функции расшифровки.
Если DLL не требует предварительной инициализации каким-нибудь хитрым Seed (CheckAuthorization), то все решается просто. Вам остается только на любом известном вам языке программирования пробежаться по полям и строкам DBF файла и раскодировать их функциями самой DLL (DecryptString, DecryptInt и т.д.)
...
Рейтинг: 0 / 0
10.05.2010, 00:29
    #36619291
помогите разобраться с fox таблицами
Kruchinin Pahandod.NET программист,

Не совсем понял, что вам осталось непонятным. У вас на руках есть DLL, в которую включены функции расшифровки.
Если DLL не требует предварительной инициализации каким-нибудь хитрым Seed (CheckAuthorization), то все решается просто. Вам остается только на любом известном вам языке программирования пробежаться по полям и строкам DBF файла и раскодировать их функциями самой DLL (DecryptString, DecryptInt и т.д.)
Я так сразу и подумал. Даже создал простенькую прогу на фоксе. Но фокс фсё время ругаеца что параметры не соответствуют функции, а когда не ругается, вылетает. Видно программер фоксовый из меня никакой... Придётся на си писать.
Помогите "понять" функцию decrn :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
FUNCTION decrn
 LPARAMETERS stroka
 LOCAL stro
 stro = stroka
 IF decryptint(@stroka, @stro)<> 0 
    QUIT
 ENDIF
 RETURN stro
ENDFUNC
- как хватает моих нулевых знаний, она создаёт локальную переменную stro и присваевает ей значение параметра? Потом указатели на параметр и эту переменную передаются в функцию decryptint , где происходит дешифровка - stro "обретает" нужное значение и возвращается из функции decrn ?
Прошу не пинать за "глупые вопросы" - для меня что функции фокса, что японские иероглифы выглядят одинаково...

Kruchinin PahanВам остается только на любом известном вам языке программирования пробежаться по полям и строкам DBF файла...
я уже в постгрес нужные таблицы закачал. Буду бегать по постгресу :)
...
Рейтинг: 0 / 0
10.05.2010, 01:04
    #36619308
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
dod.NET программистПомогите "понять" функцию decrn :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
FUNCTION decrn
 LPARAMETERS stroka
 LOCAL stro
 stro = stroka
 IF decryptint(@stroka, @stro)<> 0 
    QUIT
 ENDIF
 RETURN stro
ENDFUNC
- как хватает моих нулевых знаний, она создаёт локальную переменную stro и присваевает ей значение параметра? Потом указатели на параметр и эту переменную передаются в функцию decryptint , где происходит дешифровка - stro "обретает" нужное значение и возвращается из функции decrn ?
Собственно Вы все верно излагаете. Дополнительно можно сказать, что если функция decryptint не вернет 0, то происходит завершение программы.
...
Рейтинг: 0 / 0
11.05.2010, 05:57
    #36620174
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
dod.NET программист
Я так сразу и подумал. Даже создал простенькую прогу на фоксе. Но фокс фсё время ругаеца что параметры не соответствуют функции, а когда не ругается, вылетает. Видно программер фоксовый из меня никакой... Придётся на си писать.

Пишите на чем вам удобнее. Раз уж алгоритм расшифровки полностью зашит в Dll.
dod.NET программист
Помогите "понять" функцию decrn :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
FUNCTION decrn
 LPARAMETERS stroka
 LOCAL stro
 stro = stroka
 IF decryptint(@stroka, @stro)<> 0 
    QUIT
 ENDIF
 RETURN stro
ENDFUNC
- как хватает моих нулевых знаний, она создаёт локальную переменную stro и присваевает ей значение параметра? Потом указатели на параметр и эту переменную передаются в функцию decryptint , где происходит дешифровка - stro "обретает" нужное значение и возвращается из функции decrn ?
Переменной stro присваивается значение параметра stroka только для того, чтобы зарезервировать объем памяти равный длине входящей строки. В остальном - все верно.
dod.NET программист
я уже в постгрес нужные таблицы закачал. Буду бегать по постгресу :)
А занафига? Постгрес же не умеет какую попало Dll цеплять, а только со специфичными точками входа.
...
Рейтинг: 0 / 0
27.09.2010, 03:37
    #36867238
egts
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
ulc -> ul
-1381263430 -> 13142
-1058441994 -> 10731
...
решение есть...
...
Рейтинг: 0 / 0
21.07.2011, 03:50
    #37360374
egts?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
задачку кто-нибудь решил?
...
Рейтинг: 0 / 0
22.07.2011, 14:58
    #37363205
egts_56
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
egts?задачку кто-нибудь решил?
нет не как не решить, может поможешь с алгоритмом ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.05.2013, 14:46
    #38256698
фноним
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Кто-то пробовал декомпилить (рефоксить) багус? Дисассемблирование neoguard.dll помогло найти только точки входа в библиотеку.
Хотелось бы всётаки перелить эти dbf-ки в нормальную СУБД.
...
Рейтинг: 0 / 0
14.05.2013, 15:30
    #38256784
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
фноним,

Какая связь между dll и dbf ?
...
Рейтинг: 0 / 0
15.05.2013, 03:00
    #38257499
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Я вот чего не понимаю - если нужна только адресная информация, то есть вполне себе открытая база КЛАДР, со всеми описаниями форматов и т.п.
Если же нужны телефоны, то какой смысл в базе МГТС столетней давности, если текущие данные поменялись вплоть до кардинального - на десятизначку?
...
Рейтинг: 0 / 0
15.05.2013, 05:41
    #38257515
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Если в программе есть ввод домов и улиц, то быстрее всего удалить все записи в таблицах, и ввести одну запись, посмотреть, где и как эта запись зафиксировалась...
...
Рейтинг: 0 / 0
15.05.2013, 09:02
    #38257582
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
фноним,

дежавю

P.S. dll-ки хрен расколешь, антиси не существует. Обращайся к квакерам.
...
Рейтинг: 0 / 0
15.05.2013, 17:15
    #38258837
фноним
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
AndreTM,

там не только эта информация.в базе антикриминал за март 2010 - довольно много различной информации. большая из которой зашифрована neoguard-ом.
КЛАДР мне ничем не поможет.
...
Рейтинг: 0 / 0
15.05.2013, 17:18
    #38258843
фноним
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Jonny540,

MEMO данные в dbf зашифрованны. А neoguard.dll часть продукта шифрования.
...
Рейтинг: 0 / 0
16.05.2013, 03:07
    #38259490
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
фноним,

А, извиняюсь, я не в то сообщение посмотрел...
...
Рейтинг: 0 / 0
17.05.2013, 09:04
    #38261320
descent52
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
Может как то так:
1. В таблице Y создаем еще одно поле, пусть ULC_1
2. В цикле пробежимся по этой табличке
/*тут как то объявить функцию
DECLARE INTEGER EncryptInt IN NEOGLITE.DLL INTEGER @, INTEGER @
DECLARE INTEGER DecryptInt IN NEOGLITE.DLL INTEGER @, INTEGER @
*/если чё, подточить напильником

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
select 1
use Y
do while !eof()
replace ULC_1 with encryptint(@ulc, @stro)

select 1
skip
enddo



В итоге, в поле ulc_1 должны появиться значения как и в другой таблице в поле bbbbbbb
...
Рейтинг: 0 / 0
17.05.2013, 15:17
    #38262172
фноним
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите разобраться с fox таблицами
descent52,

к сожалению данные манипуляции не дают нужных результатов (в качестве результата функции выдают левые значения). пробовал я и в fox-е задействовать dll и на сях. не думаю что там всё так просто т.к. есть как минимум такая процедура как CheckAuthorization, которая не понятно как проводит авторизацию.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите разобраться с fox таблицами / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]