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

Адрес функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать одномерный массив, в котором находятся повторяющиеся элементы двух известных массивов http://www.cyberforum.ru/cpp-beginners/thread824409.html
#include <stdio.h> #include <conio.h> #define max 100 main() { unsigned M1,M2,M3,i,j=0,n; printf("n="); scanf("%i",&n); for(i=0;i<n;i++) {
C++ На засыпку для новичков: в функции передаётся один параметр, а его значения разные; почему? #include <stdio.h> //Тут некоторый код void foo(X* pX) {printf ("%x\n", pX);}; void bar(Y* pY) {printf ("%x\n", pY);}; int main() { //Тут тоже некоторый код foo(pA); http://www.cyberforum.ru/cpp-beginners/thread824401.html
C++ Автодополнение слов(как в Т9)
Имеем текстовое окно с вводом букв, кнопку "Подбор", список и словарь слов. В первое текстовое поле вводим букву и нажимаем на кнопку. В списке появляются слова, начинающиеся на эту букву. Нажимаем любое слово и оно вставляется в первое поле. Либо все на автомате, без кнопки. Как это реализовать?
C++ Подскажите пожалуйста какую-нубудь IDE на русском языке с русскими подсказками
В ms visual C++ express и то все подсказки на английском в то время как на C# все на русском... Есть какие нибудь IDE с русскими подсказками по коду?
C++ Динамический массив скопировать числа которые повторились 2 раза http://www.cyberforum.ru/cpp-beginners/thread824379.html
Программа должна создать динамический массив из 20 случайных элементов из диапазона и вывести его на экран. Далее программа должна скопировать во второй динамический массив только те элементы, которые в первом массиве встретились ровно 2 раза (если такие будут) и вывести второй массив на экран на отдельной строке. Добавлено через 34 минуты Программа должна создать динамический массив из 20...
C++ Ошибка в односвязном списке #include<iostream> #include<clocale> using namespace std; #define DEBUG class Monom{ protected: int Step,Kof; подробнее

Показать сообщение отдельно
jen941
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
01.04.2013, 00:06     Адрес функции
Здравствуйте.
Имеется программа с одной функцией. При любом изменении кода и повторной компиляции изменяется адрес этой функции.
Можно ли сделать так, чтобы он не изменялся?

Если нельзя, то следующий вопрос...
Вот эта программа:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void vulnerable(char* p, int n) {
  char buf[10];
  memcpy(buf, p, n);
};
 
void hack() {
  printf("hack\n");
};
 
int main() {
  char realbuf[1024];
// Кладем адрес функции hack в необходимые ячейки
  realbuf[20]=64;
  realbuf[21]=180;
  realbuf[22]=21;
  realbuf[23]=01;
  vulnerable(realbuf, sizeof(realbuf));
  return 0;
}
Необходимо реализовать передачу управления функции hack, используя переполнение буфера.
Также известно, что для этого необходимо положить адрес функции hack в realbuf в обратном порядке, начиная с 20 позиции.

Например &hack = 0x0115b440
4016 = 6410
B416 = 18010
1516 = 2110
0116 = 0110
Таким образом получаем то, что написано в коде программы.

НО! Адрес функции hack постоянно меняется. Следовательно, необходимо выполнить int i=&hack, а затем реализовать "отщипывание" 2-х последних шестнадцатеричных цифр, перевод в 10-систему и запись результата в соответствующую ячейку. И так 4 раза.

Всю голову сломал над этой задачей, начиная с шестнадцатеричного деления...

Помогите идеей, пожалуйста.
Надеюсь, все не так сложно, как я себе представляю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru