|
Как программно получить список выбора пользователя базы 1С, куда нет доступа? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
11.11.14
✎
17:29
|
Есть произвольная база 1С. У меня нет информации о ее пользователях и соответственно учетной записи для подключения к ней. Требуется программно получить ее список пользователей. Само клиентское приложение это умеет делать. Значит программно это можно сделать. Теперь осталось понять как.
|
|||
1
Wobland
11.11.14
✎
17:47
|
наверное, ты имеешь в виду только тех, у кого есть галка про показывать в списке
|
|||
2
TormozIT
гуру
11.11.14
✎
18:02
|
Хотя бы их. Но возможно есть способ и всех получить.
|
|||
3
Сниф
11.11.14
✎
18:16
|
Первое, что пришло в голову - глянуть в таблицы SQL, нет ли среди них такой с юзерами.
|
|||
4
TormozIT
гуру
11.11.14
✎
18:35
|
SQL - лишь один из возможных типов СУБД. Нужно универсальное решение.
|
|||
5
Сниф
11.11.14
✎
18:37
|
(4) для начала глянуть SQL и Если такая таблица есть, То думать как выцепить ее из файловой версии.
|
|||
6
herfis
11.11.14
✎
18:42
|
(5) +1
|
|||
7
Otkr
11.11.14
✎
18:49
|
(5) (6) Ага, пользователь в 1С не известен, зато полный доступ к скулю?
|
|||
8
herfis
11.11.14
✎
18:58
|
(7) Такое бывает. Подозреваю, ТС ваяет какую-то хитрую утилиту.
|
|||
9
TormozIT
гуру
11.11.14
✎
19:05
|
Доступа к скулю естественно нет. Нужно получить фичу при минимальном доступе.
|
|||
10
TormozIT
гуру
11.11.14
✎
19:05
|
(8) Я не утилиту ваяю, а прорубаю окно в том числе для утилит )
|
|||
11
Ник080808
11.11.14
✎
19:16
|
через менеджер ком соединений получить можно список рабочих сеансов и оттуда выдрать но только рабочих. а так, штатно нельзя
|
|||
12
tridog
11.11.14
✎
19:28
|
(11) Это только зная логин и пароль на кластер
|
|||
13
Ник080808
11.11.14
✎
19:42
|
(12) или если он установлен)
|
|||
14
Сниф
11.11.14
✎
21:05
|
(10) так и сказал бы - пишу вирус для 1С. а то окно для утилит он прорубает.
|
|||
15
TormozIT
гуру
13.11.14
✎
23:51
|
Ну где же спецы по внутренностям?
|
|||
16
FIXXXL
13.11.14
✎
23:57
|
(1) получает то при запуске весь список
Можно же зайти под скрытым пользователем, напечатав имя руками Может где в темповых файлах есть список? |
|||
17
TormozIT
гуру
13.11.14
✎
23:59
|
(16) Про временные файлы было бы слишком легко. Я искал, но не нашел. Если они там и есть, то закодированы. Но здравый смысл подсказывает, что не зачем их во временный файл помещать.
|
|||
18
TormozIT
гуру
14.11.14
✎
00:04
|
Нужно из памяти процесса достать это список. Кто поможет?
|
|||
19
Torquader
14.11.14
✎
00:12
|
Ну а в чём проблема ?
Запускаешь 1С на невидимом декстопе. Подключаешься к нему и из ComboBox-а читаешь список строк. Подозреваю, что придётся dll в адресное пространство 1С внедрить или запустить exe-файл в режиме отладки. |
|||
20
Torquader
14.11.14
✎
00:13
|
Далее, подозреваю, что и ссылку на подключение к Sql можно "перехватить", чтобы один запросик к пользователям сделать.
|
|||
21
GreyK
14.11.14
✎
00:15
|
Ужас, так какую версию 1С здесь так плотно обсуждают?
|
|||
22
FIXXXL
14.11.14
✎
00:17
|
(17) а где теоритически может лежать список выбора пользователей, который выпадающий список?
|
|||
23
hhhh
14.11.14
✎
00:20
|
(17) вообще-то последний пользователь запоминается. В кэше. Когда кэш чистим, выходит окошко без пользователя.
|
|||
24
TormozIT
гуру
14.11.14
✎
00:24
|
(23) Ну последний то да =) Я же про список писал.
|
|||
25
hhhh
14.11.14
✎
00:26
|
(24) ну одного хотя бы достал?
|
|||
26
TormozIT
гуру
14.11.14
✎
00:52
|
(24) Ради одного имени кодить поиск для всех версий платформы ломает.
|
|||
27
PaulBC
14.11.14
✎
03:21
|
Список пользователей хранится в базе данных, в таблице v8users.
|
|||
28
Escander
14.11.14
✎
04:10
|
(0)дайте доступ к тому, к чему нет доступа... решение должно быть универсальным...
Это фантастика. Если база файловая можно её тупо прочитать, а вот если нет доступа к базоводу - тут только если этот доступ украсть или если воспользоваться какими-то не закрытыми дырами - но это не универсально |
|||
29
TormozIT
гуру
14.11.14
✎
09:33
|
(28) Никакой фантастики. В (19) описан в общем виде путь решения. Осталось дождаться того, кто уже ходил теми дорожками.
|
|||
30
FarFar
14.11.14
✎
09:44
|
(0) @vde делал подобное дл 7.7 http://infostart.ru/public/16686/
|
|||
31
ice777
14.11.14
✎
10:11
|
Был у нас один принципиальный противник 1С, правда и программист он был так себе, ваял по 2-3 утилитки для считывания данных с датчиков на производственной линии (а что там ваять было- если исходники с датчиками шли). Потом запросил прямой доступ к базе 1С (к серверу). Слушали. Постановили- ввиду низкой квалификации в выдаче пароля на БД- отказать. Хез что он кривыми руками там натворит.
И правильно. |
|||
32
User_Agronom
14.11.14
✎
10:14
|
(16) Не. Темповые можно удалить и список все равно получается.
Запрос к таблице в привилегированном режиме при старте. Не? |
|||
33
Обработка
14.11.14
✎
10:23
|
(0) По ОЛЕ стучись к базе...
|
|||
34
an-korot
14.11.14
✎
10:25
|
хакеры вы недоделанные, автор ты прикалываешься или действительно такой глупый? таких тем в инете как зайти в базу забыли пароль и ющку тыщи, если не больше. не знаю как щас во времена 8.1 100% можно было как и в 7.7 получить список пользователей и паролей подменой файла.
кстати а где пятница? |
|||
35
TormozIT
гуру
14.11.14
✎
10:42
|
Я не хакер. В данном случае я не прикалываюсь. Ломать базу мне не надо. Пароли мне не нужны. Нужны только имена пользователей.
|
|||
36
pessok
14.11.14
✎
10:47
|
не сочтите за рекламу, но я бы посмотрел в сторону Снегопата. Ну или на худой конец обратился к orefkov
|
|||
37
TormozIT
гуру
14.11.14
✎
10:51
|
Orefkov че то пропал куда то. Снегопат у меня есть.
|
|||
38
МишельЛагранж
14.11.14
✎
10:57
|
(15)>>Ну где же спецы по внутренностям?
- где такие есть? (35)>>Я не хакер. В данном случае я не прикалываюсь. Ломать базу мне не надо. Пароли мне не нужны (30)>>делал подобное дл 7.7 - вот причем тут хакет-не хакер? Причем тут 7.7? В 1С8 используются хэши для паролей. Для пользователей - таблица SQL. Получай доступ к таблице - найдешь список пользюков. А вот войти не зная пароля не получится - минимум, должен знать хэш. И то тлько хитрым способом войдешь. |
|||
39
МишельЛагранж
14.11.14
✎
10:59
|
(37) и причем тут Орефков, который со входами в стандартные длл-ки майкрософта и файлами ресурсов 1С работает?
|
|||
40
МишельЛагранж
14.11.14
✎
11:00
|
(34)>>не знаю как щас во времена 8.1 100% можно было как и в 7.7 получить список пользователей и паролей подменой файла.
- давно ли в 8.х пользюки отдельным файлом лежат? |
|||
41
МишельЛагранж
14.11.14
✎
11:01
|
(33)>>По ОЛЕ стучись к базе...
- да хоть сто лет стучись - 1CD по OLE не работает и не работал, а SQL - к нему доступ без всякого ОЛЕ организуется. |
|||
42
Господин ПЖ
14.11.14
✎
11:02
|
сниферить... в клюшках явки/пароли передавались в открытом виде, снеговик вроде не особо дальше ушел
|
|||
43
МишельЛагранж
14.11.14
✎
11:05
|
(18)>>Нужно из памяти процесса достать это список. Кто поможет?
а что, уже кто-то 1С-процесс rphost'а дизассемблировал? Вот уж не думал, что ТАКИЕ 1сники будут ТАКИЕ вопросы ставить... |
|||
44
МишельЛагранж
14.11.14
✎
11:06
|
(42)>>в клюшках явки/пароли передавались в открытом виде, снеговик вроде не особо дальше ушел
- вы давно интересовались, как пользюки и пароли хранятся в 1С8? )) |
|||
45
Mt111
14.11.14
✎
11:07
|
(34) дело говорит
1) преименовываешь файл Usrdef\users.usr в users1.usr 2) заходишь в конфигуратор без пароля 3) преименовываешь файл Usrdef\users1.usr в users.usr 4) открываешь список пользователей и делаешь с ними что хош P.S. в 7.7 работает на ура |
|||
46
Господин ПЖ
14.11.14
✎
11:09
|
(44) как они хранятся - пофих... главное -как и в каком виде они передаются
|
|||
47
МишельЛагранж
14.11.14
✎
11:13
|
(3)>>Первое, что пришло в голову - глянуть в таблицы SQL, нет ли среди них такой с юзерами.
- есть, и в 27 сказали, какая. В 1CD то же самое, только нужен чтец 1CD (там модель DBF). (46)>>как и в каком виде они передаются - примерно как пароли Windows - в зашифрованном. В хэше. |
|||
48
МишельЛагранж
14.11.14
✎
11:14
|
(45) >>P.S. в 7.7 работает на ура
- к Windows админситратору тоже подойдет способ? |
|||
49
orefkov
14.11.14
✎
11:15
|
(0)
Сейчас пользователи хранятся в таблице v8users. Если надо вытащить список, не запуская 1С - надо реализовывать чтение этой таблицы для разных форматов баз - файловая, ms-sql, postgress и т.д. Если делать универсально, через сам движок 1С - надо извращаться, чтобы в него попасть и вызвать пару методов. Могу попробовать в снегопате реализовать, подключение к другой базе и вытаскивание списка юзеров. |
|||
50
Господин ПЖ
14.11.14
✎
11:15
|
>- примерно как пароли Windows - в зашифрованном. В хэше.
у меня из какой-то статьи отложилось что получить и разобрать сие хозяйство - "ху есть кто" не особо сложно из того что падает на сервер из клиента |
|||
51
orefkov
14.11.14
✎
11:17
|
+(49)
Мой сосед по кабинету, DmitrO, делал частный случай, для mssql, еще для прошлых версий 1С, когда список хранился не отдельной табличкой, а бинарным файлом в виде записи в таблице. Вытаскивал и парсил. |
|||
52
МишельЛагранж
14.11.14
✎
11:17
|
(49)>>Могу попробовать в снегопате реализовать, подключение к другой базе и вытаскивание списка юзеров.
- и?? Что мешает список вытащить из самой 1С? А если мешает (нет дотспуа, паролей, etc - значит, что и как вам делать в той базе? )) |
|||
53
Mt111
14.11.14
✎
11:19
|
(48) как я понял физический доступ к базе есть, причем здесь винда? для винды прога reset windows password
|
|||
54
orefkov
14.11.14
✎
11:19
|
(52)
Не тупи, а? Список пользователей - не секретная информация, и виден при запуске 1С любому пользователю еще до авторизации в базе. Вопрос, как получить его программно. |
|||
55
Escander
14.11.14
✎
11:20
|
(29) пользователей у которых указано "не показывать в списке выбора" - не увидишь
|
|||
56
МишельЛагранж
14.11.14
✎
11:20
|
(50)>>у меня из какой-то статьи отложилось что получить и разобрать сие хозяйство
- 1с пароль невозможно подобрать/расшифровать современными мощностями. |
|||
57
МишельЛагранж
14.11.14
✎
11:21
|
(54) не тупи, а? Программно в 1с получается прекрасный список пользователей.
А если ты не имеешь доступа к базу 1С - как будешь работать с ней? Зачем тебе туда доступ? |
|||
58
МишельЛагранж
14.11.14
✎
11:22
|
(53)>>как я понял физический доступ к базе есть
- неправильно поняли. Если есть доступ к базе - список пользюков получить вообще не проблема. |
|||
59
МишельЛагранж
14.11.14
✎
11:24
|
(54) да, если не знаешь - организуешь COM-соединение и получаешь справочник пользователей.
Это если нужно заранее "до входа" получить список из якобы" полностью доступной базы 1С", в чем я сильно сомневаюсь )) |
|||
60
Господин ПЖ
14.11.14
✎
11:29
|
>- 1с пароль невозможно подобрать/расшифровать современными мощностями.
зачем его расшифровывать, если в строке уже все есть чтобы зайти в базу? а отделить это юзер/это хеш пароля - там было можно |
|||
61
МишельЛагранж
14.11.14
✎
11:30
|
(60) да никто и не споит, что можно. Но - внутри 1С.
А не снаружи. |
|||
62
МишельЛагранж
14.11.14
✎
11:31
|
Снаружи вломиться в 1С у тебя не получится.
|
|||
63
orefkov
14.11.14
✎
11:31
|
(57)
Чтобы получить средствами 1С - надо зайти в базу, то есть иметь соответствующие права доступа к этой базе. Между тем, "глазками", "ручками" - можно видеть список пользователей, не заходя в базу, и не имея никаких прав доступа к ней - достаточно просто запустить базу и список будет показан еще до аворизации. Получается, что список пользователей не является секретной информацией, и этического вопроса "значит, что и как вам делать в той базе" - возникать не должно. Вот человек и ищет способ - получить список пользователей базы 1С не заходя в нее, но только программно. |
|||
64
TormozIT
гуру
14.11.14
✎
11:33
|
Еще тут конечно спросил https://partners.v8.1c.ru/forum/topic/1294731 и пожелал такую возможность от производителя. Цели - интеграционные прикладные решения.
|
|||
65
TormozIT
гуру
14.11.14
✎
11:38
|
orefkov, как я понял способ только снегопатовский здесь подойдет. Нужно консольное приложение, которое
1. запустит невидимый 1cv8.exe с параметрами подключения к базе (без аутентификации) 2. отловит список после появления диалога аутентификации 3. завершит невидимый процесс 4. выведет список юзеров в stdout |
|||
66
herfis
14.11.14
✎
11:39
|
(9) Тогда проблема. Если данные хранятся в сиквеле, то как получить эти данные без прав на сиквел? Сервер приложений эти права имеет, поэтому и может показать список пользователей. Единственный способ, получается - это убедить сервер приложений выдать эти данные. Штатно без авторизации это сделать нельзя. Получается, что единственный вариант - "нечестный": впытаться притвориться твоей проге, что она является клиентом 1С, пытающимся авторизоваться.
|
|||
67
Господин ПЖ
14.11.14
✎
11:40
|
(63) в 1с много мест где ручками можно, а программно нет
это норма (с) Малышева |
|||
68
herfis
14.11.14
✎
11:43
|
(66) + Когда писал, еще не видел (65). Да, именно так. Так даже проще и надежнее.
|
|||
69
foreach
14.11.14
✎
11:46
|
XVI32
|
|||
70
МишельЛагранж
14.11.14
✎
11:50
|
(64) навел бы лучше на какие-нить другие интересные обсуждения на парнерке ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |