Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   iDrive.com - как работает? (https://forum.antichat.xyz/showthread.php?t=193198)

LA_ 04.04.2010 01:17

iDrive.com - как работает?
 
привет!
необходимо определить как работает стандартный тул idrive.com по backup'у файлов - по какому адресу соединяется, что и в каком формате передает и т.п. - хочу написать свой клиент вместо стандартного.
Как эти детали получить? HTTP Analyzer ver 3 почему-то запросы iDrive Backup Tool'a не перехватывает...

slesh 04.04.2010 12:06

ну так запусти обычный сниффер типа варишарка или комвью.

LA_ 05.04.2010 00:04

м-да, этими программами пакеты увидел.
их анализ показал (а потом и в справке это нашел), что
Цитата:

Your files and folders are transferred between the application and server using 128-bit SSL encryption
никогда с этим не сталкивался раньше.
есть ли смысл продолжать копать-разбираться? возможно ли в этом разобраться и повторить аналогичный функционал в своей программе?

lis84 05.04.2010 04:04

ИМХО, почему бы и нет.
Только анализом траффика ничего не добудешь, надо ковырять саму программу на предмет алгоритмов.

LA_ 05.04.2010 19:33

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

еще обнаружил интересную вещь - можно задавать свой ключ для криптования данных (только один раз при первом логине). только вот если я все правильно понял, то для расшифровки отправляемых данных нужно знать другой ключ. вопрос - можно ли задать какой-нибудь ключ таким образом, чтоб можно было узнать для расшифровки?

Malor1k 05.04.2010 23:54

Имхо. попытка не пытка

Hiro Protagonist 06.04.2010 07:29

2LA_
для ssl какую либу использует посмотри. Если чтото типа openssl или другой открытой то не проблема определить высокоуровневые функции в ктр данные уже в расшифрованном виде. Далее пиши перехватчик и снифай с помощью него. Если закрытые либы (что маловероятно), то реверс и тоже самое. Увидишь формат пакетов. Лучше всего отловить где происходит их парсинг и посмотреть все возможные варианты.
И почитай про SSL наконец =\

LA_ 06.04.2010 21:33

в сообщениях фигурирует openssl. и еще ssleay.
про SSL почитал ))

Цитата:

то не проблема определить высокоуровневые функции в ктр данные уже в расшифрованном виде
подскажите, плз, где можно почитать о том как это делается

LA_ 07.04.2010 22:52

правильно ли я понимаю принцип работы 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
расшифровать онлайн можно, например, тут

Hiro Protagonist 08.04.2010 01:00

берешь ман по openssl и смотришь как организуется отправка данных, функцию соответствующую перехватываещь, где в буфере будут данные.


Время: 14:12