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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


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

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



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

farheapwalk

 
 Функция            Используется для перемещения по глобальному heap
 
                    от узла к узлу.
 
 
 
 Синтаксис          #include<alloc.h>
 
                    int farheapwalk(struct farheapinfo *hi);
 
 
 
 Файл, содержащий   alloc.h
 
 прототип
 
 
 
 Описание           farheapwalk подразумевает, что память не запорчена.
 
                    Для  проверки  перед  использованием   farheapwalk,
 
                    вызовите  farheapcheck.  При  достижении последнего
 
                    блока функция  возвращает  _HEAPOK.  При  следующем
 
                    вызове farheapwalk, она вернет _HEAPEND.
 
 
 
                    farheapwalk получает указатель  на  структуру  типа
 
                    heapinfo  (определена в файле alloc.h).  При первом
 
                    вызове farheapwalk  установите  поле  hi.ptr  в  0.
 
                    farheapwalk  вернет  вам  в этом поле адрес первого
 
                    блока в heap памяти.  Поле hi.size содержит  размер
 
                    этого блока в байтах. hi.in_use - это флаг, который
 
                    устанавливается,  если  этот  блок  используется  в
 
                    настоящий момент.
 
 
 
 Возвращемое        Если нет глобальной динамической области памяти, то
 
 значение           возвращается значение _HEAPEMPTY (1).
 
 
 
                    Если структура heapinfo содержит верные данные,  то
 
                    возвращается _HEAPOK (2).
 
 
 
                    Если достигнут  конец heap памяти,  то возвращается
 
                    _HEAPEND (5).
 
 
 
 Переносимость      farheapwalk уникальна    для    DOS.   Функция   не
 
                    совместима с Windows.
 
 
 
 Смотрите также     heapwalk.
 
 
 
 Пример:
 
 
 
 #include<stdio.h>
 
 #include<alloc.h>
 
 
 
 #define NUM_PTRS    10
 
 #define NUM_BYTES   16
 
 
 
 int main(void)
 
 {
 
    struct farheapinfo hi;
 
    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]);
 
    hi.ptr = NULL;
 
    printf("   Размер      Статус   \n");
 
    printf("   ------      ------   \n");
 
    while(farheapwalk(&hi) == _HEAROK)
 
       if(hi.in_use)
 
           printf("%7u     используется\n",hi.size);
 
       else
 
           printf("%7u     свободен\n",hi.size);
 
    return 0;
 
 }

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

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




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



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


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