Instagram. Кто тут.

Voldemar

Client
Регистрация
13.04.2014
Сообщения
478
Благодарностей
56
Баллы
28
Добрый вече, Коллеги!

Подскажите пожалуйста, кто в Instagrame работает или что-то делал? Что там актуально, боты для раскрутки страницы какие нибудь, я знаю что там политика более лояльная, чем где либо. С радостью посмотрел бы чьи нибудь работы или купил бы )
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
907
Благодарностей
178
Баллы
43
Интересует так же, пока нет времени разбиратся.
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 963
Благодарностей
796
Баллы
113
Ну а чего [SOLVED]-то? :( У меня тоже в планах написание/покупка шабов для Инстаграма. У них довольно своеобразный (чтобы не сказать: убогий) функционал, поэтому там линия раскрутки совсем другая, но никаких особых ракетных технологий там нет.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Префикс автоматом ставится сейчас при перемещении темы) Удалил его)
 

insideath

Client
Регистрация
18.05.2013
Сообщения
55
Благодарностей
25
Баллы
8
Для доступа к приватной API (для постинга, создание записей, и т.д.) нужен ключ, которым необходимо подписывать (HMAC SHA-256) фрагменты запросов. Сревёрсил jni библиотеку актуальной версии android приложения. На текущий момент пишу библиотеку и шаблон для ZP. Если спрос есть/будет, продам наработки или пожертвую проекту Z-Social.
 

Voldemar

Client
Регистрация
13.04.2014
Сообщения
478
Благодарностей
56
Баллы
28
Для доступа к приватной API (для постинга, создание записей, и т.д.) нужен ключ, которым необходимо подписывать (HMAC SHA-256) фрагменты запросов. Сревёрсил jni библиотеку актуальной версии android приложения. На текущий момент пишу библиотеку и шаблон для ZP. Если спрос есть/будет, продам наработки или пожертвую проекту Z-Social.
напишите мне пожалуйста по любы контактам. Скайп предпочтительней. Хотелось посмотреть, что у Вас есть и чем мы можем быть друг другу полезны)
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
Сревёрсил jni библиотеку актуальной версии android приложения.
Эти чтоли?
libcryptox.so
libscrambler.so
А нельзя ли их втупую подргузить в джавапроект? Я понимаю что они native, но мало ли.
Регануться получилось?
 

insideath

Client
Регистрация
18.05.2013
Сообщения
55
Благодарностей
25
Баллы
8
Эти чтоли?
libcryptox.so
libscrambler.so
А нельзя ли их втупую подргузить в джавапроект? Я понимаю что они native, но мало ли.
Разница архитектуры. Они под armeabi-v7a. Как минимум, будь оно иначе, можно было бы воспользоваться ikvm или jni4net.

Регануться получилось?
Да.

Вкратце о поведении самого приложения при регистрации (без приведения фрагментов dalvik опкодов, чисто по делу):

1. Делает GET запрос к "https://i.instagram.com/api/v1/fetch_headers/" с передачей параметров: guid (значение: вызов метода getCallingUid класса Binder ("android.os.Binder") - "ret Linux uid assigned to the process" - Ex. "6f4a7d9816634800b82efc91d568c424") и challenge_type (значение: (в данном случае) "signup").

Минимальные заголовки успешного запроса:

UserAgent:Instagram 6.12.2 Android (18/4.3; 480dpi; 540x960; motorola/verizon; en_US)
X-IG-Connection-Type:WIFI
X-IG-Capabilities:AQ==
Cookie2:$Version=1
[TBODY] [/TBODY]

2. Сервер возвращает ответ с установкой след. Cookie:
  • csrftoken, (Ex. bffd7312e31708ec642f49faebfc9d21)
  • mid, (Ex. VJl4mAABAAHwq7jQ0LsRe08aoBgw)
  • ccode (Ex. RU)

Нас интересует csrftoken. Он используется при подписывании запроса (и регенерируется при каждом запросе на регистрацию (действие)). Тело самих запросов к приватной API формируется в формате JSON и отправляется POST методом (типа "application/x-www-form-urlencoded") на спец. эндпоинты (Ex. "/api/v1/users/check_username/").

Как выглядит тело подписанных запросов:

Код:
signed_body=e15c9c9303092a0f8fee0eb1dcca6954440909fda1215f1563521638e98ac4e1.%7B%22username%22%3A%22SomeGuyFromZennoLab%22%2C%22_csrftoken%22%3A%22bffd7312e31708ec642f49faebfc9d21%22%7D&ig_sig_key_version=4
или

Код:
signed_body=e15c9c9303092a0f8fee0eb1dcca6954440909fda1215f1563521638e98ac4e1.{"username":"SomeGuyFromZennoLab","_csrftoken":"bffd7312e31708ec642f49faebfc9d21"}
или

Код:
signed_body={SIGNED_JSON_POST_DATA}.{URLENCODED JSON_POST_DATA}&ig_sig_key_version=4
{SIGNED_JSON_POST_DATA} здесь - результат работы native метода getSignatureString jni библиотеки libstrings.so (с основными зависимостями к libscrambler.so и libcryptox.so (диаграмму вызовов прикреплять не буду - интересующиеся сами разберутся, все прекрасно отлаживается с помощью gdbserver'а..:-) )).

На заметку о зависимостях:
libcryptox - это библиотека в составе пакета openssl
(http://wiki.openssl.org/index.php/Libcrypto_API)
libscrambler - "солит нам на "рану" "

Для тех, кому интересно, что приблизительно происходит внутри вызываемого метода, могут начать собственный анализ с помощью IDA Pro:

 
Последнее редактирование:

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
ну все теперь держись инстаграм. Не думаю что стоит дарить такое. Замутите платный сервис типа грамблера и выдавайте только crf и что там еще... ну вы знаете.
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
И в правду. Не выкладывайте!!! Потерпите когда следующий конкурс выйдет. Я выложу его :D:D:D:D
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
А еще лучше пусть Lexx платный шаблон сделает.
 

insideath

Client
Регистрация
18.05.2013
Сообщения
55
Благодарностей
25
Баллы
8
Обновил пост. Удачной охоты! ;-)
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
o_Oнэт слов

зы:
реверсный инжениринг классная тема, но я пока что больше склоняюсь к конструктивным проектам, которые не ломают а что-то создают
наверно каждый должен заниматься своим делом или тем что лучше у него получается.
пока что свет клином не сошелся на инстаграме и на горизонте рдеют другие приложения...
вот так выглядит финальный запрос для регистрации через androvm

POST https://i.instagram.com/api/v1/accounts/create/ HTTP/1.1
Content-Length: 411
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Host: i.instagram.com
Connection: Keep-Alive
User-Agent: Instagram 6.3.1 Android (16/4.1.1; 120dpi; 240x320; unknown/generic; androVM for VirtualBox ('Phone' version); vbox86p; vbox86; en_US)
Cookie: ccode=UA; csrftoken=7977b47091e192752b8e16425f405cf4; mid=U-tiuQABAAGyFQLZEg6cLH01iEZk
Cookie2: $Version=1
Accept-Language: en-US
X-IG-Connection-Type: WIFI
Accept-Encoding: gzip

signed_body=78d041ca134effa15210a26eefb7e83893a0bc3401000b148c72939a456ee9b5.%7B%22_csrftoken%22%3A%227977b47091e192752b8e16425f405cf4%22%2C%22first_name%22%3A%22%22%2C%22username%22%3A%22vasjaalohp%22%2C%22email%22%3A%22vasyapetoch%40mail.ru%22%2C%22guid%22%3A%2249ca8740-e663-4ebe-bdd2-70442369f3ce%22%2C%22password%22%3A%2243as0df%22%2C%22device_id%22%3A%22android-e698bb41733d497a%22%7D&ig_sig_key_version=4





HTTP/1.1 200 OK
Server: nginx
Date: Wed, 13 Aug 2014 13:09:25 GMT
Content-Type: application/json
Content-Language: en
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Vary: Cookie, Accept-Language, Accept-Encoding
Pragma: no-cache
Cache-Control: private, no-cache, no-store, must-revalidate
Set-Cookie: csrftoken=7977b47091e192752b8e16425f405cf4; expires=Wed, 12-Aug-2015 13:09:25 GMT; Max-Age=31449600; Path=/
Set-Cookie: sessionid=IGSCdd2c38f83c7422bc97795f3c91a17ad46fbed4367169a013b657c615558f9368%3AUyEf4FBb9K7IhOPPWakkR6CDnz74XScL%3A%7B%22_auth_user_id%22%3A1460746595%2C%22_token%22%3A%221460746595%3As4Cgj3tfrNlNRylDu29otcCW1jbQXwnc%3A5db2960e57d527671c23987531b59091ac7857d7de825ed4e8769b3ceb6858a7%22%2C%22_auth_user_backend%22%3A%22accounts.backends.CaseInsensitiveModelBackend%22%2C%22last_refreshed%22%3A1407935365.499246%2C%22_tl%22%3A1%2C%22_platform%22%3A1%7D; expires=Tue, 11-Nov-2014 13:09:25 GMT; Max-Age=7776000; Path=/;HttpOnly
Set-Cookie: ds_user_id=1460746595; expires=Tue, 11-Nov-2014 13:09:25 GMT; Max-Age=7776000; Path=/
Connection: keep-alive
Content-Length: 211

{"status":"ok","created_user":{"username":"vasjaalohp","pk":1460746595,"profile_pic_url":"http:\/\/images.ak.instagram.com\/profiles\/anonymousUser.jpg","is_private":false,"full_name":""},"account_created":true}
 
Последнее редактирование:
  • Спасибо
Реакции: Radzhab

mobgen

Новичок
Регистрация
02.05.2015
Сообщения
1
Благодарностей
0
Баллы
1
Для доступа к приватной API (для постинга, создание записей, и т.д.) нужен ключ, которым необходимо подписывать (HMAC SHA-256) фрагменты запросов. Сревёрсил jni библиотеку актуальной версии android приложения. На текущий момент пишу библиотеку и шаблон для ZP. Если спрос есть/будет, продам наработки или пожертвую проекту Z-Social.
Здравствуйте, напишите, пожалуйста, на почту [email protected] или в теме - как с Вами удобнее всего связаться.
Есть большой интерес к Вашим наработкам.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 512
Благодарностей
990
Баллы
113
Может топик в приват тоже перетащить? :-)
Чем с авитой закончилось все помнят )
 

insideath

Client
Регистрация
18.05.2013
Сообщения
55
Благодарностей
25
Баллы
8
Да, лучше в приват. В раздел для клиентов как минимум. Информацию уже частично обнародовали в одном из блогов, где описали процесс извлечения ключа под "конкретные" запросы к сервису. Благо, далеко не универсальное решение. Хотя реакция со стороны разработчиков уже последовала, а усложнять они хорошо умеют.
 

Tuw

Client
Регистрация
07.09.2014
Сообщения
441
Благодарностей
150
Баллы
43
Просто читал где-то на днях. Какой то чел выложил скрипт регистрации акков твиттера по апи, так кто-то нарегил через него 15млн акков за 2 дня, и твиттер сделал ограничение по апи
 
  • Спасибо
Реакции: insideath

insideath

Client
Регистрация
18.05.2013
Сообщения
55
Благодарностей
25
Баллы
8
Так оно обычно и бывает, ты прав. Один слив подразумевает последствия в виде кардиальной смены/усложнения алгоритмов на стороне сервиса. Тот, кто пишет "скрипт", на мой взгляд, обязан заботиться о том, что его использование будет максимально прозрачным для сервиса, т.е. соблюдение всех условий, при которых любой единичный запрос будет в максимальной степени эквивалентен "официальному". В том числе, и в их последовательности.
 
  • Спасибо
Реакции: phirelli и Radzhab

amygreen

Новичок
Регистрация
15.09.2015
Сообщения
1
Благодарностей
0
Баллы
1
Народ, нужна помощь!!!
Мне хотелось бы узнать, как можно залогиниться, и отправить фотку с описанием в инстаграм, эмулируя android приложение выше 5 версии. Точнее интересно по каким адресам и какие данные отсылаются.

Пробовал поймать данные через Wireshark, но начиная с 5 версии instagram я ничего нормального не нашёл в перехваченных данных.

Выставляя в useragent instagram 4 версию удавалось залогиниться и отправить фото, но последнее время отправляться стало далеко не всегда.

Кто может, скиньте данные на [email protected]. Спасибо!
 

IgorMoskov

Новичок
Регистрация
04.02.2016
Сообщения
6
Благодарностей
0
Баллы
1
Для тех, кому интересно, что приблизительно происходит внутри вызываемого метода, могут начать собственный анализ с помощью IDA Pro:
Сам который день пытаюсь вытащить ключ подписи из приложения.

В сети нашел пять работающих ключей, причем один из них работает для всех 4 и 5 выерсий. Начиная с 6й ключ работает только в рамках одной версии.

Декомпилировал само приложение, расставил во многих местах логирование, но ключ в открытом виде нигде не ходит, он насколько я понял формируется внутри нативной функции getSignatureString в библиотеке libstring.so.
Следующим шагом установил IDA Pro, дизассемблировал либу и теперь разбираюсь как вызвать из нее нужную нам функцию и расставит внутри нее брэйкпойнты.
Кто-нибудь может в этом помочь? Не бесплатно) пишите на [email protected]
 

IgorMoskov

Новичок
Регистрация
04.02.2016
Сообщения
6
Благодарностей
0
Баллы
1
Народ, нужна помощь!!!
Мне хотелось бы узнать, как можно залогиниться, и отправить фотку с описанием в инстаграм, эмулируя android приложение выше 5 версии. Точнее интересно по каким адресам и какие данные отсылаются.

Пробовал поймать данные через Wireshark, но начиная с 5 версии instagram я ничего нормального не нашёл в перехваченных данных.

Выставляя в useragent instagram 4 версию удавалось залогиниться и отправить фото, но последнее время отправляться стало далеко не всегда.

Кто может, скиньте данные на [email protected]. Спасибо!

В wireshark вы сможете увидеть только незашифрованные запросы, передаваемые по протоколу http.
Но даже если удастся расшифровать https, ключ подписи в них вы не найдете, увидите только саму подпись, подпись - хэш от списка передаваемых параметров и ключа подписи
 

konfuciy

Client
Регистрация
07.05.2014
Сообщения
1 402
Благодарностей
131
Баллы
63

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 530
Благодарностей
893
Баллы
113
какой скрипт?
 

patlat

Client
Регистрация
21.09.2016
Сообщения
175
Благодарностей
47
Баллы
28
Нас интересует csrftoken. Он используется при подписывании запроса (и регенерируется при каждом запросе на регистрацию (действие)).
есть одно но., данный токен, в процессе регистрации, один раз меняет значение, а это очень существенно)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)