Archive | May 2010

Задача 33 Bad Characters


Spoiler Warning!!

Задача која навистина не знев за некој работи(не дека немав слушнато али во C# е малце поразлично) е постоењето на динамичко и статичко кастирање (не кастрирање 😀 тоа друго е haha).

Според референцата на Visual C++ од Microsoft еве ја нивната дефиниција:

Converts expression to the type of type-id based solely on the types present in the expression.

И нејзиното дефинирање:

static_cast <type-id> ( expression )

Истото можеме да го искористиме и во обичното C++ (т.е во non .net platform)

Да преминеме на задачата

/************************************************
* Toy program to print three characters.       *
************************************************/
#include <iostream>
int main()
{
//A character to be printed
char ch = ‘A’;
std::cout << ch;        // Output A
std::cout << ch+1;      // Output B
std::cout << ch+2;      // Output C
std::cout << std::endl;
return (0);
}
/************************************************
************************************************/

Задача гласи зошто не добиваме ABC т.е ако со првото cout се печати А , со второто B и тн.

Концептот на користење на кастирањето е тоа што тоа го сведува на ниво на типот на променливата која што ја имаме дефинирано т.е char во овој случај.

Така да решението би ни бил:

/************************************************
* Toy program to print three characters.       *
************************************************/
#include <iostream>
int main()
{
//A character to be printed
char ch = ‘A’;
std::cout << static_cast<char>(ch);        // Output A
std::cout << static_cast<char>(ch+1);      // Output B
std::cout << static_cast<char>(ch+2);      // Output C
std::cout << std::endl;
return (0);
}
/************************************************
************************************************/

P.S Ова е spoiler warning again

link

How not to program in c++


Книгата на Steve Oualline – How not to program In C++  е вистинскиот предизвик за тестирање на вашето знаење во областа на програмирањето. Книгата се состои од 70.000 линии код во којшто за разлика од другите книги на програмирање каде што секоја започнува со објаснување на која линија или кој клучен збор што значи, во оваа книга малце темпото на изучување е забрзано со тоа што ви ги наоѓате грешките во една програма. Грешките најчесто се едноставни (барем до 4 дел) и тешко се забележуваат, затоа што компајлерот не ги забележува овие грешки. Тие грешки се едни од најтешките за детектирање затоа што се логички грешки. Доколку саката да го проверите своето знаење во областа на програмирањето дефинитивно ви препорачувам да ја прочитате оваа книга.

Отцена:5.0

П.с не бидете сигурни дека знаете еден програмски јазик, затоа што вашето знаење може да подлегне на грешки кои случајно или не случајно сте ги направиле и поради тоа можат да предизвикаат нефункционалност на програмата која ја изработувате.

Линк

Цели на пенетрациско тестирање.


Цели на пенетрациско тестирање:

  1. Не деструктивни тестирања:
  • Скенирање на далечински сервери за одредени vulnerabilities (пропусти/дефекти)
  • Анализирање и потврдување/дефинирање на резултатите.
  • Дефинирање на релација vulnerability-exploit (кој exploit за кој пропуст/слабост)
  • Не се користат критични DоS (denial of service)  напади.
  1. Дестриктивни тестирања:
  • Скенирање на далечински сервери за одредени vulnerabilities (пропусти/дефекти)
  • Анализирање и потврдување/дефинирање на резултатите.
  • Дефинирање на релација vulnerability-exploit (кој exploit за кој пропуст/слабост)
  • Се испробуваат сите DоS(denial of service) напади(пр. Buffer Overflow).