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

Выполнение подгружаемого кода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Магический квадрат http://www.cyberforum.ru/cpp-beginners/thread1107285.html
Задана матрица целых чисел. Определить является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы. Использовать процедуры. #include <iostream> using namespace std; int sum_d(int**,int,bool);//sum diagonal int sum_(int**,int,int,bool);//sum rows and cols int main(){ int size=10; cout<<"razmer mas:";
C++ Копирование дерева каталогов в несколько потоков Есть задача скопировать дерево каталогов в несколько потоков,количество потоков равно количеству количеству каталогов,средство синхронизации семафор. Синхронизировать вывод в терминал скопированных каталогов и файлов. Проблема в том что никогда подобное не делал ,подскажите пожалуйста в чем работать ,какие-нибудь простые примеры чтобы можно было понять. Теорию про средства синхронизации читал.... http://www.cyberforum.ru/cpp-beginners/thread1107271.html
Подправьте код, чтобы норм компилировался, просто у меня старый источник примеров по C++ C++
Подправьте код, чтобы норм компилировался, просто у меня старый источник примеров по C++ #include <iostream> #include <conio.h> #include <string.h> using namespace std; class book { public: book (char*, char*, char*);
Дана матрица B(8,5). Составить массив, содержащий произведения элементов строки матрицы? C++
Вот я сделал - это дана матрица A(5,6). Составить массив содержащий минимальные элементы каждого столбца. А как переделать в - Дана матрица B(8,5). Составить массив, содержащий произведения элементов строки матрицы? Помогите ребят) #include <iostream> #include <conio.h> using namespace std; int A = {
C++ Оставить только то что после разделителя (знака = ) http://www.cyberforum.ru/cpp-beginners/thread1107244.html
Здравствуйте, есть файл с кучей мусора и небольшими крупицами нужной информации, которая находится после знака = и начинается обязательно на число пример: IdMerchant=532541837 CARD_TYPE=CB numCarte=4970402011238561 EXPIRATION_MONTH=8 EXPIRATION_YEAR=2015 codeSecurite=912 birthday= LASTNAME=MALARD FIRSTNAME=PIERRE
C++/CLI WinForms Richtextbox открытие txt через filedialog Короче, вот проблема: пишу текстовый редактор, подключил filedialog для открытия *.txt файлов. Когда загружаю txt с английской раскладкой - все отлично, но как только пытаюсь загрузить русскую раскладку - вместо букв отображает ромбики, кружечки и т.п. private: System::Void открытьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { Stream^ myStream; ... подробнее

Показать сообщение отдельно
headcrab
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 15
17.03.2014, 20:10     Выполнение подгружаемого кода
Присоединяюсь. Нужно, чтобы на всех системах моя программа могла грузить код в стек и там выполнять его. Компилирую через msvc. Можно ли параметрами компиляции, ну или правкой секций бинаря гарантированно сделать стек исполняемым? Вызывать из него планирую только внутренние функции программы. Или обязательно надо выставлять права на страницы стека VirtualProtect'ом? Хотелось бы без этого.

C
1
asm("jmp %0" : : "r"(code));
%0 - означает, что на это место подставляется первый по счету аргумент. После первого ':' перечисляются аргументы-примники, после второго ':' аргументы-источники.
"r" означает, что аргумент в скобках это регистр, "m" - что это память. Их много разных есть.
Не уверен, но вроде при указании абсолютного адреса для jmp или call нужно перед %0 добавлять символ '*'.
А вообще можно без асм вставки привести массив к типу функция и вызвать ее. Тут главное не забыть восстановить указатель стека перед ret, иначе нормального возврата не будет.
 
Текущее время: 15:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru