WinInet.. поиск файлов на FTP

Discussion in 'Реверсинг' started by gevara, 14 Mar 2007.

  1. gevara

    gevara Elder - Старейшина

    Joined:
    29 Nov 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    5
    необходимо организовать поиск файлов на ФТП сервере (по всем вложенным папкам). есть функции FtpFindFirstFile InternetFindNextFile. проблемма слежующая:
    с одного коннекта можно создать только один хендл поиска.. но при рекурсивном поиске, при каждом углублении в директорию необходимо начинать новай поиск. так что, создавать новый коннект??? или есть другой способ поиска файлов?
    дизасмил аналогичные проги. в их импорте вининет вообще отсутствует.
     
  2. gevara

    gevara Elder - Старейшина

    Joined:
    29 Nov 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    5
    выкладываю сорцы проги для поиска файлов на ФТП. работает через винирет. создаёт кучу коннектов. мне это очень не нравится. хочу услышать ваше мнение. кому не лень - буду благодарен.
    сканирует FAR сервер. об оптимизации не заботился.

    http://file.raid.ru/get.php?f=8ec1101f71bf421a1c630d0c5a2ffc47
     
  3. *NoNamE*

    *NoNamE* New Member

    Joined:
    13 Mar 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Причём тут реверсинг ?
     
  4. gevara

    gevara Elder - Старейшина

    Joined:
    29 Nov 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    5
    извини, более подходищего раздела я не увидел.
     
  5. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Тебе нужно объединить эти функции в одну, FtpFindAllFiles, в которой будут образовываться 2 листа. В первом листе будут файлы, а во втором директории. Т.е. эта функция после заполнения буффера закроет handle поиска, и при обработке листа с директориями ты сново сможешь вызвать эту функцию. Единственная проблема, что при рекурсивном поиске, тебе прийдётся хранить все эти листы в памяти, но учитуя что это ftp, а не файловая система, это не будет большой особой проблемой.

    Added:
    Если бы я писал прогу, я бы этой либой тоже не пользовался, не такой уж и сложный протокол, всего несколько комманд и ИМХО гораздо проще создать сокет и общятся с сервером на прямую, и код будет более портабильный. ;)
     
    #5 hidden, 15 Mar 2007
    Last edited: 15 Mar 2007
  6. gevara

    gevara Elder - Старейшина

    Joined:
    29 Nov 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    5
    hidden

    пасиб. я с тобой согласен. но проблемма в том, что это бот.... а это прежде всего ограничение на размер кода. то есть вручную организовывать ФТП клиент, мне кажется, большая роскошь для него.

    если работать со списком директорий - как ты предлагаешь, то действительно ВинИнет тут на*** не нужен, т.к. комманда ls выдаёт все файлы внутри директории и работать через сокеты тут даже проще, чем через вининет.
     
    #6 gevara, 15 Mar 2007
    Last edited: 15 Mar 2007