Необходимо обламать ListBox

Тема в разделе "WASM.WIN32", создана пользователем Flasher, 18 янв 2010.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Есть обычный listbox
    Код (Text):
    1. CONTROL "",15,"listbox",WS_VSCROLL | LBS_STANDARD | LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | ES_LEFT | ES_AUTOVSCROLL,0,166,211,20
    Задача:
    Передать туда такие данные, которые потом нельзя будет в точности получить.

    Строки добавляются вот так:
    Код (Text):
    1. invoke SendMessage,hListBox,LB_INSERTSTRING,-1,offset szData
    Передаю даже szData db "test",13,10,0 а потом с легкостью считываю через
    Код (Text):
    1.               invoke SendMessage,hListBox,LB_GETCURSEL,0,0
    2.                .if eax != -1
    3.                   invoke SendMessage,hListBox,LB_GETTEXT,eax,offset buffer
    4.                .endif
    И даже 13,10 на месте :dntknw:
    Реально-ли передавать такие символы, чтобы либо через LB_INSERTSTRING не передавалась, либо через LB_GETTEXT коряво считывалась?
     
  2. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Перепроверил все байты с 1 по 255, все корректно возвращает.
    Есть идеи? Хотябы в какую сторону копать..
     
  3. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    а какая цель? невозможность получить программно или извне вручную?

    p.s. может пригодится сохранять через LB_SETITEMDATA. хотя опять же зависит от того, какова цель.
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Замени оконную процедуру(SetWindowLong,hListBox,GWL_WNDPROC,addr NewProc) и там уже обламывай LB_GETTEXT
     
  5. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Xerx, это чат-клиент. В listbox e хранятся ники. Ник может содержать любой символ кроме " " (это tab).
    Были мысли вписать такой ник, чтобы нельзя было забанить или кикать :)))
    Повторюсь, проверил все символы от 1 по 255 и все корректно listbox возвращает. Видимо не получиться :)
     
  6. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    в таком случае лучшее решение - подмена оконной функции. либо, что более правильно, проверка на "особенный" ник в самом коде удаления.
     
  7. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Клиент никакую проверку не делает.
    Получает ник из списка и отправляет серверу
    Код (Text):
    1.               invoke SendMessage,hListBox,LB_GETCURSEL,0,0
    2.                .if eax != -1
    3.                   invoke SendMessage,hListBox,LB_GETTEXT,eax,offset buffer
    4.                   invoke wsprintfA,offset buffer2,$CTA0("Serv zaban etogo kozlika    %s"),offset buffer
    5.                   invoke send,client,offset buffer2,ebx,0
    6.                .endif
     
  8. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    ну вот и нужно делать проверку на ник на сервере.
     
  9. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Есть шанст, что сервер один из 1-255 байт сплюнет обратно и скажет нет, не забаню? :)
     
  10. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Поставить этому окну хук на все сообщения, получающие текст ListBox'а и возвращать всё, что душе угодно.
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    что за бред пишут )
    клиент-серверное приложение
    Клиент Flasher'a отправляет инфу о нике на сервер.
    Сервер рассылает инфу о нике остальным клиентам.
    Другой клиент (админский) получет эту инфу, и решает забанить Flasher'a.

    Вы собираетесь ставить хуки/подменять WndProc на другом клиенте, который располагается хз где?
     
  12. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Вот-вот, n0name понял в чем дело :)