Как програмно удалить следы "бродения" по инету?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zzu
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 27.03.2002 (Ср) 2:03
Откуда: Ukraine

Как програмно удалить следы "бродения" по инету?

Сообщение zzu » 17.09.2004 (Пт) 0:37

Сабж.

1. Удалить cookies
c:\windows\cookies
or
c:\documents&settings\ThisProfile\cookies
2.Удалить Temporary Internet files там же
3. удалить каталог history там же

Достаточно ли этих действий, чтоб очистить адресную строку браузера (IE), все кукисы, журнал? или еще что-то надо вчистить?
В частности интересует файл index.dat
zzu

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.09.2004 (Пт) 0:45

ага ... ещё надо проверить настройки браузера в реестре:)
А то вдруг твои "следы" родители или что хуже любимая девушка увидит.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 17.09.2004 (Пт) 2:34

А вот с реестром вообще интересно!!!

Я ради интереса поискал REGEDIT-ом строку "http://www.vbstreets.ru" И получил: Четыре вхождения:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
HKEY_USERS\S-1-5-21-164…239-152049171-1060284298-1003\Software\Microsoft\Internet Explorer\TypedURLs
HKEY_USERS\S-1-5-2…9-152049171-1060284298-1003\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

А еще есть резервные файлы реестра, да и отката системы вцелом. Так что, если полетит Винда и захочет востановить свое предыдущее работоспособное состояние, то тут возможно и вскроются маленькие секреты.
И похоже програмно удалить некоторые файлы ВИНДА не даст.
-----
Просто лазить надо так, чтобы потом ничего не прятать.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.09.2004 (Пт) 9:22

Лучше используй специальный софт, типа Steganos.
Lasciate ogni speranza, voi ch'entrate.

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 17.09.2004 (Пт) 19:32

А ещё проще Оперу запоролить или НетШкаф.
Press any key . . .

zzu
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 27.03.2002 (Ср) 2:03
Откуда: Ukraine

Сообщение zzu » 17.09.2004 (Пт) 20:45

SSecurity писал(а):ага ... ещё надо проверить настройки браузера в реестре:)
А то вдруг твои "следы" родители или что хуже любимая девушка увидит.


Я не о том :)

Мне надо прогу написать, которая бы это все тёрла..."просто запаролить" мне тоже не подходит: это должно быть сделано на нескольких компах, мне даже не известно на скольких...

Вобщем, попросили написать такое, вот я и интересуюсь, как лучше сделать чтоб ничего не упустить из виду...

...может кто-то сможет помочь дельным советом....
zzu

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 17.09.2004 (Пт) 20:51

Перечисление и удаление кэша Internet Explorer:

Код: Выделить всё
'Этот проект требует форму со списком (List1)
'и модуль класса (MemoryBlock)

'В модуле формы:
Option Explicit
Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type INTERNET_CACHE_ENTRY_INFO
    dwStructSize As Long
    lpszSourceUrlName As Long
    lpszLocalFileName As Long
    CacheEntryType As Long
    dwUseCount As Long
    dwHitRate As Long
    dwSizeLow As Long
    dwSizeHigh As Long
    LastModifiedTime As FILETIME
    ExpireTime As FILETIME
    LastAccessTime As FILETIME
    LastSyncTime As FILETIME
    lpHeaderInfo As Long
    dwHeaderInfoSize As Long
    lpszFileExtension As Long
    dwReserved As Long
    dwExemptDelta As Long
    'szRestOfData() As Byte
End Type
Private Declare Function FindFirstUrlCacheEntry Lib "wininet.dll" Alias "FindFirstUrlCacheEntryA" (ByVal lpszUrlSearchPattern As String, ByVal lpFirstCacheEntryInfo As Long, ByRef lpdwFirstCacheEntryInfoBufferSize As Long) As Long
Private Declare Function FindNextUrlCacheEntry Lib "wininet.dll" Alias "FindNextUrlCacheEntryA" (ByVal hEnumHandle As Long, ByVal lpNextCacheEntryInfo As Long, ByRef lpdwNextCacheEntryInfoBufferSize As Long) As Long
Private Declare Sub FindCloseUrlCache Lib "wininet.dll" (ByVal hEnumHandle As Long)
Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim ICEI As INTERNET_CACHE_ENTRY_INFO, Ret As Long
    Dim hEntry As Long, Msg As VbMsgBoxResult
    Dim MemBlock As New MemoryBlock
    'Начало перечисления URL из кэша
    FindFirstUrlCacheEntry vbNullString, ByVal 0&, Ret
    'Если возвращенное значение больше 0...
    If Ret > 0 Then
        '... выделить буфер
        MemBlock.Allocate Ret
        'найти первый элемент
        hEntry = FindFirstUrlCacheEntry(vbNullString, MemBlock.Handle, Ret)
        'скопировать из структуры
        MemBlock.ReadFrom VarPtr(ICEI), LenB(ICEI)
        'добавить название в список
        If ICEI.lpszSourceUrlName <> 0 Then _
        List1.AddItem MemBlock.ExtractString( _
        ICEI.lpszSourceUrlName, Ret)
    End If
    'Пока не закончатся все элементы
    Do While hEntry <> 0
        'Обнулить результат
        Ret = 0
        'Найти следующий элемент
        FindNextUrlCacheEntry hEntry, ByVal 0&, Ret
        'Выделение буфера...
        If Ret > 0 Then
            '... да!
            MemBlock.Allocate Ret
            'Получим следующий элемент
            FindNextUrlCacheEntry hEntry, MemBlock.Handle, Ret
            'скопируем
            MemBlock.ReadFrom VarPtr(ICEI), LenB(ICEI)
            'и добавим в список
            If ICEI.lpszSourceUrlName <> 0 Then _
            List1.AddItem MemBlock.ExtractString( _
            ICEI.lpszSourceUrlName, Ret)
        'Больше нет элементов
        Else
            Exit Do
        End If
    Loop
    'Закрыть дескрипторы
    FindCloseUrlCache hEntry
    'Удалить блок памяти (физической :)
    Set MemBlock = Nothing
    Msg = MsgBox("Удалить кэш?", vbYesNo + _
    vbDefaultButton2 + vbQuestion)
    If Msg = vbYes Then
        'пробежаться через элементы...
        For Ret = 0 To List1.ListCount - 1
            '...и удалить их
            DeleteUrlCacheEntry List1.List(Ret)
        Next Ret
        MsgBox "Кэш очищен успешно..."
    End If
End Sub

'В модуле класса 'MemoryBlock':
Option Explicit
Private Const MEM_DECOMMIT = &H4000
Private Const MEM_RELEASE = &H8000
Private Const MEM_COMMIT = &H1000
Private Const MEM_RESERVE = &H2000
Private Const MEM_RESET = &H80000
Private Const MEM_TOP_DOWN = &H100000
Private Const PAGE_READONLY = &H2
Private Const PAGE_READWRITE = &H4
Private Const PAGE_EXECUTE = &H10
Private Const PAGE_EXECUTE_READ = &H20
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Const PAGE_GUARD = &H100
Private Const PAGE_NOACCESS = &H1
Private Const PAGE_NOCACHE = &H200
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal pDest As Long, ByVal pSrc As Long, ByVal ByteLen As Long)
Private Declare Function VirtualAlloc Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function VirtualLock Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long) As Long
Private Declare Function VirtualUnlock Lib "kernel32" (ByVal lpAddress As Long, ByVal dwSize As Long) As Long
Private Declare Function IsBadReadPtr Lib "kernel32" (ByVal lp As Long, ByVal ucb As Long) As Long
Private Declare Function IsBadWritePtr Lib "kernel32" (ByVal lp As Long, ByVal ucb As Long) As Long
Private Declare Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As Long, ByVal ucchMax As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpStringDest As String, ByVal lpStringSrc As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long
Private m_VirtualMem As Long, lLength As Long
'Returns the handle of the allocated memory
Public Property Get Handle() As Long
    Handle = m_VirtualMem
End Property

Public Sub Allocate(lCount As Long)
    ReleaseMemory
    m_VirtualMem = VirtualAlloc(ByVal 0&, lCount, MEM_COMMIT, PAGE_EXECUTE_READWRITE)
    VirtualLock m_VirtualMem, lCount
End Sub

Public Sub ReadFrom(hWritePointer As Long, lLength As Long)
    If IsBadWritePtr(hWritePointer, lLength) = 0 And IsBadReadPtr(Handle, lLength) = 0 Then
        CopyMemory hWritePointer, Handle, lLength
    End If
End Sub

Public Sub WriteTo(hReadPointer As Long, lLength As Long)
    If IsBadReadPtr(hReadPointer, lLength) = 0 And IsBadWritePtr(Handle, lLength) = 0 Then
        CopyMemory Handle, hReadPointer, lLength
    End If
End Sub

Public Function ExtractString(hStartPointer As Long, lMax As Long) As String
    Dim Length As Long
    If IsBadStringPtr(hStartPointer, lMax) = 0 Then
        ExtractString = Space(lMax)
        lstrcpy ExtractString, hStartPointer
        Length = lstrlen(hStartPointer)
        If Length >= 0 Then ExtractString = Left$(ExtractString, Length)
    End If
End Function

Public Sub ReleaseMemory()
    If m_VirtualMem <> 0 Then
        VirtualUnlock m_VirtualMem, lLength
        VirtualFree m_VirtualMem, lLength, MEM_DECOMMIT
        VirtualFree m_VirtualMem, 0, MEM_RELEASE
        m_VirtualMem = 0
    End If
End Sub

Private Sub Class_Terminate()
    ReleaseMemory
End Sub
Моду создают модоки, а распространяют модозвоны.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 2

    TopList