На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Как осуществить ?.?.?.?.?.?.?.?
    Огромнейшее спасибо rivitna за подробный предыдущий ответ.

    Мне нужно написать программу на TASM которая должна запретить копирование определённого файла и вообще копирование.(под WIN).

    Как отслеживать и перехватывать нажатие на клавиши,
    перехватывать функцию копирования и что бы прогу нельзя было убить (Ctrl+Alt+Del) - прочитал, что это делается вроде с помощью HOOKов если можно, то поподробнее.  Можно ли сделать неактивным пункт копирование в всплывающем меню которое появляется при нажатии на левую кнопку мыши.

    Подскажите хоть чего нибудь.  
                                               

    Через GlobalMemotyStatus я снял информацию о памяти (проверил через td32), данные хранятся в структуре MemoryStatus как вывести отдельные значения из нее и все значения.


                                                                   Алексей.


    P.S.

    Rivitna:     С предыдущего вопроса :(я плохо сформулировал )

    Можно ли вырезать информацию (имя компа,кол-во памяти т.д.)вызываемую функцией ShellAboutA и если можно то как?  Эта функция выводит на экран информацию (имя компа,кол-во памяти,и т.д) разбить эту инфу на блоки и по отдельности вывести на экран:имя,память и т.д.  (наприм через MessageBox) ?
                                                                                       
                                                                                       Алексей

    Сообщение отредактировано: vot -
      На самом деле вопрос больше подходит для форума C/C++, это их хлеб :)

      Цитата
      Мне нужно написать программу на TASM которая должна запретить копирование определённого файла и вообще копирование.(под WIN).


      На мой взгляд лучше написать хук на вызов АПИшных функци, рекомендую обратиться к тов. Рихтеру, есть его пример установки хука. На АСМе это сделать будет очень муторно :(

      Цитата
      Как отслеживать и перехватывать нажатие на клавиши...

      Пишешь хук на WH_KEYBOARD или WH_KEYBOARD_LL (для NT/2000). На АСМе это сделать просто. Я, например, все больше склоняюсь к тому, чтобы писать простенькие dll-ки с процедурами хуков на АСМе, в итоге код порядка 4Кб вместо 40Кб (на VC), а трудозатраты не намного больше. При желании могу привести пример.
      Насчет хуков лучше почитай MSDN или соответствующую литературу, а также посмотри примеры...

      Цитата
      что бы прогу нельзя было убить (Ctrl+Alt+Del)...


      Для Win9x (На C):
      UINT  uiPrevState;

      Запрет комбинаций Ctrl+Alt+Del, Alt+Tab и т.д.
      SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &uiPrevState, 0);

      Разрешение комбинаций Ctrl+Alt+Del, Alt+Tab и т.д.
      SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &uiPrevState, 0);

      Для WinNT (На C):
      Хук на WH_KEYBOARD_LL (есть пример в MSDN). Только в этом случае Ctrl+Alt+Del не блокируется, но при блокировке клавиатуры и мыши (см. ниже) пользователь кроме перезагрузки ничего не сможет сделать...

      Кроме того придется писать еще два хука на WH_KEYBOARD и WH_MOUSE для блокировки клавиатуры и мыши...

      Цитата
      Через GlobalMemotyStatus я снял информацию о памяти (проверил через td32), данные хранятся в структуре MemoryStatus как вывести отдельные значения из нее и все значения


      Честно говоря, не понятно в чем проблема? Используй функцию API wsprintf... А дальше выводи текстовые строки...

      Цитата
      Можно ли вырезать информацию (имя компа,кол-во памяти т.д.)вызываемую функцией ShellAboutA и если можно то как?  Эта функция выводит на экран информацию (имя компа,кол-во памяти,и т.д) разбить эту инфу на блоки и по отдельности вывести на экран:имя,память и т.д.  (наприм через MessageBox) ?


      Используй отдельно соответствующие функции API, которые использованы в ShellAboutA
        Спасибо !!!
        Это прога должна быть именно на ASMе (обязательное условие - не я придумал) !!!!!!
        Если можно, то поподробнее про хук на вызов АПИшных функций (принцип:что ,куда,зачем...)


        Если не сложно вышли пример на ASM  WH_KEYBOARD или WH_KEYBOARD_LL на aserpent@yandex.ru

        Вопросы:
        Функция  SystemParametersInfo у нее много параметров а значения у них какие ? Например
        SPI_SETSCREENSAVERRUNNING  equ           ???
        SPI_SETMOUSEBUTTIONSWAP    equ           ???
        . . . . . . . .
        . . . . . . . .
        . . . . . . . .

        И где вообще брать значения параметров (которых в WIN.inc и т.д. нет)  ??


        Как узнать какие функции использует ShellAboutA ?


                                               Serpent







          Цитата
          Если можно, то поподробнее про хук на вызов АПИшных функций (принцип:что ,куда,зачем...)


          Все же лучше, если ты обратишься к классикам (Рихтеру и Питреку), это довольно тонкий момент, чтобы в форуме в двух словах объяснять.
          Примеры на C и кое-какую информацию вышлю на почту.

          Цитата
          Если не сложно вышли пример на ASM  WH_KEYBOARD или WH_KEYBOARD_LL на aserpent@yandex.ru


          То же самое: вышлю на почту. Но только заготовку на АСМе, лишнее удалю. Ссылки примеров на C:
          http://www.sources.ru/cpp/cpp_lock_mouse_and_keyboard.shtml
          http://www.sources.ru/cpp/tips/system_wide_hook.shtml
          http://www.sources.ru/cpp/cpp_pwdspy.shtml
          http://support.microsoft.com/support/kb/articles/Q81/3/34.ASP

          Цитата
          Вопросы:
          Функция  SystemParametersInfo у нее много параметров а значения у них какие ? Например  
          SPI_SETSCREENSAVERRUNNING  equ            ?
          SPI_SETMOUSEBUTTIONSWAP    equ           ?


          SPI_SETSCREENSAVERRUNNING  EQU  97
          Если нужно еще какие значение, я уточню, просто VC 6.0 у меня на работе и я отвечаю по памяти...

          Цитата
          И где вообще брать значения параметров (которых в WIN.inc и т.д. нет)  ?


          Смотри в заголовочных файлах MS VC++ и добавляй по мере необходимости в твой личный win32.ini (свой я тебе вышлю с примером хука)

          Цитата
          Как узнать какие функции использует ShellAboutA ?


          С помощью утилитки eXeScope посмотри какие функции импортируются в shell32.dll особенно из kernel32.dll и user32.dll. Короче, прояви смекалку...
          Сообщение отредактировано: rivitna -
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0338 ]   [ 15 queries used ]   [ Generated: 2.05.24, 04:14 GMT ]