Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 12

Temat: Porównanie c z c++ ze względu na bezpieczeństwo...

  1. #1
    Zarejestrowany
    Apr 2008
    Postów
    348

    Domyślnie Porównanie c z c++ ze względu na bezpieczeństwo...

    Umiem dobrze programować w c i assemblerze ale z wieloma "mechanizmami" w c++ nie miałem styczności wiec chciałbym zapytac czy mozliwe są takie rodzaje ataków na aplikacje napisanych w c++rzepełnnienie stosu, przepełnienie sterty, format sting, przepełnienie segmentu bss...wiecej nie znam,czy może w tym języku zostały opracowane nowe technologie które zapobiegają temu

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Generalnie kazdy jezyk jest albo bezpieczny albo niebezpieczny i to zalezy nie od jezyka a od programisty ktory go uzywa Rozumiem, ze chodzi Ci o to czy jezyk te ma w sobie pewne uproszczenia, ktore rozwiaza za programiste pare problemow.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Dec 2007
    Postów
    271

    Domyślnie

    mozesz mi powiedziec czym sie rozni bss overflow od heap overflow?

    w c++ mozna jeszcze wiecej bledow zrobic.
    chocby slawne:

    char data[128];
    cin >> data;

    zwykle bo ale wystepuje w wiekszasci programow.

  4. #4
    Zarejestrowany
    May 2008
    Skąd
    Katowice
    Postów
    59

    Domyślnie

    Generalnie możesz popełnić identyczne błędy. W C++ pojawiają się dodatkowe możliwości wykorzystania np. przepełnienia bufora, jak chociażby nadpisanie wskaźnika do tablicy funkcji wirtualnych.

    Pozdrawiam

  5. #5
    Zarejestrowany
    Apr 2008
    Postów
    348

    Domyślnie

    Znalazłem ostatnio iekawy artykuł ze mozna w programie operującym na plikach uruchomic shellcode jesli w dokumencie znajdą sie kody jakies, ale nie bardzo rozumiem o jakie adresy chodzi-wiem ze napewno adrews shellcode ale jesli przekaze adres początku schellcode to jest błąd...czym to jest spowodowane

  6. #6

    Domyślnie

    Cytat Napisał h3x Zobacz post
    w c++ mozna jeszcze wiecej bledow zrobic.
    chocby slawne:

    char data[128];
    cin >> data;

    zwykle bo ale wystepuje w wiekszasci programow.
    Dlatego powinno się iść z duchem czasu i korzystać z dobrodziejstw standardu ISO C++. Mam na myśli klasę biblioteczną string.

  7. #7

    Domyślnie

    Normalnie to lukasz6547 czyta mi w myślach. Też zastanawiałem się na ten temat i miałem napisać o tym na forum...
    Ale od początku. Kiedy uczyłem się programować w C++ to do operacji wyjścia/wejścia, operacji na plikach używałem standardowych klas języka (iostream, string, fstream). O takich rzeczch nie jak <stdio.h> <stdlib.h> <string.h> nie miałem pojęcia. Ale jak pliki wykonywalne (pod windowsa) osiągały rozmiary pół MB, więc przeszedłem na bibliotekę standardową C.
    No i właśnie teraz się zastanawiam czy to jest bezpieczne. Moim zdaniem język C jest już zbadany i jest to raczej mniej bezpieczne(chodzi o programowanie strukturalne, przekazywanie argumentów funkcji, ciągi znaków, jak i standardowe funkcje), natomiast C++ czyli programowanie zorientowane obiektowo jest trudniejsze (obiekty, również standardowe klasy są mniej spenetrowane). Trudniej jest rozszyfrować dissasamblerkę programu napisanego w C++. Mimio większych rozmiarów plików wykonywalnych lepiej stosować C++.
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

  8. #8

    Domyślnie

    przede wszystkim idźmy z duchem czasu i programujmy obiektowo...

  9. #9

    Domyślnie

    Tak się dzisiaj zastanawiałem dlaczego w C znaleziono tyle błędów. Moim zdaniem główną przyczyną jest to jak traktowane są ciągi znaków.
    Jak deklarujemy napis:
    char napis[16];
    to napis jest wskaźnikiem na pierwszy element. Odwołując się do jednego elementu np napis[3] odczytywana jest pamięć z napis+3*sizeof(char);
    Napisy kończą się zerem więc błędna jest deklaracja:
    char napis[4]={"hack"};
    standardowe funkcje oczekują właśnie tego zera na końcu i jeśli go nie ma odczytują bajty z poza tablicy (lub co gorsza nadpisują). Takie są przyczyny buffer overflow.
    Da standardowych funkcji da się włożyć wszystko. Np printf(const char*,...); nie sprawdza typów zmiennych. np
    char znak=48;
    printf("%s",&znak);
    błąd!!! No przecież też wskażnik na char.
    Można tu popełnić dużo błędów związanych z ciągami formatującymi.
    I jeszcze w C(C++) są niejawne konwersje pomiędzy typami np float na int.
    C++ zawiera bardziej dopracowane funkcje i klasy, ale ten kto nie umie posługiwać się tym językiem popełnia wiele błędów.
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

  10. #10
    Zarejestrowany
    Sep 2007
    Skąd
    Różne zakątki sieci.
    Postów
    995

    Domyślnie

    Co jest bezpieczniejsze? Nic.

    Bezpieczeństwo aplikacji nie zależy od języka, lecz od błędów programisty. Jednak C dzieki swoim ciągom formatującym jest bezpieczniejszy. Do tego jest szybszy i elastyczniejszy, oraz jest w 100% kompatybilny z większością systemów klasy unix.
    http://nikowek.blogspot.com/
    Zbrojne Ramię Pingwina!
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GCS d- s++:++ a--- C+++ UL+++ P L+++ E--- W++ N++ o K- w--
    O M- V- PS PE Y PGP++ t+ 5 X+ R tv- b++ DI- D-
    G+ e- h! r% y?
    ------END GEEK CODE BLOCK------

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. mail bezpieczeństwo
    By nnee in forum Security
    Odpowiedzi: 19
    Autor: 01-27-2008, 16:45
  2. wlan - bezpieczeństwo
    By goffer in forum Newbie - dla początkujących!
    Odpowiedzi: 3
    Autor: 01-07-2008, 01:41
  3. Bezpieczeństwo PKO BP
    By ble34 in forum Off Topic
    Odpowiedzi: 3
    Autor: 12-18-2007, 13:30
  4. Bezpieczeństwo transmisji danych
    By peteer in forum Security
    Odpowiedzi: 9
    Autor: 11-11-2007, 15:24
  5. Zapraszamy Na KONFERENCJĘ BEZPIECZEŃSTWO IT !!!!!
    By bezpieczenstwo.it in forum Security
    Odpowiedzi: 5
    Autor: 09-05-2007, 23:53

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj