Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 6 лет назад .
На каком уровне и что нужно уметь на С++, чтобы писать реальные программы способные взломать что-нибудь, например, соседский wifi? Если не только нужен С++, то на каких языках лучше всего писать на windows хакерские программы?
Отслеживать
задан 9 дек 2016 в 16:59
332 2 2 золотых знака 7 7 серебряных знаков 21 21 бронзовый знак
Если, что перебор c помощью словарей это brute force
9 дек 2016 в 17:04
Нужно знать не столько язык программирования (это всего лишь инструмент), сколько технологии и как они работают (т. е. требуется глубокое и низкоуровневое знание аппаратного стека технологий WiFi, а также используемой в этом случае модели OSI (в частности, адресация, маршрутизация, шифрование)). Вам же надо будет как-то подобрать пароль к подключению, а затем вклиниться в него, разделяя свой трафик и соседский так, чтобы не мешать этому соседу. И тут выясняется такая неприятная деталь, что подобный инструментарий уже создан и ничего нового писать, как правило, не надо.
Как стать хакером за 10 секунд?!
9 дек 2016 в 17:04
Ответ прост — надо знать дофига, а С++ здесь совсем не обязательная составляющая.
9 дек 2016 в 17:14
Ради интереса вот статейка на хабре
9 дек 2016 в 17:21
А, ну если троллить друзей, то тогда имеет смысл.
9 дек 2016 в 19:48
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Скачайте какой-нибудь из существующих наборов хакерских утилит (например, в nmap должно быть что-то по взлому/подбору реквизитов доступа к Wi-Fi) и изучите их исходный код (если самоцель — именно написать, а не взломать).
Согласен, параллельно с изучением исходных кодов потребуется изучать и принципы работы всего, на чём основывается технология Wi-Fi. Но так никто и не обещал, что быть хакером (именно настоящим хакером, а не позёром-«кулхацкером») будет просто.
Изучение именно языка программирования — это вопрос второстепенный, поскольку он служит исключительно для написания программы. Однако эту программу необходимо сначала спроектировать, что невозможно без знания предметной области.
Источник: ru.stackoverflow.com
С/С++ программирование для хакеров: Часть 1 (Введение)
Я не знаю продолжит ли их дальше автор, но я постараюсь довести их до логического завершения, а именно выполнить цели указанные в этой статье. Жду ваших комментариев.
Что вам понадобится:
1) Операционная система Linux. Я использую Kali Linux для этой серии статьей. Вы можете использовать любой другой Linux дистрибутив или даже Windows, если вы знаете как установить GNU/GCC компилятор для этой ОС. Я рекомендую Kali Linux, потому что GCC предустановлен на нем.
КАК СТАТЬ ХАЦКЕРОМ И КРЯКНУТЬ САЙТ
2) GNU/GCC компилятор. Это компилятор ,который мы будем использовать для написания наших программ. Если вы не знаете что такое компилятор, это просто программа, которая превращает наш код (С, С++, Java) в машинный код (1 и 0). Чтобы проверить есть ли у вас установленный GCC, просто выполните следующую команду:
gcc —help
На выходе вы должны получить следующее:
Если на выходе вы получили «command not found» ошибку, вы должны будете установить GCC этой командой:
apt-get update apt-get install gcc
3) Текстовый редактор, это может быть любой текстовый редактор например: GVim, gedit и т.д.
Почему программирование важно для хакеров?
Программирование — важный навык, который каждый уважающий себя хакер должен освоить. Вот несколько причин почему им стоит овладеть:
1) Написание собственного вредоносного ПО. При программировании собственного вредоносного ПО, нет зарегистрированного для него ключа(подписи), таким образом делая его почти невозможным для обнаружения для AV (антивирус).
2) Хакерские инструменты обычно имеют открытый исходный код. Это означает, что каждый может получить доступ к исходному коду. Когда вы знаете язык на котором написана программа, то сможете сделать ее лучше.
3) Написание собственных эксплойтов. Хотя я рекомендую Ruby и Metasploit Framework для этой цели, Ruby все еще довольно медленный по сравнению с C или C++. Если вам нужно чтобы эксплойт был быстрым, вы можете написать его на C/C++.
Я решил сделать серию о C/C++, поскольку C++ — мощный язык и используется во многих программах и играх. C является менее мощным, но все еще довольно низкоуровневым языком , который тесно взаимодействует с CPU (ЦП). Встраиваемые устройства обычно запрограммированы так же на языке C. Многое от светофоров до микроволновок скорее всего работают на каком-то ПО, которое написано на С.
Что будет в этой серии статей ?
- Сделать вирус
- Перепрограммировать некоторые инструменты хакеров написанные на С/С++
- Написать другие программы.
Источник: codeby.net
[Guide] Руководство по написанию чит программ. Часть 1.
Данное руководство я решил написать для ознакомительных целей, так как большинство людей пользуются такими программами, но мало кто из них знает, как они устроены и по какому принципу работают.
Так как руководство основано на опытных пользователей, то необходимы некоторые знания:
• Знание языков программирования (примеры будут написаны на Delphi и C++ Builder), но в принципе если вы хорошо знаете другой язык программирования то вам не составит труда перенести код на него
• Умение пользоваться программами на подобии ArtMoney(знать что такое указатели, разбираться в адресации памяти и т.д)
• Знать что такое шестнадцатеричная система счисления, уметь переводить числа из десятичной в шестнадцатеричную и обратно
Но думаю и новички, почерпнут из нее много нового и интересного, а так же приобретут желание к изучению материала и повышению своих знаний.
Итак, начнем. Немного теории:
Чит программы – это программы которые позволяют автоматизировать использование того или иного бага. Как известно баги бывают как минимум пяти видов пакетные(использование TCP/IP пакетов для отправки на сервер или клиент модифицированных данных), memory баги(модификация значений в памяти игрового клиента), файловые(модификация файлов игрового клиента), текстурные (проход сквозь текстуры и т.д) и баги игрового клиента(ошибки в игровом клиенте, приводящие к выполнению действие не задуманных разработчиками) а так же различные их комбинации. В чит программах используются первые три вида, остальные два используются посредством самого игрового клиента без каких либо дополнительных программ.
Вообще тема написания чит программ довольно обширна, поэтому данное руководство разделено на несколько частей. Сегодня я остановлюсь на написании чит программ использующих memory баги. Как было сказано выше, memory баги модифицируют значения в памяти игрового клиента. На их основе реализованы такие известные баги как “ChatHack”, “WallHack”, “SpeedHack”, “FlyHack” и другие (прим. Так же возможна реализация этих багов на пакетном уровне).
Практически все современные игры используют DMA. DMA — — dynamic memory allocation (динамическое распределение памяти). Иными словами DMA игры хранят значения в памяти по адресам, которые изменяются после каждого запуска, перезапуска, загрузки сохранения, перехода в другую локацию или уровень и т.д.
С этим многие сталкивались когда “ломали” не онлайн игры на “на деньги” например с помощью ArtMoney и после приведенных выше действий таблицы со “взломами” переставали работать. Но с этим легко бороться, достаточно лишь один раз найти указатель на нужный нам адрес. Указатель — это адрес, в котором содержится адрес на интересующее нас значение.
Адреса же указателей не изменяются в отличие от остальных. Так же не меняются смещения других адресов относительно адреса, на который указывает указатель. Таким образом, для написания чит программы нам нужно считать из указателя адрес, а потом по этому адресу модифицировать значение.
Перейдем к практике:
Рассмотрим написание чит программы на примере всем известного “SpeedHack”.
Как использовать “SpeedHack” через ArtMoney я расскажу вкратце так это руководство не по поиску багов а по написанию программ с их применением. Дам несколько советов по поиску значения скорости, так как в игре скорость является дробью, то тип значения выбираем с точкой. Размерность выбираем 4 байта, так как большинство значений в современных играх 4-х байтные (за некоторым исключением).
Указав такие условия поиска, мы значительно его сократим. Затем устанавливаем значение поиска равное значению в игре, выполняем поиск. Заходим в игру, одеваем оружие на бег и отсеиваем новое значение. И так пока не останется одно значение.
Добавляем его в таблицу и видим адрес этого значения в памяти (для использования “SpeedHack’а”, нужно установить желаемое значение и “заморозить” его). Допустим оно у нас равно 0134EA80. Но так ига использует DMA, просто адрес нас не устроит, так как при следующем входе в игру он изменится. Поэтому мы будем искать указатель на этот адрес, который как говорилось выше не изменяется.
Как искать указатели я тут рассказывать тоже не буду, так как статья не об этом (читайте руководство пользователя ArtMoney). После поиска указателя он оказался равным 00D1B4F0 а смешение адреса в котором находится значение скорости равно 2356. Важно отметить, что указатель в ArtMoney указывается в шестнадцатеричной системе счисления, а смещение в десятичной. Ну да ладно, что же нам теперь делать с найденными значениями. А вот теперь-то мы и будем писать программу, которая по этим значениям будет модифицировать память игрового клиента.
Создадим новый проект в Delphi и разместим на форме элементы: Label, SpinEdit, Button, Timer всех по одному. Label будет содержать просто информацию, в SpinEdit будем задавать желаемое значение скорости, Timer будет осуществлять функцию “заморозки” (каждые 100 миллисекунд он будет обновлять наше значение), Button будет активировать/деактивировать Timer(“SpeedHack”).
Для работы с памятью игры мы будем использовать следующие API функции Windows:
function WriteProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesWritten: DWORD): BOOL; function ReadProcessMemory(hProcess: THandle; const lpBaseAddress: Pointer; lpBuffer: Pointer; nSize: DWORD; var lpNumberOfBytesRead: DWORD): BOOL; function FindWindow(lpClassName, lpWindowName: PAnsiChar): HWND; stdcall; function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: Pointer): DWORD; stdcall; function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; function CloseHandle(hObject: THandle): BOOL;
Подробное описание функций и значения их параметров я приводить не буду, кого заинтересует, могут посмотреть MSDN.
Основными функциями записи и чтения из памяти являются: ReadProcessMemory и WriteProcessMemory.
Ну вот собственно исходный код таймера который изменяет значение по найденному выше указателю:
Как оказалось все те так уж страшно, как было на первый взгляд. И если вдумчиво прочитать статью, думаю практически любой, хоть немного разбирающийся в программировании человек сможет написать подобную программу.
Полные исходники качаем отсюда:
Delphi: http://depositfiles.com/files/ea0x95861
C++ Builder: http://depositfiles.com/files/7y6ffd62v
C++ Builder and Delphi одним архивом
Не забываем оставлять комментарии по поводу статьи. Так же задавать вопросы, если они возникли. Постараюсь ответить всем.
Авторские права и условия распространения материала:
Автором материала является Тигрь, то бишь я. Статья может распространяться свободно но без каких либо изменений, с обязательным указанием моего авторства, и с приведенными выше ссылками на исходные коды программ.
Источник: www.rf-cheats.ru