Перейти к содержимому

Raw сокеты WinSocket C++

Raw сокеты WinSocket C++. В данной статье – примере мне хотелось бы показать работу с простыми(raw) сокетами. Данные сокеты позволяют получить доступ к базовому протоколу передачи данных, это дает нам большие возможности создания таких сетевых утилит как Ping, Traceroute, а также для организации IP Spoofing, DDoS, ICMP-flood, и многого еще =) Рассматривать будем только протокол IP, так как большинство других протоколов вообще не поддерживают простые сокеты, разве только ATM.Подробнее »Raw сокеты WinSocket C++

Как узнать, сколько памяти занимает процесс

Как узнать, сколько памяти занимает процесс?

#include <iostream>
#include <windows.h>
#include <psapi.h>//Psapi.lib
using namespace std;
 
int main()
{
 
        DWORD pid;
        PROCESS_MEMORY_COUNTERS pmc;
 
        cout<<"Enter process PID: ";cin>>pid;
 
        HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
        if(NULL != hProcess)
        {
                if(GetProcessMemoryInfo(hProcess,&pmc,sizeof(pmc)))
                {
                        cout<<pmc.cb<<endl;
                        cout<<pmc.PageFaultCount/1024<<endl;
                        cout<<pmc.PeakWorkingSetSize/1024<<endl;
                        cout<<pmc.WorkingSetSize/1024<<endl;
                        cout<<pmc.QuotaPeakPagedPoolUsage/1024<<endl;
                        cout<<pmc.QuotaPagedPoolUsage/1024<<endl;
                        cout<<pmc.QuotaPeakNonPagedPoolUsage/1024<<endl;
                        cout<<pmc.QuotaNonPagedPoolUsage/1024<<endl;
                        cout<<pmc.PagefileUsage/1024<<endl;  
                        cout<<pmc.PeakPagefileUsage/1024<<endl;
                }
        }
        CloseHandle( hProcess );
        return 0;
}

Просматриваем заголовок исполняемого файла

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

Программно создаем динамическую иконку

Программно создаем динамическую иконку. Для создания динамической иконки (и не только) понадобится API функция:

HICON CreateIcon(HINSTANCE hInstance, int nWidth, int nHeight, BYTE cPlanes, BYTE cBitsPixel, CONST BYTE *lpbANDbits, CONST BYTE *lpbXORbits);
Подробнее »Программно создаем динамическую иконку

Программное нажатие кнопки

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

Передача файлов с помощью TransmitFile

Передача файлов с помощью TransmitFile. Функция TransmitFile служит для быстрой передачи данных из файлов, благодаря тому, что она работает в режиме ядра(kernel mode), и не происходят частые переключения между режимами. Данная функция это дополнение к WinSock, то есть если Вы пишите программу для Win32 и после хотите перенести код на Unix-системы, то придется значительно изменять код.

Подробнее »Передача файлов с помощью TransmitFile

Перечисление элементов реестра используя API

Перечисление элементов реестра используя API. У меня установлена программа RegCleaner, в которой можно просмотреть элементы автозапуска. Сейчас попытаюсь объяснить, как сделать перечисление значений ключа реестра, для этого существует API функция RegEnumValue.

Подробнее »Перечисление элементов реестра используя API