Кросс-платформенный клавиатурный перехватчик

Используйте приведенный ниже фрагмент кода

LOOP AT ITAB ASSIGNING <fs-structure>.

*-- determination of field name logic goes here let's say you have 
*-- field name is in variable lv_field

    ASSIGN COMPONENT (lv_field) of STRUCTURE <fs-structure> to <fs-field>.
    IF <fs-field> IS ASSIGNED.
      <fs-field> = 'the value you want to assign'.
    ENDIF.

ENDLOOP.

Надеюсь, это прояснится.

Допустим, вы хотите вычислять на основе других полей в той же структуре

LOOP AT ITAB ASSIGNING <fs-structure>.

*-- determination of field name logic goes here let's say you have 
*-- field name is in variable lv_field1 and other is lv_field2

    ASSIGN COMPONENT (lv_field1) of STRUCTURE <fs-structure> to <fs-field1>.

    ASSIGN COMPONENT (lv_field2) of STRUCTURE <fs-structure> to <fs-field2>.

    IF <fs-field1> IS ASSIGNED ANDV<fs-field2> IS ASSIGNED .
      <fs-field1> = <fs-field1> + <fs-field1>.
    ENDIF.

ENDLOOP.

Примечание: код написан, чтобы дать представление о том, как действовать дальше в этом выпуске. Как указала Сандра, это может привести к проблемам с компиляцией, пожалуйста, исправьте при необходимости. Я попытался ответить на вопрос только о выпуске мобильного устройства. У меня нет доступа к компилятору / системе в настоящее время.

9
задан Aaron Digulla 13 December 2008 в 11:10
поделиться

2 ответа

Существует несколько приложений с открытым исходным кодом, которые могли бы дать Вам некоторые подсказки:

  • PyKeylogger является клавиатурным перехватчиком Python для окон и Linux
  • logKext является клавиатурным перехватчиком C++ для Mac
10
ответ дан 4 December 2019 в 11:44
поделиться

На основе архитектуры REST , на которой основана html-система, роль сервера состоит в том, чтобы просто выступать в качестве ресурса для клиента. Я обобщаю, но есть инструменты для реализации такого типа действий на стороне клиента, а не на стороне сервера.

Лучше записывать/использовать библиотеку, которая может периодически запрашивать обновления с сервера. Эти типы запросов можно инкапсулировать в объект javascript, который может инициировать события. Таким образом, сценарий на стороне клиента может действовать так, будто он получает уведомление с сервера. Просмотрите некоторые распространенные сведения с помощью COMET , которые, вероятно, помогут вам с кодом на стороне клиента.

HTML 5 имеет некоторые предварительные попытки такого типа функциональности, но если вы хотите, чтобы ваше приложение работало на старых браузерах, вам лучше использовать более стабильные методы, такие как AJAX запрашивали обновления.

-121--3603202-

Я собираюсь использовать термин «ранг» для обозначения «количества измерений» в массиве. Так вектор имеет ранг 1, матрица имеет ранг 2 и так далее. Вы уже приняли ответ, что, по вашему собственному признанию, не совсем то, чего вы хотите. Вот альтернатива решению проблемы:

Вспомните, что компьютерная память по существу линейна и что компилятор делает, когда он дает вам массивы, на самом деле заботится о преобразовании индексного выражения в линейный адрес. Об этом проще всего думать, если предположить, что все массивы находятся в непрерывной памяти, не всегда верно. Предположим, что вы делаете объявление, такое как ARRAY_OF_TYPE[10][10][10], то есть он имеет 1000 элементов. Затем элемент в позиции [3] [5] [4] является (мои массивы индексируются от 1, а не 0 - измените суммы, которые следуют, если вы хотите) в местоположении baseAddress + 354 * size _ of _ element _ of _ TYPE.

Я ожидаю, что вы знаете, где я сейчас занимаюсь этим...

Во время выполнения программа запрашивает у пользователя список целых чисел. Каждое целое число определяет размер одного из измерений массива, число целых чисел - ранг массива. Программа выполняет некоторые умножения и выделяет вектор нужной длины. Вы должны записать функции индексации и деиндексации, но они должны быть довольно простыми.

et voila имеется массив, ранг которого устанавливается во время выполнения.

-121--4716596-

Есть отличная статья о Написание Linux Kernel Keyloggers
http://www.phrack.com/issues.html?issue=59&id=14#article

Если вы пытаетесь запустить honeypot, то определенно дайте Себеку попробовать:
https://projects.honeynet.org/sebek/

Себек это инструмент захвата данных разработан для захвата действий злоумышленника на honeypot, без нападающего (надеюсь) зная это. Имеет два компоненты. Первый - это клиент, который работает на honeypots, его назначение для захвата всех нападавших действия (нажатие клавиш, загрузка файлов, пароли), затем скрытно отправить данные на сервер.Второй компонент - сервер, который собирает данные от хонипотов. Сервер обычно работает на Honeywall шлюз, но также может работать независимо. Для получения дополнительной информации о Себек, пожалуйста, смотрите http://www.honeynet.org/tools/sebek

Но если вы предпочитаете следовать сценарию chiddie route/not learning, то попробуйте следующие приложения:

LINUX
http://sourceforge.net/projects/lkl/

WINDOWS
http://www.rohos.com/kid-logger/
http://code.google.com/p/freelogger/


СОВЕТ: Вам лучше записать свои собственные для целей обучения и получения прибыли.

8
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: