Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ WinAPI Как настроить кодировку (почему не работает CharToOemA)? Ребят, собственно см. картинку. Почему после казалось бы простейшей операции в "buf" иероглифы? std::string str="ПРЭВЭД МЕДВЕД"; char* buf=new char; strcpy_s(buf,str.size()+1,str.c_str()); CharToOemA(buf,buf); https://www.cyberforum.ru/ win-api/ thread884782.html Вывод цифр в ListBox C++ WinAPI
Подскажите, как вывести цифры в листбокс? Текст получилось вывести.... TCHAR p; .... SendMessage (hListBox2,LB_ADDSTRING,0,(LPARAM)p); ...а вот int не получается... пробовал так и тоже безрезультатно
C++ WinAPI Перехват Winapi функций https://www.cyberforum.ru/ win-api/ thread884271.html
Целый день пытаюсь побороть перехват с помощью dll, как-то ничего не получается, а google выдаёт только код Рихтера, но он не работает. Помогите найти ошибку. замена адреса, вроде бы работает. #include "stdafx.h" #include "Win32Project1.h" HANDLE logFile; void ReplaceIATEntryInOneMod(PCSTR pszCallerModName, PROC pfnCurrent, PROC pfnNew, HMODULE hmodCaller) { ULONG ulSize;
C++ WinAPI winuser.h При попытке подключения к winuser.h у меня компилятор (VC++) выводит: 1>------ Построение начато: проект: gvgyguyy, Конфигурация: Debug Win32 ------ 1> main.cpp 1>c:\program files\microsoft sdks\windows\v7.0a\include\winuser.h(46): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "HDWP" 1>c:\program files\microsoft sdks\windows\v7.0a\include\winuser.h(46): error... https://www.cyberforum.ru/ win-api/ thread884262.html
C++ WinAPI Начинаю работать с VS 2012
Здравствуйте! Создаю проект win32 и ровным счетом.....нихрена не понимаю. До этого работал только с консольными приложениями, опыт основных алгоритмов и структур данных есть. Тут решил посмотреть на монстра в котором творится мировая магия - ужаснулся. Не понятно, зачем подключается stafx.h, непонятно даже, где вообще находится функция Int main(){...} ! Не понятный тип T^ - типа свой велосипед T*...
C++ WinAPI Регистрация времени аварийного выключения компьютера https://www.cyberforum.ru/ win-api/ thread883443.html
Нужно сделать так, чтобы когда компьютер аварийно выключился, и после того как его снова включить, то можно было посмотреть в какое именно время произошло аварийное выключение. Но в виду того, что в момент аварийного выключения(будь то пропажа электричества) программа чисто физически не сможет никак это дело зарегистрировать:D, то приходит в голову только одна мысль - каждые 5 секунд менять...
C++ WinAPI Атомарна ли операция присваивания и чтения POD данных? Привет! Терзают меня сомнения по поводу необходимости критической секции в следующие ситуации: Есть класс, в нём есть поля простых типов данных, например: public: int x; short y; char* string; Так же есть два потока, один постоянно читает эти данные, а другой - постоянно записывает. Вот интересно, нужна ли тут критическая секция, ведь на сколько мне кажется, операции записи и... https://www.cyberforum.ru/ win-api/ thread883324.html AES на CryptoAPI C++ WinAPI
Вот написал программку , для шифрования по AES. При режиме "шифрование" ничего не меняется. Расшифрование вроде бы работает. Подскажите в чем проблема? //--------------------------------------------------------------------------- #include <vcl.h> #include <windows.h>
C++ WinAPI Карта значений! Подскажите, как реализовать вот такую штуку: В окне - в отдельной его части формируется область, которая делится на ячейки, и в соответствии со значениями какого-нибудь вектора значений - закрашивать эти ячейки. Ну например, если значение вектора, индекс которого совпадает с индексом ячейки в области, не равно 0, то закрасить эту ячейку, иначе оставить её белой! Как примерно можно это сделать!... https://www.cyberforum.ru/ win-api/ thread882886.html C++ WinAPI Как послать нажатие ALT? Вопрос https://www.cyberforum.ru/ win-api/ thread882826.html
C++ WinAPI Как изменить размер "кучи"?
Создаю "кучу": HANDLE NewHeap; int Size=0x4000; NewHeap=HeapCreate(0, Size, 0); if (NewHeap == NULL) { //если куча не создалась ............... } else {//если создалась ...........
C++ WinAPI Не отображается меню Здравствуйте, возникла проблема. Есть задание: Главное меню содержит раздел "Файл" со строками "Создать", "Открыть" и "Выход". При выборе строк "Создать" или "Открыть" создать окно, которое содержит раздел меню "Фигуры" со списком имен геометрических фигур; при выборе имени отобразить фигуру с таким именем и пометить имя галочкой. При повторном выборе имени убрать фигуру и удалить галочку. ... https://www.cyberforum.ru/ win-api/ thread882418.html
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
30.05.2013, 19:52  [ТС] 0

Создание потока в чужом процессе - C++ WinAPI - Ответ 4644427

30.05.2013, 19:52. Показов 3834. Ответов 26
Метки (Все метки)

Ответ

Нет, я хотел увидеть сам код. Как его компиль откомпилил. Т.е. вам бы еще отладчиком приаттачится.
Тут, я не понял, к чему приаттачиваться. Поподробней опишите что делать-то надо? Аттачиться к Visual Studio?
Зачем лишнии команды? Попробуйте такой код:
Как мне выдал дебагер, так я и записал, отступление от ассемблера мне кажется - смерть (неминуемый крах клиента).

Ну, вот это компилятор естественно не понимает,
Assembler
1
MOV EAX,693D60
надо написать MOV EAX,0x00693D60. Испытал, результат тот же - крах...

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


Адреса, которые используются в функции отправки пакетов:
#define BA 0x00B8FBCC
#define F_SEND_PACKET 0x0069F9C0

Структура пакета:
C++
1
2
3
4
5
struct PACKET
{
  int len;  // длина
  BYTE Bytes[60];   // данные пакета
};
Здесь мы делаем все, что инжектируем(отправляем):
C++
1
2
3
4
5
6
7
8
struct INJECTOR
{
  DWORD pid;       // Идентификатор Процесса
  void* pFunction; // Указатель на память для функций
  void* pParams;   // Указатель на память для параметров
  BYTE SendPacket(PACKET*);
  void DeselectTarget();
}
Функция отправки пакетов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
BYTE INJECTOR::SendPacket(PACKET* pack)
{
  HANDLE hProcThread;
  
  char fdata[30]="\x60\x8B\x0D\x00\x00\x00\x00\x8B\x49\x20\x68\x11\x11\x11\x11\x68\x22\x22\x22\x22\xB8\x33\x33\x33\x33\xFF\xD0\x61\xC3";
  int lenfunc = 30;
  DWORD func = F_SEND_PACKET;
  DWORD ba = BA;
  DWORD len = pack->len;
 
  HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,false,pid);  //pid - ИД процесса
  if (!hProcess) return 0;
 
  WriteProcessMemory(hProcess,pParams,pack->Bytes,len,NULL); // инжектим данные пакета, Packet pack; объявлен в конструкторе
 
  DWORD addr=DWORD(pParams); // возьмём адрес расположения данных нашего пакета
  memcpy(fdata+3,&ba,sizeof(DWORD));
  memcpy(fdata+11,&len,4);
  memcpy(fdata+16,&addr,4); // запишем адрес расположения пакета прямо в массив кода
  memcpy(fdata+21,&func,4);
 
  WriteProcessMemory(hProcess,pFunction,fdata,lenfunc,NULL); // инжектим наш код
 
  hProcThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)pFunction,NULL,NULL,NULL);
  if(hProcThread==INVALID_HANDLE_VALUE) // не удалось создать поток
  {
    CloseHandle(hProcess);
    return 0;
  }
 
  WaitForSingleObject(hProcThread, INFINITE); // ожидаем завершения работы потока
  CloseHandle(hProcThread); // освобождаем
  CloseHandle(hProcess);
  return 1;
}
Функция нахождения ИД процесса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DWORD CNewBotDlg::PidbyName(CString nameofprogram)
{
    HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    PROCESSENTRY32 ProcessEntry;
    ProcessEntry.dwSize = sizeof(ProcessEntry);
    BOOL Loop = Process32First(pHandle,&ProcessEntry);
    while(Loop)
    {
        if(strcmp(ProcessEntry.szExeFile, nameofprogram) == 0)
        {
            pid = ProcessEntry.th32ProcessID;
            CloseHandle(pHandle);
            return pid;
        }
        Loop = Process32Next(pHandle, &ProcessEntry);
    }
    return 0;
}
Ну, и собственно сама функция снятия таргета с цели:
C++
1
2
3
4
5
6
7
8
void INJECTOR::DeselectTarget()
{
    PACKET pack;
    pack.len = 2;
    char data[3] = "\x08\x00";   //08 00 
    memcpy(pack.Bytes,data,pack.len);
    SendPacket(&pack);
}
Еще раз повторю, что отправка пакетов проходит на ура!

Добавлено через 7 минут
Но, мне нужно осилить именно отправку ассемблерного кода, для более сложных действий в дальнейшем, потому что их проще сделать выудив ассемблерный код...

Вернуться к обсуждению:
Создание потока в чужом процессе C++ WinAPI
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2013, 19:52
Готовые ответы и решения:

Как закрыть поток в чужом процессе зная адрес этого потока
Здравствуйте, я хочу закрыть поток в чужом процессе зная адрес потока (test.dll!test001+0x60520),...

Как закрыть поток в чужом процессе зная адрес этого потока
Здравствуйте, я хочу закрыть поток в чужом процессе зная адрес потока (test.dll!test001+0x60520),...

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

Изменить значения по заданному адресу в чужом процессе
почему не работает не меняет значения нужно менять значения по адресу 5E02C0 на 2 var buf :...

26
30.05.2013, 19:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2013, 19:52
Помогаю со студенческими работами здесь

Установить защиту памяти в чужом процессе на запись
Делаю трейнер для игры. Мне нужно по определенному адресу памяти установить разрешение на запись.

Управление памятью в чужом процессе используя его апи
За пару дней с++ не со многими вещами разобрался, поэтому мог написать местами глупости. Суть:...

Directx рисование в чужом x64 процессе; Hex опкоды в ассемблер
Добрый вечер. Я замечал, что такие темы уже имеются на форуме и на других тоже, но все они сводятся...

Нужна помощь в получении base address DLL в чужом процессе.
Что то странное с форумом происходит, слово &quot;помощь&quot; вызывает какую-то ошибку :O_O: ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru