ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1781  
Старый 07.11.2008, 14:48
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию

Цитата:
Сообщение от nerezus  
Никак.
Поэтому так часто и встречаются уязвимости типа переполнений буфера, которых в других языках не бывает.
Это что же в таком языке как С вообще нет никакой засчиты? А если я вместо переменной типа int напишу Hello, то любая прога на С у меня вылетит?
 
Ответить с цитированием

  #1782  
Старый 07.11.2008, 16:32
Fertility
Новичок
Регистрация: 05.11.2008
Сообщений: 5
Провел на форуме:
9492

Репутация: 1
По умолчанию

Цитата:
Сообщение от VIP  
Это что же в таком языке как С вообще нет никакой засчиты? А если я вместо переменной типа int напишу Hello, то любая прога на С у меня вылетит?
Сшка язык более низкого уровня чем Питон. В этом есть свои плюсы, но и есть свои минусы. Если тебе надо какую-то особую защиту в твоем приложении - тебе придется написать ее самому) Защиты от дурака не существует, зато есть быстродействие, более простой доступ к памяти и предположение что программист не дурак и знает что пишет
Питон ориентирован на то чтоб тебе было максимально легко и комфортно писать программу, С ориентированна на то чтоб компьютеру было максимально легко и комфортно ее исполнять.
На счет Инт и Хеллоу то это синтаксическая ошибка, такой код просто не скомпилируется. В отличии от Питона в С надо явно задавать тип переменных.
На счет массивов - если ты не знаешь сколько элементов у тебя будет просто создай масив на количество элементво точно больше чем тебе может протребоватся(если не хочешь особо мучать свою голову), либо динамический масив, указатели, выделение памяти....
А вообще если ты в книге дочитал до структур, ЧИТАЙ ДАЛЬШЕ, там все это будет....
------
Апаю свой вопрос
на этапе линка Сшка(VC++ 2008 как и пробовал в 2005) выдает ошибки:
Код:
1>Process.obj : error LNK2028: unresolved token (0A000009) "extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)" (?FindWindowW@@$$J18YGPAUHWND__@@PB_W0@Z) referenced in function "public: void * __clrcall CProcess::CreateGEProcess(void)" (?CreateGEProcess@CProcess@@$$FQ$AAMPAXXZ)

1>Process.obj : error LNK2019: unresolved external symbol "extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)" (?FindWindowW@@$$J18YGPAUHWND__@@PB_W0@Z) referenced in function "public: void * __clrcall CProcess::CreateGEProcess(void)" (?CreateGEProcess@CProcess@@$$FQ$AAMPAXXZ)
Что ей так не нравится в моей програме, учитывая что по сути там всего одна гореинструкция hWindow=FindWindow(LPCWSTR("TForm"),0); ???
Пробовал создать консольное приложение, успешно линкует и запускается..... А в ВиндовсФормАпликейшн получается ошибка

Последний раз редактировалось Fertility; 07.11.2008 в 16:40..
 
Ответить с цитированием

  #1783  
Старый 07.11.2008, 16:44
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Цитата:
А если я вместо переменной типа int напишу Hello, то любая прога на С у меня вылетит?
Есть наверняка проверки дополнительные на ввод данных и создана система обработки ошибок try catch - поэтому не каждая вылетет.
 
Ответить с цитированием

  #1784  
Старый 07.11.2008, 16:47
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Fertility Вот так попробуй - hWindow=FindWindowW(LPCWSTR("TForm"),0);
 
Ответить с цитированием

  #1785  
Старый 07.11.2008, 17:10
Fertility
Новичок
Регистрация: 05.11.2008
Сообщений: 5
Провел на форуме:
9492

Репутация: 1
По умолчанию

Цитата:
Сообщение от GlOFF  
Есть наверняка проверки дополнительные на ввод данных и создана система обработки ошибок try catch - поэтому не каждая вылетет.
Нету такой проверки, более того быть НЕ должно принципиально =) Если програма не вылетает или не появляется сыстем эррор это просто не тру Си программа
Если програмеру такая проверка нужна - он должен написать ее сам! Тоесть считать текстовую переменную, переобразовать ее в число, если это не число сообщить об этом пользователю, а если число то ТОЛЬКО ТОГДА передавать это число на переменную Int

Цитата:
Сообщение от GlOFF  
Fertility Вот так попробуй - hWindow=FindWindowW(LPCWSTR("TForm"),0);
Попробовал, не работает. ошибку выдает туже Подобные функции типа GetForegroundWindow тоже линкование не проходят.... Хэлп
 
Ответить с цитированием

  #1786  
Старый 07.11.2008, 17:55
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию

А сортировать массивы в C можно? Я имею ввиду не методом прохождения в массиве и перекидыванием большего значения в конец, а просто какой-либо функцией?

Последний раз редактировалось VIP; 07.11.2008 в 18:24..
 
Ответить с цитированием

  #1787  
Старый 07.11.2008, 18:23
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
А сортировать массивы в C можно?
Можно.
 
Ответить с цитированием

  #1788  
Старый 07.11.2008, 18:39
vikseriq
Участник форума
Регистрация: 31.07.2008
Сообщений: 207
Провел на форуме:
299231

Репутация: 107
Отправить сообщение для vikseriq с помощью ICQ
По умолчанию

в любом языке можно, если есть соответствующая либа. даже если кто напишет ее для асма, то и на асме можно будет - инклудь и ранай )
 
Ответить с цитированием

  #1789  
Старый 07.11.2008, 18:48
VIP
Участник форума
Регистрация: 29.12.2004
Сообщений: 105
Провел на форуме:
89596

Репутация: 21
Отправить сообщение для VIP с помощью ICQ
По умолчанию

Почему этот код не даёт мне 10 случайных чисел?

Код:
# include <stdio.h>
# include <stdlib.h>

int main() {
    int a, i;
    i=0;
    while (i!=10) {
    int rand(a);
    i=i+1;
    printf("%g\n", a);
    }
}
 
Ответить с цитированием

  #1790  
Старый 07.11.2008, 19:05
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
Почему этот код не даёт мне 10 случайных чисел?
Потому что не использовал srand
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ