Имя: Пароль:
1C
1С v8
Как программно получить список выбора пользователя базы 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) навел бы лучше на какие-нить другие интересные обсуждения на парнерке ))
Закон Брукера: Даже маленькая практика стоит большой теории.