Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30

Получить cookies из браузера: перевести код с JS

12.10.2012, 22:52. Показов 1727. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь реализовать код приведенный ниже на языке С++
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pkcs1pad2: function($data, $keysize) {
        if($keysize < $data.length + 11)
            return null;
        var $buffer = [];
        var $i = $data.length - 1;
        while($i >= 0 && $keysize > 0)
            $buffer[--$keysize] = $data.charCodeAt($i--);
        $buffer[--$keysize] = 0;
        while($keysize > 2)
            $buffer[--$keysize] = Math.floor(Math.random()*254) + 1;
        $buffer[--$keysize] = 2;
        $buffer[--$keysize] = 0;
        return new BigInteger($buffer);
    }
Из темы Получить cookies из браузера

Такой вопрос что означает строчка:
JavaScript
1
var $buffer = [];
И каков её тут смыл?

Похоже на массив символов... но не уверен...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2012, 22:52
Ответы с готовыми решениями:

Получить cookies из браузера
В общем надо Получить cookies из браузера который на форме или CppWebBrowser или другой не знаю какой лучше использовать... Мне надо в...

Как получить cookies для определенного сайта из браузера Google Chrome?
Здравствуйте. Суть вопроса такова: нужно получить cookies для определенного сайта из браузера Google Chrome посредством JavaScipt. Нужно...

Cookies и эмуляция браузера
Здравствуйте, пытаюсь отправлять пост-запрос на сервер. Пост отправляется, но хотелось бы узнать, во-первых, как получать cookie и...

4
 Аватар для Freeden
107 / 104 / 34
Регистрация: 25.04.2012
Сообщений: 242
13.10.2012, 01:33
Похоже на массив символов.
Да это массив, который изначально пуст, затем в него добавляются символы из строки data (первый while), но признаюсь, вторую часть конструкции while не поняла ((
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.10.2012, 01:39  [ТС]
Да уже нашел в учебнике по js.

Вторая часть заполнение рандомными символами фиг знает зачем.

А затем буфер преобразовывается к "большому числу" - в этом щас и загвоздка...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.10.2012, 21:36  [ТС]
JavaScript
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
function OnRSAKeyResponse( transport )
{
    var results = transport.responseJSON;
    if ( results.publickey_mod && results.publickey_exp && results.timestamp )
    {
        var form = document.forms['logon'];
 
        var pubKey = RSA.getPublicKey( results.publickey_mod, results.publickey_exp );
        var encryptedPassword = RSA.encrypt( form.elements['password'].value, pubKey );
        new Ajax.Request( 'https://store.steampowered.com:443/login/dologin/',
        {
            method: 'post',
            parameters: {
                username: form.elements['username'].value,
                password: encryptedPassword,
                emailauth: form.elements['emailauth'].value,
                captchagid: form.elements['captchagid'].value,
                captcha_text: form.elements['captcha_text'].value,
                emailsteamid: form.elements['emailsteamid'].value,
                rsatimestamp: results.timestamp,
                remember_login: form.elements['remember_login'] && form.elements['remember_login'].checked
            },
            onSuccess: OnLoginResponse,
            onException: function( req, e ) { throw e; }
        }
        );
    }
    else //...
Решил проблему с RSA шифрованием пароля дошел до ф-ции OnLoginResponse()

Выполнил запрос, получил JSON- ответ

JavaScript
1
{"success":true,"login_complete":true,"transfer_url":"https:\/\/steamcommunity.com\/login\/transfer","transfer_parameters":{"steamid":"76561198073193161","token":"D0B4D598C09DB85C27D174D1ADDB73592078C310","remember_login":false}}

Просмотреть код OnLoginResponse()
JavaScript
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
function OnLoginResponse( transport )
{
    var results = transport.responseJSON;
    g_bLoginInFlight = false;
    var bRetry = true;
    
    if ( results.login_complete )
    {
        var bRunningTransfer = false;
        if ( results.transfer_url && results.transfer_parameters )
        {
            bRunningTransfer = true;
            TransferLogin( results.transfer_url, results.transfer_parameters );
        }
        
        if ( g_bInEmailAuthProcess )
        {
            g_bEmailAuthSuccessful = true;
            SetEmailAuthModalState( 'success' );
        }
        else
        {
            bRetry = false;
            if ( !bRunningTransfer )
                LoginComplete();
        }
    }
    else
    {
        if ( results.captcha_needed && results.captcha_gid )
        {
            UpdateCaptcha( results.captcha_gid );
        }
        else if ( results.emailauth_needed )
        {
            if ( results.emaildomain )
                $('emailauth_entercode_emaildomain').update( results.emaildomain );
            
            if ( results.emailsteamid )
                $('emailsteamid').value = results.emailsteamid;
            
            if ( !g_bInEmailAuthProcess )
                StartEmailAuthProcess();
            else
                SetEmailAuthModalState( 'incorrectcode' );
        }
        else if ( results.denied_ipt )
        {
            $('loginIPTModal').OnModalDismissal = ClearLoginForm;
            showModal( 'loginIPTModal' );
        }
        
        if ( results.message )
        {
            HighlightFailure( results.message );
        }
    }
    if ( bRetry )
    {
        $('login_btn_signin').show();
        $('login_btn_wait').hide();
    }
}


Она вызывает:

JavaScript
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
function TransferLogin( url, parameters)
{
    if ( g_bLoginTransferInProgress )
        return;
    g_bLoginTransferInProgress = true;
    
    var iframe = new Element( 'iframe', {id: 'transfer_iframe' } );
    iframe.hide();
    $(document.body).appendChild( iframe );
    
    var doc = iframe.contentWindow.document;
    doc.open();
    doc.write( '<form method="POST" action="' + url + '" name="transfer_form">' );
    for ( var param in parameters )
    {
        doc.write( '<input type="hidden" name="' + param + '" value="' + parameters[param] + '">' );
    }
    doc.write( '</form>' );
    doc.write( '<script>window.onload = function(){ document.forms["transfer_form"].submit(); }</script>' );
    doc.close();
    
    // firefox fires the onload event twice
    var cLoadCount = Prototype.Browser.Gecko ? 2 : 1;
    
    Event.observe( iframe, 'load', function( event ) { if ( --cLoadCount == 0 ) OnTransferComplete() } );
    Event.observe( iframe, 'error', function( event ) { OnTransferComplete(); } );
    
    // after 10 seconds, give up on waiting for transfer
    window.setTimeout( OnTransferComplete, 10000 );
}
 
function OnTransferComplete()
{
    if ( !g_bLoginTransferInProgress )
        return;
    g_bLoginTransferInProgress = false;
    if ( !g_bInEmailAuthProcess )
        LoginComplete();
    else if ( g_bEmailAuthSuccessfulWantToLeave )
        LoginComplete();
}
 
function LoginComplete()
{
    if ( $('openidForm') )
        $('openidForm').submit();
    else
        window.location = document.forms['logon'].elements['redir'].value;
}
И тут не понятно что делают эти три ф-ции и куда копать ...

Если смотреть по сниферу следующим выполняется:

POST /login/transfer, с параметрами
steamid=76561198073193161&token=D0B4D598 C09DB85C27D174D1ADDB73592078C310&remembe r_login=false

Но если воспроизвести этот POST то то сервер закрывает сессию и авторизация не происходит дальнейший переход по сайту идет как гость. Искал в js что-то что соответствовало бы этому посту не нашел...

В этом сообщении выложены js -скрипты https://www.cyberforum.ru/post3574827.html
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
27.10.2012, 23:25  [ТС]
Нашел ошибку- была в другом месте, вопрос снят ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2012, 23:25
Помогаю со студенческими работами здесь

Удалить cookies запущенного браузера
Доброго времени суток, форумчане. Возможно ли сделать так, чтобы куки запущенного браузера были удалены программно? подскажите хотя бы...

Не сохраняются Cookies после закрытия браузера
По умолчанию cookies должны сохранятся на клиенте, но у меня почему они не сохраняются после закрытия брайузера? Так и должно быть или я...

Перевести код с C# - получить список файлов, перетащенных в окно программы
вод код string FileArr=(string)E.Data.GetData(DataFormats.FileDrop,false) где E это System.Windows.Forms.DragEventArgs

Получить все простые делители данного натурального числа - перевести код с паскаля на php
function simple (n:integer):boolean; var i:integer; begin simple:=true; for i:=2 to round(sqrt(n)) do if n mod i=0 then begin ...

Получить значение Cookies
Вообщем такая ситуация. Мне нужно получить значения Cookies которые устанавливаются на сайте www.avito.ru. Но получить их почему то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru