Форум программистов, компьютерный форум CyberForum.ru

Инъекция своего кода в функцию открытой программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при компиляции http://www.cyberforum.ru/cpp-beginners/thread945530.html
При компиляции программы выбивает ошибку на этой строке ( v - vector <std::string> v) : sort(begin(v), end(v)); Пишет: error C3861: 'begin': identifier not found, even with argument-dependent lookup error C3861: 'end': identifier not found, even with argument-dependent lookup Что делать?!?!?! Можно ли заменить функции begin() i end() ??????
C++ Ошибки при компиляции Привет. Помогите с ошибками разобратся: #include <stdlib.h> #include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main(int argc, char *argv) { http://www.cyberforum.ru/cpp-beginners/thread945523.html
Не могу понять ООП C++
Привет Всем, не так давно дошел до ООП, вроде как бы все понятно, но есть несколько вопросов- увы учусь сам, спросить кроме Вас не у кого :) Вопрос\рассуждение : Классы это как бы функции которые как бы описывают некий объект и взаимодействуют между собой так же как функции в структурном программировании. Каждый класс должен работать как бы играя роль какого то объекта в общей задаче?...
C++ Использована неинициализированная локальная переменная
Здравствуйте. Подскажите, пожалуйста, в чем тут ошибка? Вроде бы все правильно. Создаются переменная и указатель на адрес, где хранится значение типа int. По этому адресу помещаю 5, а затем в t присваиваю значение, лежащее в *m. Вывожу на экран. Что я не так сделал? #include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv)
C++ открытие для дозаписи http://www.cyberforum.ru/cpp-beginners/thread945483.html
Есть каталог в нем много текстовых документов. Как поочередно их открывать? Не зная имен и расширений.
C++ Построчное считывание файла txt в массив Добрый день. Пытаюсь вспомнить "как там считывать из файла", вроде бы делала, но давно это было. Сейчас сижу, кручу-верчу, а понять не могу -- почему не работает? :scratch: Суть программы такая: есть файл hero.txt, в этом файле есть 5 строчек герой 1 герой 2 герой 3 подробнее

Показать сообщение отдельно
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
29.08.2013, 19:05  [ТС]     Инъекция своего кода в функцию открытой программы
Вызовов может быть много же... Из разных мест...

Добавлено через 1 час 29 минут
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
void InterceptFunctions(void)
{
  DWORD op;
  //сначала получим абсолютный адрес функции для перехвата
  adr_MessageBoxA = (DWORD)GetProcAddress(GetModuleHandle( (LPCTSTR)"user32.dll" ),
                    "MessageBoxA");
  if(adr_MessageBoxA == 0)
  {
    MessageBox(NULL, (LPCTSTR)"Can`t get adr_MessageBoxA", (LPCTSTR)"Error!", 0);
    return;
  }
 
  // Зададим машинный код инструкции перехода, который затем впишем 
  // в начало полученного адреса:
  jump.instr_push = 0x68;
  jump.arg = (DWORD)&Intercept_MessageBoxA;
  jump.instr_ret = 0xC3;
 
  //Прочитаем и сохраним первые оригинальные 6 байт стандартной API функции
  ReadProcessMemory(GetCurrentProcess(),(void*) adr_MessageBoxA, 
                    (void*)&old, 6, &written);
 
    //Запишем команду перехода на нашу функцию поверх этих 6-ти байт
    WriteProcessMemory(GetCurrentProcess(), (void*)adr_MessageBoxA, 
    (void*)&jump, sizeof(jmp_far), &written);
}
Вот функция внедряет push и ret используя "машинный код инструкции перехода", но она не работает...

Может можно просто asm вставку внедрить?
Или например так, преобразовать asm вставку в машинный код, а затем этот машинный код внедрить, по тому же принципу, как здесь?
 
Текущее время: 23:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru