Файл загруженного в браузер рисунка

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Файл загруженного в браузер рисунка

Сообщение euroflock » 02.05.2009 (Сб) 3:16

Подскажите пожалуйста, где находятся файлы рисунков, загруженных в данный момент на странице в браузере?

Ответ прост - в кэше интрнет эксплорера (если для навигации используется IE)...

В реестре я нашёл следующие ключи, ссылающиеся на реальные папки:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path3
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\path4

Однако имена реальных конечных папок, на которые указывают ключи реестра отличаются. Вот, например, первый ключ ..\path1 указывает на папку
C:\Documents and Settings\VLADIMIR\Local Settings\Temporary Internet Files\Content.IE5\Cache1, однако у меня на диске она называется не ..Content.IE5\Cache1, а Content.IE5\8LEJOLQV

Вопрос:
1. Какой командой можно получить реальный путь к папке кэша номер один, два, три и четыре (из реестра)?
(получив реальный путь я смогу осуществить поиск известного по имени (+[1] или +[2]) и расширению файла в каждой из папок)

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Файл загруженного в браузер рисунка

Сообщение euroflock » 02.05.2009 (Сб) 13:12

Вот таким способом я получаю часть реального пути:
Код: Выделить всё
Dim myInternetCachePath As String = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)


Так я получаю: C:\Documents and Settings\VLADIMIR\Local Settings\Temporary Internet Files, но пока не хватает оставшейся части: Content.IE5\8LEJOLQV

В начале файла C:\Documents and Settings\VLADIMIR\Local Settings\Temporary Internet Files\Content.IE5\index.dat описываются имена всех имеющихся папок... как эти имена получить?

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Файл загруженного в браузер рисунка

Сообщение euroflock » 02.05.2009 (Сб) 14:09

Вроде получилось:
Код: Выделить всё
Dim myInternetCachePath As String = Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)
Dim root As New DirectoryInfo(myInternetCachePath)
Dim main() As DirectoryInfo = root.GetDirectories
Dim temp() As DirectoryInfo = main(0).GetDirectories
Dim cache(temp.Count - 1) As String
For i = 0 To temp.Count - 1
     cache(i) = temp(i).FullName ' теперь в массиве cache(i) находятся полные пути всех папок кэша
Next

Затем, "просматривая" каждую имеющаюся папку, есть возможность найти загруженный в даный момент файл рисунка и получить его изображение в свой элемент управления без необходимости повторной загрузки (это наиболее актуально при работе с каптчами, каждая новая загрузка которых выдаёт новый рисунок).
Как получить файл рисунок рисунка каптча каптчи captcha без повторной загрузки прямо из кэша cache internet explorer (это для поиска)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Файл загруженного в браузер рисунка

Сообщение iGrok » 02.05.2009 (Сб) 15:39

Один вопрос. А каким образом ты собираешься выяснять, какой из всех index.htm[...] относится именно к данному сайту?
Может, лучше раскопать формат index.dat и работать с ним?
Вот с чего, к примеру, можно начать..
http://www.latenighthacking.com/project ... eIndexDat/
label:
cli
jmp label

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Файл загруженного в браузер рисунка

Сообщение euroflock » 02.05.2009 (Сб) 18:40

iGrok писал(а):Один вопрос. А каким образом ты собираешься выяснять, какой из всех index.htm[...] относится именно к данному сайту?


Ответ: никаким. Тема касается только файлов рисунков.

Замечание: эта система "не работает" с отображенными рисунками каптчей, созданных php-скриптами и имеющими расширение типа *.php (или другое, не имеющее отношение к расширениям рисунков).

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Файл загруженного в браузер рисунка

Сообщение iGrok » 02.05.2009 (Сб) 18:50

euroflock писал(а):
iGrok писал(а):Один вопрос. А каким образом ты собираешься выяснять, какой из всех index.htm[...] относится именно к данному сайту?


Ответ: никаким. Тема касается только файлов рисунков.

Хитро. Окей, перефразирую.

А каким образом ты собираешься выяснять, какой из всех picture[...].jpg относится именно к данному сайту?
label:
cli
jmp label

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Файл загруженного в браузер рисунка

Сообщение euroflock » 02.05.2009 (Сб) 20:47

iGrok писал(а):А каким образом ты собираешься выяснять, какой из всех picture[...].jpg относится именно к данному сайту?


Ответ: легко. Хранимые в кэше имена рисунков почти не подвергаются изменению относительно Image.nameProp, за исключением добавления индекса в квадратных скобках OriginalImageFileNameProp[x].extension (где x - это целое число, начиная от 1).

Всё-таки хотелось бы не отвечать самому на свою тему, но пока приходится. Имена рисунков, в отличие от оригинальных имёт html-файлов почти не меняются и с ними можно работать.

1. А каким образом можно получить файл рисунка (или его содержимое), загруженного и отображенного на странице в браузере, если он был загружен автоматом по запросу с параметром: Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0?. Если он на странице, то как минимум если его нет в кэше (а там его точно нет), он должен находиться в памяти или др. месте... откуда, как и чем его можно получить?

Дело в том, что с использованием локального прокси (для просмотра и отладки всех сетевых запросов использую бесплатный Fiddler Web Debugger v.2.2.2.0) явно вижу, что контент (содержимое) рисунка грузится, даже в самом отладчике просматривается в виде правильной картинки, а значит где-то всё-таки сохраняется...

2. В браузере программно мы легко можем получить указатель на загруженный рисунок в виде myImage As mshtml.IHTMLImgElement, также можем получить все доступные свойства данного рисунка. Есть ли возможность стандартными способами получить битовое содержимое этого рисунка (реальный контент)?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Файл загруженного в браузер рисунка

Сообщение iGrok » 02.05.2009 (Сб) 22:08

Насчёт легко. У меня в кэше есть два десятка разных картинок rss[1..2...].gif. Разных.

Далее.

1) Нигде они не должны сохраняться, кроме как в памяти. Когда ты юзаешь прокси, он может сам кешировать контент вне зависимости от "cache-control". Учитывая, что Fiddler - отладочный прокси, скорей всего так оно и есть.

2) Судя по гуглю - никак.

З.Ы. А я ведь говорил, что не надо велосипедов изобретать..
Зацени FindFirstUrlCacheEntry...

З.З.Ы.
Плюс где-то пока искал проскочила инфа, что браузер, несмотря на "cache-control", сохраняет в кэше ВСЕ картинки. Но те, для которых отключено кеширование не то удаляет при завершении работы, не то просто перечитывает, не обращая внимания на кэш..
Но инфа неподтверждённая, ибо высказывалась в виде предположения. Проверь.
label:
cli
jmp label

euroflock
Обычный пользователь
Обычный пользователь
 
Сообщения: 68
Зарегистрирован: 26.02.2009 (Чт) 12:54

Re: Файл загруженного в браузер рисунка

Сообщение euroflock » 03.05.2009 (Вс) 0:01

Загружаю полностью сайт с картинкой. Ищу поиском все изменнные в системе файлы за последние 3 минуты... ничего нет.

Вероятнее всего картинка хранятся в памяти. Как её оттуда достать (или хотябы убедиться, что она там есть)?


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 56

    TopList