Просмотр полной версии : iDrive.com - как работает?
привет!
необходимо определить как работает стандартный тул idrive.com по backup'у файлов - по какому адресу соединяется, что и в каком формате передает и т.п. - хочу написать свой клиент вместо стандартного.
Как эти детали получить? HTTP Analyzer ver 3 почему-то запросы iDrive Backup Tool'a не перехватывает...
ну так запусти обычный сниффер типа варишарка или комвью.
м-да, этими программами пакеты увидел.
их анализ показал (а потом и в справке это нашел), что
Your files and folders are transferred between the application and server using 128-bit SSL encryption
никогда с этим не сталкивался раньше.
есть ли смысл продолжать копать-разбираться? возможно ли в этом разобраться и повторить аналогичный функционал в своей программе?
ИМХО, почему бы и нет.
Только анализом траффика ничего не добудешь, надо ковырять саму программу на предмет алгоритмов.
эх. запросы повторять я умею... а вот саму программу расковырять вряд ли сумею.
может ли кто-нибудь помочь?
думаете, на это кучу времени придется потратить?
еще обнаружил интересную вещь - можно задавать свой ключ для криптования данных (только один раз при первом логине). только вот если я все правильно понял, то для расшифровки отправляемых данных нужно знать другой ключ. вопрос - можно ли задать какой-нибудь ключ таким образом, чтоб можно было узнать для расшифровки?
Hiro Protagonist
06.04.2010, 07:29
2LA_
для ssl какую либу использует посмотри. Если чтото типа openssl или другой открытой то не проблема определить высокоуровневые функции в ктр данные уже в расшифрованном виде. Далее пиши перехватчик и снифай с помощью него. Если закрытые либы (что маловероятно), то реверс и тоже самое. Увидишь формат пакетов. Лучше всего отловить где происходит их парсинг и посмотреть все возможные варианты.
И почитай про SSL наконец =\
в сообщениях фигурирует openssl. и еще ssleay.
про SSL почитал ))
то не проблема определить высокоуровневые функции в ктр данные уже в расшифрованном виде
подскажите, плз, где можно почитать о том как это делается
правильно ли я понимаю принцип работы SSL -
1) клиент соединяется с сервером
2) сервер возвращает клиенту сертификат со своим открытым ключом
3) далее данные отправляемые от клиента серверу передаются зашифрованные этим ключом - сервер и клиент договариваются о ключе криптования
только вот тогда зачем нужен собственный ключ криптования (который я могу сам задать)? для чего он используется?
обнаружил еще следующее - программа ведет неплохие логи того, что делает. например, вот лог соединения с сервером:
07:04 22:47:30.386 Start --> API_GET_PORTNUMBER_AUTHENTICATE, IDR_INTERACTIVE_JOB, 23
07:04 22:47:30.387 API_GET_PORTNUMBER_AUTHENTICATE
07:04 22:47:30.395 Calling Connection to the server
07:04 22:47:30.399 Return Value from CreateClient() in connectToServer()= 0
07:04 22:47:30.697 after B_do_connect
07:04 22:47:30.697 after B_do_connect
07:04 22:47:30.697 Before S_connect
07:04 22:47:31.756 Return from S_connect() = 1
07:04 22:47:31.756 Return Value from Connect() = 0
07:04 22:47:31.756 Return from connectToServer = 0
07:04 22:47:32.509 Return from GetPortIP = 0
07:04 22:47:32.509 Return number = 0
07:04 22:47:32.509 Athentification Success:ReturnNo= 402
07:04 22:47:32.510 Second started2..
07:04 22:47:32.510 ****Return from SSL_shutdown():0
07:04 22:47:32.511 ****Return from SSL_shutdown()(2nd try):1
07:04 22:47:32.511 Calling Connection to the server
07:04 22:47:32.512 Return Value from CreateClient() in connectToServer()= 0
07:04 22:47:32.811 after B_do_connect
07:04 22:47:32.811 after B_do_connect
07:04 22:47:32.811 Before S_connect
07:04 22:47:33.359 Return from S_connect() = 1
07:04 22:47:33.359 Return Value from Connect() = 0
07:04 22:47:33.359 Return from connectToServer = 0
07:04 22:47:34.122 Unicode support value : 273
07:04 22:47:34.123 Return from Encrypted passphrase = 0
07:04 22:47:34.123 HostID: 0
07:04 22:47:35.386 nRecvEnc = 402
07:04 22:47:35.387 Return from Machine random number = 402
07:04 22:47:35.388 ****Return from SSL_shutdown():0
07:04 22:47:35.724 ****Return from SSL_shutdown()(2nd try):1
07:04 22:47:35.724 Return number sucess2 = 402
07:04 22:47:35.724 End of --> API_GET_PORTNUMBER_AUTHENTICATE, IDR_INTERACTIVE_JOB, 23
07:04 22:47:35.724 Before Uninitializing resources...
07:04 22:47:35.724 End of Main()
в папке с программой лежат два файла:
server.pem
rootcert.pem
из первого находится следующая информация:
Signature Algorithm: md5WithRSAEncryption
Netscape Comment: OpenSSL Generated Certificate
X509v3 Authority Key Identifier: DirName:/C=AU/ST=QLD/CN=SSLeay/rsa test CA
и еще, создал тестовый эккаунт для экспериментов:
username: iabcd_efgh
password: iDriveTTT
own encryption key: 123456789
обнаружил еще одну забавную вешь - часть настроек они хранят в файле IDriveE.ini, закриптованными по алгоритму Цезаря со смещением в одну букву LOL
расшифровать онлайн можно, например, тут (http://en.wikipedia.org/wiki/Caesar_cipher)
Hiro Protagonist
08.04.2010, 01:00
берешь ман по openssl и смотришь как организуется отправка данных, функцию соответствующую перехватываещь, где в буфере будут данные.
а как функцию соответствующую перехватывать? каким инструментом?
установил для пробы IDA Pro. открыл exe, задаю поиск текста connectToServer - не находит.
пытаюсь в нем же запустить дебаггер (local win32) - запускается и возвращает ошибку/exception типа The memory couldn't be read. Если продолжить, то вываливается еще куча ошибок.
Что я делаю не так?
как думаете, сколько может стоит работа по "вскрытию" алгоритма работы этой программы?
интересно, дешевле данные на amazon s3 хранить или все-таки на idrive (бесплатно, но заплатив за алгоритм) :D
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot