Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

farheapcheck

 
 Функция            Просматривает и проверяет глобальную динамическую
 
                    область памяти.
 
 
 
 Синтаксис          #include<alloc.h>
 
                    int farheapcheck(void);
 
 
 
 Файл, содержащий   alloc.h
 
 прототип
 
 
 
 Описание
 
                    farheapcheck проходит  по  глобальной  динамической
 
                    области памяти и  проверяя  все  блоки,  указатели,
 
                    размер и другие важные параметры.
 
 
 
 Возвращемое        При ошибке возращется значение < 0, при успешном
 
 значение           завершение возвращается значение > 0.
 
 
 
                    Если нет глобальной динамической области памяти, то
 
                    возвращается    значение   _HEAPEMPTY   (1).
 
 
 
                    Если глобальный       heap       проверен,       то
 
                    возвращается_HEAPOK (2).
 
 
 
                    Если память     запорчена,     то      возвращается
 
                    _HEAPCORRUPT (-1).
 
 
 
 Переносимость      farheapcheck уникальна   для   DOS.   Функция    не
 
                    совместима с Windows.
 
 
 
 Смотрите также     heapcheck.
 
 
 
 Пример:
 
 
 
 #include<stdio.h>
 
 #include<alloc.h>
 
 
 
 #define NUM_PTRS    10
 
 #define NUM_BYTES   16
 
 
 
 int main(void)
 
 {
 
    char far *array[NUM_PTRS];
 
    int i;
 
    for(i=0; i<NUM_PTRS; i++)
 
      array[i] = farmalloc(NUM_BYTES);
 
    for(i=0; i<NUM_PTRS; i+=2)
 
      farfree(array[i]);
 
    if(farheapcheck() == _HEAPCORRUPT)
 
      printf(" Память запорчена\n");
 
    else
 
      printf("Все нормально\n");
 
    return 0;
 
 }

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS