-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathecclient.txt
144 lines (95 loc) · 7.38 KB
/
ecclient.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
ECClient v2.6 [2018.11.09]
- новый API, старый закрыли (а ещё обещают v2 в будущем) - пришлось капитально менять программу; порог отключения / блокировки в новом API отсутствует, так что и выводиться не будет
- почищен код и ресурсы, в ресурсы добавлена версия программы и перенесена часть строк
- теперь нельзя вызвать более одного окна с балансом
- новая иконка нового логотипа сети
- на Windows 98 баланс, увы, больше не посмотреть, потом что сервер использует какой-то лютый сертификат, который возвращает ошибку ERROR_INTERNET_SECURITY_CHANNEL_ERROR при вызове HttpSendRequest() - возможно необходимо обновление сертификатов
Программа опухла до 16,5 Кб.
---
ECClient v2.5 [2017.02.23]
- исправлена невозможность получения баланса: параметр lpszVersion при вызове HttpOpenRequest() должен быть "HTTP/1.0", а не просто "1.0" - очень странно, что на некоторых системах работало и так
- небольшое исправление при разборе строки - сначала позиция, потом символ
Размер программы не изменился.
---
ECClient v2.4 [2016.07.18]
- переписана и улучшена часть кода, поправлены мелкие ошибки
Размер программы не изменился.
---
ECClient v2.3 [2016.01.23]
- в биллинге опять что-то нахимичили, так что теперь для HTTPS нужен TLS 1.0, который придётся включать вручную (программно, увы, WinInet это не позволяет сделать) - добавлено окно с предупреждением
Размер программы не изменился.
---
ECClient v2.2 [2015.06.27]
- хм, помогло, но не надолго - попробуем с User-Agent от IE 10
Размер программы не изменился.
---
ECClient v2.1 [2015.06.18]
- похоже, кто-то решил бороться с альтернативными клиентами, так что в строку GET-запроса добавлено "&clientVersion=2", а в HTTP-заголовки "HTTP_X_REQUESTED_WITH: XMLHttpRequest" (3 дня - полёт нормальный)
Размер программы не изменился.
---
ECClient v2.0 [2014.05.16]
- программа переписана на Си и собрана на MinGW GCC
- исходные коды для всех желающих
- теоретически программу можно собрать под UNICODE (и ничего этому не мешает, кроме одного момента), практически - оно тут не нужно
- изменены сообщения в ресурсах и сами ресурсы приведены в порядок
- вместо статической библиотеки для подсчёта MD5 используется CryptCreateHash(), что позволяет немного сократить размер программы
- вместо ручного кода обработки URL-адресов используется InternetCrackUrl() - аналогично предыдущему пункту
- в локальные подсети помимо 192.168.x.x также добавлены 10.x.x.x и 172.16.x.x - 172.31.x.x, чтобы внешний IP-адрес корректно определялся
- небольшие улучшения безопасности: буфер из-под пароля, хеша и номера договора зануляется сразу после использования
- номер договора и MD5-хеш от пароля будут сохранены в файл настроек только в том случае, когда выбрана соответствующая опция и пришёл ответ от сервера с errorCode = 0 (т.е. данные прошли проверку и на стороне сервера тоже)
- изменился домашний адрес программы - старый сайт закрыт, дабы не плодить сущности
В результате всего вышеописанного программа похудела с 16 до 13 Кб (13312 байт).
---
ECClient v1.9 [2013.05.27]
- изменился адрес API у биллинга ЭГ
Размер программы не изменился.
---
ECClient v1.8 [2012.11.25]
- поправлено получение баланса (ошибка "невозможно соединиться с сервером"): так как для страницы биллинга кто-то с кривыми руками сделал кривой сертификат, то для HttpOpenRequest() добавлены флаги INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
- теперь нельзя запускать более одной копии программы - старая, на всякий случай, будет выгружена автоматически и вместо неё запустится новая
Размер программы не изменился.
---
ECClient v1.7 [2012.07.25]
- изменён адрес сайта программы
- диалог для ввода номера договора и пароля будет появляеться только при выборе баланса
- также в этот диалог добавлена опция "Запомнить указанные данные" - только если она отмечена номер договора и хэш пароля будут сохранены в файл "ecclient.ini", в противном случае, их каждый раз придётся вводить заново
Для смены логина и пароля достаточно удалить файл "ecclient.ini" и набрать их заново при выборе баланса.
Размер программы не изменился.
---
ECClient v1.6 [2012.03.21]
- выкинута "winssl.dll" (минус 6 Кб) - работа с HTTPS теперь через системную библиотеку "wininet.dll"
Кто будет обновляться со старых версий: удалите файл "winssl.dll" - он более не нужен.
Размер программы не изменился.
---
ECClient v1.5 [2012.03.12]
- по двойному щелчку левой кнопкой мышки на иконке программы в системном трее будет отображаться окно с балансом
- помимо баланса добавлено отображение порога отключения и количество дней абонентской платы
- на компьютерах с более чем 1 IP-адресом на интерфейсе (VMware и прочие вещи) нужный вычисляется эмпирическим путём: если адрес главный (PRIMARY) и динамический (DYNAMIC, в ЭГ адреса раздаются через DHCP, тоже самое, обычно, делают и роутеры), то он считается нужным, в противном случае информация о принятых/переданных байтах будет отображаться у последнего в списке, который не 0.0.0.0, и не 127.0.0.1
- по многочисленным просьбам: теперь отображается не внутренний адрес, а адрес на роутере, если компьютер находится за управляемым оборудованием, но только в том случае, если текущий адрес начинается на 192.168.*; определение адреса будет работать даже при отключённом UPnP на роутере
- некоторые константы, типа адресов сайтов, принудительно выкинуты из секции кода (CODE) в секцию с данными (DATA)
Программа опухла на целый килобайт - итого 16 Кб ровно.
---
ECClient v1.4 [2012.03.10]
- программа не пишет в "ecclient.ini", если в диалоге не введён номер договора или пароль; если нет необходимости в просмотре баланса, то оба поля можно заполнить чем угодно, чтобы диалог при старте программы не появлялся
- все сообщения переведены на русский язык (кроме сообщений о фатальных ошибках)
- тексты сообщений и все меню вынесены в ресурсы, так что каждый может их менять по своему вкусу (через Resource Hacker например)
- пунт "Billing" вынесен в подменю "Открыть", туда же вынесен адрес сайта программы (из окна с балансом убран)
В связи со всеми этими изменениями программа опухла на 512 байт и занимает теперь 15360 байт.
---
ECClient v1.3 [2012.03.06]
- изменён протокол получения баланса в связи с новым API (введён с 1 марта)
- SSL теперь использует SSLv3_client_method вместо SSLv2_client_method, иначе оно не подключается
- так как теперь пароль хранится не в открытом виде, а как хэш MD5, то при запуске программа запросит логин и пароль, причём последний будет сохранён в "ecclient.ini" уже в виде MD5 хэша, так что ручное редактирование файла отпадает; старое поле "password" в целях безопасности удаляется из файла
Если нужно сменить логин и/или пароль - просто удаляем "ecclient.ini" и перезапускаем программу.
В связи со всеми этими изменениями программа опухла на 2,5 Кб (2560 байт) и занимает теперь 14848 байт.
---
ECClient v1.2 [2011.10.03]
- добавлен пункт "Billing", который открывает "Личный кабинет" - полезно, т.к. при отрицательном балансе доступ на CN.ru (через который почему-то туда пытаются войти) закрыт
- переделано получение баланса - теперь это делается не в 4, а в 1 запрос по HTTPS (через открытый API, а не через выковыривание баланса из HTML страницы) - программа похудела ещё на 512 байт
---
ECClient v1.1 [2011.01.14]
- исправлена работа с новым биллингом
- исправлено отображение версии программы в заголовке окна с балансом
---
ECClient v1.0 [2010.12.07]
- первая публичная версия