Чтение, удаление cookie

Тема в разделе "WASM.BEGINNERS", создана пользователем core, 6 авг 2007.

  1. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    Нужно считать куки с помощью InternetGetCookie, что не так(можно на примере wasm.ru).
    Если кто знает как очистить cash Internet Explorer, или удалить отдельный куки из него, то было бы неплохо, если бы вы пролили свет(удаление файлов не предлагать, это не гарантирует ничего). Речь идёт о файле: index.dat, который нужно очистить, или изменить.
    Впинципе второе не критично, но всё-же весьма желательно.

    .486
    .model flat, stdcall
    option casemap: none

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\wininet.inc
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\wininet.lib

    .data
    _cookie_site db "http://rambler.ru", 0

    .data?
    _cookie dd 500 DUP (?)

    .code
    start:

    ;Чтение куки
    invoke InternetGetCookie, addr _cookie_site, NULL, _cookie, NULL
    invoke MessageBox, NULL, addr _cookie, NULL, MB_OK
    .IF _cookie == NULL
    invoke ExitProcess, 0
    .ENDIF

    end start
     
  2. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    Информация из MSDN:

     
  3. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    Ищи на форуме - это точно было (ну или на крайний случай в google).
    1. FindFirstUrlCacheEntry, FindNextUrlCacheEntry, DeleteUrlCacheEntry.
    2. Вызывая с разными типами чистим нужные места.. (visited: - хистори, cookie: - куки, NULL - тэмпорари инет файлз).
     
  4. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    Искал на форуме, в google.ru, yandex.ru, rambler.ru, пока безрезультатно. Второе попробую.
     
  5. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    Вот моя чистилка history для IE там все написано что делать...
     
  6. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    На C++, это хорошо, но мне нужно всего-лишь очистить куки на асме. С этим вопросом я думаю справлюсь сам, гораздо актуальнее первый вопрос, просмотрел все сайты, даже китайские и японские, реальных примеров увидел несколько и все не работают при переводе на ассемблер. Один на C#(sharp), но он никакущий, притом одно и тоже что на наших, что на японских/китайских сайтах. Второй вот:
    http://www.vba-programmer.com/Snippets/Code_VB/Creating_and_Reading_Cookies.html

    Как правильно перевести на асм, у меня он либо вообще вылетает с ошибкой, либо ничего ни читает. Есть специалисты, или тема не найдёт решения, как на многих других форумах?
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Честно говоря, не понял, какая разница, асм или си? Код в любом случае будет ассемблерный. Компилируй исходник c++ и загоняй его в Olly, а в Olly получишь чистейший асм-код. Или компилируй c++ код с соответствующим ключом, который кроме самой компиляции позволяет получить ассемблерный листинг. Какой ключ не помню, посмотри в опциях компилятора
     
  8. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    Разница есть, но эта проблема уже решена, а проблему 1 никак решить не могу.
    То что я показал - это для наглядности, за этим стоит большой листинг, так всё просто только потому что, я хочу чтобы мне помогли.

    Но слишком длинный и неудобочитаемый код, я предпочитаю более короткий вариант.

    Проблема 1 актуальна. Кто может показать использование InternetGetCookie, на примере чтения cookie wasm.ru/forum ?
     
  9. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    Смотрел на Aport.ru, www.altavista.com, тоже самое, почему-то на всех форумах шарахаються от этой темы, неужели никто не знает?
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Код (Text):
    1.             .data
    2.                 host            db  "http://www.wasm.ru",0
    3.                 cookie_name     db  "wasmbb_cookie",0
    4.                 CookieData      db 256 dup(0)
    5.                 cookie_size     dd 256
    6.             .code
    7.             invoke InternetGetCookie, addr host, addr cookie_name, addr CookieData, addr cookie_size
    8.             PrintDec eax
    9.             PrintString CookieData
    10.             PrintDec cookie_size
    Вместо addr cookie_name можно просто NULL, все равно в буфере буде имя куки и содержимое в виде:
    CookieData = wasmbb_cookie=<тут тело кука>

    В твоем примере последний параметр был NULL, чего быть не должно.
     
  11. core

    core New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2007
    Сообщения:
    24
    Код (Text):
    1.   host  db  "http://www.wasm.ru", 0
    ERROR_NO_MORE_ITEMS - нет cookie для указанного URL и его родителей.

    Рабочий код (rambler.ru):
    Код (Text):
    1. .486
    2. .model flat, stdcall
    3. option casemap: none
    4.  
    5. include \masm32\include\windows.inc
    6. include \masm32\include\user32.inc
    7. include \masm32\include\kernel32.inc
    8. include \masm32\include\wininet.inc  
    9. includelib \masm32\lib\user32.lib
    10. includelib \masm32\lib\kernel32.lib
    11. includelib \masm32\lib\wininet.lib
    12.  
    13. .data
    14. _cookie_site db "http://rambler.ru", 0
    15. _cookiesize dd 256
    16.  
    17. .data?
    18. _cookiedata dd 256 DUP(?)
    19.  
    20. .code
    21. start:
    22.  
    23.           ;Чтение куки
    24.           invoke InternetGetCookie, addr _cookie_site,  NULL, addr _cookiedata, addr _cookiesize
    25.           invoke MessageBox, NULL, addr _cookiedata, NULL, MB_OK
    26.           invoke ExitProcess, 0
    27.                    
    28. end start
    cresta, Stub - спасибо, работает.