Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 09.11.2020
Сообщений: 20

Почему функции это тип данного

15.01.2021, 00:03. Показов 6582. Ответов 71
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В задании такой вопрос:
Почему функции это тип данного?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2021, 00:03
Ответы с готовыми решениями:

Почему у функции main() тип int? Почему не может быть какой-то другой, например, char?
Схема, касательно возвращаемого значения понятна. Не понятно почему именно целочисленное. Хелп)

Почему выделенная внутри функции память удаляется после возврата функции? Это можно исправить?
Вот пример функции, которая выделяет память под переменную, объявленную за её пределами: void Foo (wchar_t* test) { test =...

Как сортировать в рекурсивной функции? Это фунция, выводящая файлы из данного каталога и всех его подкаталогов
void listFilesRecursively(char *basePath, int size) { char path; struct dirent *dp; struct file files; struct...

71
18.01.2021, 09:46
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от Mightsoul Посмотреть сообщение
Я предупреждал.
Всем пофиг.

0
El. Psy. Congroo.
 Аватар для Mightsoul
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
18.01.2021, 12:37

Не по теме:

Знаю. Щито поделать.

Добавлено через 2 минуты
Не понимаю я этих ваших приколов, C++ - лишь красивая обёртка, в нём самом нет ничего. Ну, окей, в C++ этого нет, без тех же самых ассемблерных вставок, не было бы стандартной библиотеки, пользовательский код не смог бы обращаться к коду ядра, и что бы оставалось в C++ или любом другом языке, завязанном на API? Ничего.



Я знаю, что выводится не весь программный код, поскольку C3 3C прерывает выполнение цикла, для полноценной работы необходимо написать подпрограмму дизассемблирования, предотвращающую выход из-за операндов, идентичных кодам операций. Это попросту бессмысленно, поскольку у каждого процессора свой ассемблер. Вместо этого: проверка pop rbp и ret.
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
#include <stdio.h>
 
int main () {
    const unsigned char *byte = (const unsigned char*)&main;
    char hex[3] = {0x00,0x00,0x00};
    for (unsigned int id = 0; ; ++id) {
        hex[0] = (byte[id] & 0xF0) >> 4;
        hex[1] = (byte[id] & 0x0F);
        hex[0] += '0';
        hex[1] += '0';
        if (hex[0] > '9') hex[0] += 'A'-'9'-1;
        if (hex[1] > '9') hex[1] += 'A'-'9'-1;
        if (id && id % 16 == 0) putc('\x0a',stdout);
        printf("%s\x20",hex);
        if (byte[id+1] == 0x5D) {
            if (byte[id+2] == 0xC3) {
                if (id+1 % 16 == 0) putc('\x0a',stdout);
                printf("5D\x20");
                if (id+2 % 16 == 0) putc('\x0a',stdout);
                printf("C3\x20");
                break;
            }
        }
    }
    return 0;
}
..
0
Just Do It!
 Аватар для XLAT
4221 / 2687 / 656
Регистрация: 23.09.2014
Сообщений: 9,246
Записей в блоге: 3
18.01.2021, 12:43
Цитата Сообщение от Mightsoul Посмотреть сообщение
может:
правильно ли я понял,
что вы можете из своей программы изменить содержание адресов, по которым находится исполняемый код этой же программы, т.е. вы умеете в самомодифицирующийСЯ исполнительный код?
0
El. Psy. Congroo.
 Аватар для Mightsoul
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
18.01.2021, 12:49
Да, но лучше использовать VirtualAlloc.

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
#include <windows.h>
#include <stdio.h>
 
LPCVOID GetBasePageAddress (LPCVOID addr) {
    MEMORY_BASIC_INFORMATION info;
    LPCVOID base = 0;
    while (true) {
        VirtualQuery(base,&info,sizeof(MEMORY_BASIC_INFORMATION));
        if ((ULONG_PTR)addr >= (ULONG_PTR)info.BaseAddress && (ULONG_PTR)addr < (ULONG_PTR)info.BaseAddress+(ULONG_PTR)info.RegionSize) {
            break;
        } else base = (LPCVOID)((ULONG_PTR)info.BaseAddress+(ULONG_PTR)info.RegionSize);
    }
    return base;
}
 
int main () {
    DWORD old;
    LPCVOID page = GetBasePageAddress((LPCVOID)&main);
    MEMORY_BASIC_INFORMATION info;
    VirtualQuery(page,&info,sizeof(MEMORY_BASIC_INFORMATION));
    VirtualProtect(info.BaseAddress,info.RegionSize,PAGE_EXECUTE_READWRITE,&old);
    *(unsigned char*)&main = 0xFF;
    printf("%x",*(unsigned char*)&main);
    VirtualProtect(info.BaseAddress,info.RegionSize,old,&old);
    return 0;
}
1
Just Do It!
 Аватар для XLAT
4221 / 2687 / 656
Регистрация: 23.09.2014
Сообщений: 9,246
Записей в блоге: 3
18.01.2021, 12:55
Цитата Сообщение от Mightsoul Посмотреть сообщение
Да, но лучше использовать VirtualAlloc.
ок.
а вы можете модифицировать исполнительный код любых других программ находящихся в данное время в ОЗУ?
0
El. Psy. Congroo.
 Аватар для Mightsoul
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344
18.01.2021, 12:59
Да.

Добавлено через 59 секунд
Но будет проще создать удалённый поток выполнения.

Добавлено через 1 минуту
Могу расписать примерный алгоритм, если нужно.
1
Just Do It!
 Аватар для XLAT
4221 / 2687 / 656
Регистрация: 23.09.2014
Сообщений: 9,246
Записей в блоге: 3
18.01.2021, 14:35
Цитата Сообщение от Mightsoul Посмотреть сообщение
Могу расписать примерный алгоритм, если нужно.
так вы и есть тот русский хакер про которого рассказывают в новостях CNN?
0
 Аватар для Recrut_rf
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
18.01.2021, 14:38

Не по теме:


Цитата Сообщение от Mightsoul Посмотреть сообщение
только ради постижения запретных знаний
А где можно найти эти знания? Можете поделиться? (подозреваю, что нужно проштудировать к примеру Марка Руссиновича "Внутреннее устройство Windows" ну и книги по WinAPI, которые описывают его системную часть)



Добавлено через 55 секунд
Цитата Сообщение от XLAT Посмотреть сообщение
про которого рассказывают в новостях CNN

Не по теме:

а чё там в новостях?

0
18.01.2021, 14:50

Не по теме:

Цитата Сообщение от Recrut_rf Посмотреть сообщение
а чё там в новостях?
русские хакеры разваливают родину CNN.

подробности сами идите смотрите.

0
18.01.2021, 14:52

Не по теме:

Цитата Сообщение от Recrut_rf Посмотреть сообщение
А где можно найти эти знания?
Ну по модификации кода в других программах, если мне память не изменяет есть даже у Рихтера в "Создание эффективных Win32-приложений". У Шрайбера для общего развития, у Хоглунда в "Руткитах" что-то есть. По самомодификации кода у Криса Касперски из русскоязычных есть статьи. Ну и вообще, много чего используется в вирусных движках (пермутация, полиморфные/метаморфные движки). Гуглите VX Heaven - там есть статьи.

0
18.01.2021, 15:01

Не по теме:


Цитата Сообщение от XLAT Посмотреть сообщение
русские хакеры разваливают родину CNN.
Понял

WhiteP, спасибо, понял - хорошо, что часть этой литературы у меня уже есть - надо будет найти время и почитать.

0
18.01.2021, 23:15

Не по теме:

Цитата Сообщение от XLAT Посмотреть сообщение
так вы и есть тот русский хакер про которого рассказывают в новостях CNN?
Я умею писать червей, полиморфные вирусы, знаю про некоторые уязвимости, атаки, могу писать чит-программы, драйверы, делать ботов, снифферы, проводить спуфинг (MITM-атаку), организовывать параллельные вычисления, к примеру для брутфорса, понимаю железо на уровне управления током, знаю архитектуру и люблю паять, но я не хакер, я даже не знаю, какие вирусы нынче гуляют по просторам всемирной паутины, хотя это и не важно, дебаггер мой, как щит и меч мой, любого змия уничтожит, можно прикалываться над разной вредоносной софтиной, извращаться с её потоками, всячески мешать ей жить спокойно, перехватывать вызовы потенциально опасных функций и просто радоваться жизни.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2021, 23:15

Тип функции int или char, в чем разница и когда это важно?
Ребята привет, не понимаю разницу в типе функции. В данном примере функция digit имеет тип char. Если дать ей тип int, то ничего не...

Почему у функции main() тип возвращаемого значения - int?
Здравствуйте! В языке C# main &quot;свободный&quot;: void main (). Логично, поскольку программа - это набор операторов, которые в общем смысле ничего...

Почему в функции operator не ставят тип возвращаемого значения?
Добрый день! Учу С++ по книге Лафоре. Пример кода ниже. Стало интересно, почему в функции operator есть возвращение значения return. В...

Что это за фишка языка? s+=i[a]; почему это вообще работает? Где про это прочитать?
#include &lt;iostream&gt; using namespace std; int main() { int a={1,2,3,4,5}; int s=0; for(int i=0;i&lt;5;i++) ...

Почему тип входящего параметра функции может отличаться от типа возвращаемого значения?
Зачем здесь указываеться другой тип данных: double &amp;change_it(int i); Весь код: using namespace std; double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
72
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru