Четверг, 16.05.2024, 03:45
Приветствую Вас Гость | RSS
Меню сайта
Форма входа
Категории раздела
КОПИРАЙТИНГ, SEO КОПИРАЙТИНГ [12]
Здесь представлены все мои тексты. Работы исключительно мои
ПЕРЕВОДЫ [4]
Здесь представлены мои переводы с иностранных языков
Поиск
Календарь
«  Апрель 2011  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 13
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

SEO - Search Engine Optimization

- МОЕ ПОРТФОЛИО -

Главная » 2011 » Апрель » 13 » Основы хакерства - Перевод текста с русского на английский
02:37
Основы хакерства - Перевод текста с русского на английский

Основы хакерства

Предисловие

Информационная безопасность сегодня представляет одну из весьма горячих тем. Ее актуальность сложно преувеличить, каждое связанное с этой темой пособие неизменно подвергается анализу со стороны весьма скептически настроенных специалистов. Исследование программ напрямую связано с вопросами информационной безопасности.

На мой взгляд, предложенная тема для статей будет интересна для весьма широкого круга читателей. Тематика для статей выбранная мной до некоторого времени считалась как близкая к широко обсуждаемым криминальным темам, и лишь в последнее время вернулась в свое естественное научное русло. Наверное статьями заинтересуются и те, кто только начинают свой путь к Олимпу знаний, и уже крутые специалисты в области программирования и исследования программ. Статьи будут содержать множество уникальных практического материала.

Чем мы будем заниматься

На протяжении всех статей мы будем заниматься увлекательной практической деятельностью, конечно нельзя забывать и о теории. Созданием защитных механизмов и исследованием их стойкости. Скажу сразу – ничего общего со взломом коммерческих программ или кражей денег из банка наше занятие иметь не будет. Я искренне надеюсь, что читатели – граждане в своей массе законопослушные и высоконравственные.

Умение нейтрализовать защиты не дает права применять это умение в преступных целях. Какие же цели являются преступными, а какие нет – вопрос, относящийся уже не к хакерству, а к юриспруденции, в которой я не силен, и все, что я могу порекомендовать – при возникших у вас сомнениях в правомерности совершения некоторых действий обратитесь к юристам.

Однако экспериментировать с вашей личной интеллектуальной собственностью – программами, написанными вами самими, - ни один закон не в праве запретить.

Что нам понадобиться

Выбор рабочего инструментария – дело сугубо личное и интимное. Здесь на вкус и цвет, как говориться, товарищей нет. Поэтому в данных статьях нам понадобиться:

Отладчик Soft-ice не ниже версии 3.25;

Дизассемблер IDA версии 3.7х;

НЕХ-редактор HIEW любой версии;

Любой С\С++ или Pascal-компилятор (каждому своё);

Пакеты SDK и DDK (последнее не обязательно, но желательно);

Первая практика

Алгоритм простейшего механизма аутентификации состоит в посимвольном сравнении введенного пользователем пароля с эталонным значением, хранящимся либо в самой программе (как часто и бывает), либо вне ее, например, в конфигурационном файле или реестре (что встречается реже).

Достоинство такой защиты – крайне простая программная реализация. Ее ядро состоит фактически из одной строки, которую на языке С можно записать так: if(strcmp(введенный пароль, эталонный пароль)){/*Пароль неверен */} else {/* Пароль ОК /*}

Давайте дополним этот код процедурами запроса пароля и вывода результатов сравнения, а затем испытаем полученную программу на прочность, т.е. на стойкость ко взлому:

Пример 1. Пример простешей системы аутентификации

// Простейшая система аутентификации

// посимвольное сравнение пароля

В популярных кинофильмах крутые хакеры легко проникают в любые жутко защищенные системы, каким-то непостижимым образом угадывая искомый пароль с нескольких попыток. Почему бы не попробовать пойти их путем.

Не так уж редко пароли представляют собой осмысленные слова наподобие «Ferrari», «QWERTY», имена любимых хомячков и т.д.

Давайте подумаем. Раз эталонный пароль храниться в теле программы, то, если он не зашифрован каким-нибудь хитрым образом, его можно обнаружить тривиальным просмотром двоичного кода программы. Перебирая все встретившиеся в ней текстовые строки, начиная с тех, что более всего смахивают на пароль, мы очень быстро подберем нужный ключ и откроем им программу. И так начнем:

Можно воспользоваться любым hex-редактором (QVIEW, HIEW…) – кому какой по вкусу, - но в статье я буду использовать утилиты DUMPBIN из штатной поставки Microsoft Visual Studio.

Попросим ее распечатать секцию данных (ключ /SECTION:.data) в «сыром» виде (ключ /RAWDATA:BYTES), указав значок «>» для перенаправления вывода в файл.

Смотрите! Среди всего прочего тут есть одна строка, до боли похожая на эталонный пароль. Испытаем ее? Впрочем, какой смысл – судя по исходному тексту программы это действительно искомый пароль, открывающий защиту, словно золотой ключик. Слишком уж видное место выбрал компилятор для его хранения – пароль не мешало бы запрятать и получше.

Один из способов сделать это – насильно поместить эталонный пароль в собственноручно выбранную нами секцию. Такая возможность не предусмотрена стандартом, и поэтому каждый разработчик компилятора волен реализовать ее по-своему или не реализовывать вообще . В Microsoft Visual C++ для этой цели предусмотрена специальная прагма data_seg, указывающая, в какую секцию помещать следующие за ней инициализированные переменные. Неинициализированные переменные по умолчанию располагаются в секции .bss и управляются прагмой bss_seg соответственно.

Добавим в пример 1 следующие строки и посмотрим, что у нас из этого получиться.

Ага, теперь в секции данных пароля нет и хакеры «отдыхают»! Но не спешите с выводами. Давайте сначала выведем на экран список всех секций, имеющихся в файле:

Нестандартная секция .kpnc сразу же приковывает к себе внимание. А ну-ка посмотрим, что там в ней?

Вот он, пароль! Спрятали, называется… Можно, конечно, извратиться и засунуть секретные данные в секцию неинициализированных данных (.bss), служебную RTL-секцию (.rdata) или даже секцию кода (.text) – не все там догадываются поискать, а работоспособность программы такое размещение не нарушит. Но не стоит забывать о возможности автоматизированного поиска текстовых строк в двоичном файле. В какой бы секции ни содержался эталонный пароль, фильтр без труда его найдет.

Правда, если пароль записан в уникоде, его поиск несколько осложняется, так как не все утилиты поддерживают эту кодировку, но надеяться, что это препятствие надолго задержит хакера, несколько наивно.

 

 

Basics of hacking

Preface

Information security today is one of the very hot topics. Its relevance is difficult to overstate, each associated with the topic guide invariably subjected to analysis by a very sceptical experts. Study programs are directly linked to issues of information security.

In my opinion, the proposed theme for the articles will be of interest for a very wide range of readers. Subject to articles selected me up some time was considered to be close to the widely discussed topics of a criminal, and only recently returned to its natural science course. Probably be interested in articles and those who are just beginning to Olympus knowledge, and have steep experts in the field of programming and research programs. Articles will contain a variety of unique practical materials.

What will we do?

Throughout the article we will deal with exciting practical activities, of course we can not forget about the theory. Creation of protective mechanisms and study their stability. I have to say - nothing to do with the burglary of commercial software or theft of money from the bank our work will not have. I sincerely hope that readers - citizens in the mass of law-abiding and highly moral.

Ability to neutralize the defence does not give the right to use this skill for a criminal purpose. What goals are criminal and what is not - an issue related not to the hacking, and by law, in which I was not strong, and all that I can recommend - if you have encountered doubts about the commission of certain acts refer to the legal profession.

However, experiment with your personal intellectual property - programs written by yourself - no law has any right to forbid it.

What we need

Selecting a tool - it purely personal and intimate. Here, the taste and colour, as they say, friends do not. Therefore, in these articles we need to:

·         Debugger Soft-ice at least version 3.25;

·         IDA Disassembler version 3.7h;

·         HEX-editor HIEW any version;

·         Any C / C + + or Pascal-compiler (to each his own);

·         SDK and DDK (the latter is not mandatory, but desirable).

First Practice

Algorithm is the simplest authentication mechanism is compared character by character the user entered password with the reference value stored in either the program itself (as is often the case), or outside of it, for example, in the configuration file or the registry (which is rarer).

Merit such protection - very simple software implementation. Its core is actually one line, which in C can be written as: if (strcmp (password entered, the standard password )){/* Password incorrect * /} else {/ * Password ОК /}.

Let us supplement this procedure code requiring a password and output the results of the comparison, and then test the resulting program on strength, i.e., for resistance to cracking:

Example 1.  Example of simple authentication system

/ / A simple authentication system

/ / Character by character comparison of the password

#include <stdio.h>

#include <string.h>

 

#define PASSWORD_SIZE 100

#define PASSWORD                      "myGOODpassword\n”

 

int main()

{

                int count=0;

    char buff[PASSWORD_SIZE];

 

    for(;;)

    {

        printf("enter password:”);

        fgets(&buff[0], PASSWORD_SIZE, stdin);

 

        if (strcmp(&buff[0], PASSWORD))

            printf("Wrong password\n”);

        else break;

       

                if (++count>3) return -1;

    }

    printf("Password OK\n”);

}

 

In popular movies, cool hackers penetrate easily into any terribly secure systems, in some incomprehensible way, guessing the password required several attempts. Why not try to go their way.

It is not uncommon passwords are meaningful words like «Ferrari», «QWERTY», the names of your favourite hamster, etc.

Let's think. Once the reference password stored in the body of the program, if it is not encrypted by some clever way, it can be found viewing the trivial binary code. Examining all encountered in her text string, starting with those that most resemble the password, we will very quickly pick up the right key and open them to the program. And so here we go:

You can use any hex-editor (QVIEW, HIEW ...) - to whom a taste - but here I will use the tools of the standard delivery DUMPBIN Microsoft Visual Studio.

Ask it to print the data section (key / SECTION:. Data) in the "cheese" form of (key / RAWDATA: BYTES), specifying the icon ">" to redirect the output to a file.

>dumpbin /RAWDATA:BYTES /SECTION:.data simple.exe >filename

RAW DATA #3

00406000:  00 00 00 00 00 00 00 00 00 00 00 00 3В 11 40 00                             ............;.@.

00406010:  A4 40 40 00 00 00 00 00 00 00 00 00 E0 11 40 00                             д@@.........p.@.

00406020:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                             ................

00406030:  45 6E 74 65 72 20 70 61 73 73 77 6F 72 64 3A 00                             Enter password:.

00406040:  6D 79 47 4F 4F 44 70 61 73 73 77 6F 72 64 0A 00                            myGOODpassword..

 

00406050:  57 72 6F 6E 67 20 70 61 73 73 77 6F 72 64 0A 00                             Wrong password..

00406060:  50 61 73 73 77 6f 72 64 20 4f 4B 0A 00 00 00 00                              Password OK.....

00406070:  40 6e 40 00 00 00 00 00 40 6e 40 00 01 01 00 00                             @n@......@n@....

 

Look! Among other things, there is one line, up to pain similar to reference the password. Experience it? However, what is the point - judging by the source code is really desired password, opening protection, as if the golden key. Too high on the compiler chose to store it - the password would not hurt to hide better.

One way to do it - by force to put a reference to the password personally selected by us section. This possibility does not provide a standard, so every developer compiler is free to implement it in their own way or do not sell at all. In Microsoft Visual C + + for this purpose, a special pragma data_seg, indicating the direction in which to place the section following it initialized. Uninitialized variables by default in the section. Bss and managed pragma bss_seg respectively.

 

Add to the example 1 the following lines and see that we have come out of it.

int count=0;

#pragma data_seg(.kpnc)

char passwd[]=PASSWORD;

#pragma data_seg()

char buff[PASSWORD_SIZE]=””;

if (strcmp(&buff[0], &passwd[0]))

>dumpbin /RAWDATA:BYTES /SECTION:.data simple.exe >filename

RAW DATA #3

00406000:  00 00 00 00 00 00 00 00 00 00 00 00 9B 11 40 00                             ............Ы.@.

00406010: 04 41 40 00 00 00 00 00 00 00 00 00 40 12 40 00                              .А@.........p.@.

00406020:  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                             ................

00406030:  45 6E 74 65 72 20 70 61 73 73 77 6F 72 64 3A 00                             Enter password:.

00406040:  57 72 6F 6E 67 20 70 61 73 73 77 6F 72 64 0A 00                             Wrong password..

00406050: 50 61 73 73 77 6F 72 64 20 4F 4B 0A 00 00 00 00                             Password OK.....

00406060: 20 6E 40 00 00 00 00 00 00 00 00 00 00 00 00 00                              @n@......@n@....

00406070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                              ................

 

Aha, now in the data section and no password hackers "rest"! But do not rush to conclusions. Let us first derive a list of all the sections available in the file:

>dumpbin simple2.exe

Summary

                2000 .data

                1000 .kpnc

 

                1000 .rdata

                4000 .text

 

Custom section .Kpnc immediately attracts attention. Come see what's in it?

dumpbin /SECTION:.kpnc /RAWDATA simple2.exe

RAW DATA #3

00408000:  6D 79 47 4F 4F 44 70 61 73 73 77 6F 72 64 00 00             myGOODpassword..

 

Here it is, my password! Hidden, is called ... You can, of course, distort and bury the secret data in the uninitialized data section (. Bss), RTL-service section (. Rdata) or even a section of code (. Text) - is not all there guess search, and the performance of the program is hosted not infringe. But do not forget about the possibility of an automated search for text strings in a binary file. No matter what section or contained a reference password, the filter can easily find him.

True, if the password is written in Unicode, it is somewhat complicated searches, as not all tools support this encoding, but hope that this obstacle is a long delay hacker somewhat naive.

Категория: ПЕРЕВОДЫ | Просмотров: 1231 | Добавил: tattsar | Теги: Основы Хакерства | Рейтинг: 0.0/0
Всего комментариев: 3
3 Ilya9685  
0
на данном ресурсе собран большой набор умных статей про http://medbaz.com/pages-more-926.html - дрожание рук.

2 Kasyan9449  
0
тут на данном интернет-портале можно увидеть громадный выбор умных статей про http://ublaze.ru/forum/ftopic1072.html - триколор личный кабинет вход

1 anatriarmUi  
0
Продвижение статьями – самый эффективный и безопасный способ раскрутки сайта. Ссылка в статье окружена тематическим текстом, индексируется одновременно с появлением новой странички и размещается навсегда. Именно для обмена статьями в первую очередь и был создан наш SEOClub.

[b]Становясь участником нашего клуба вы получаете:[/b]

Возможность ежемесячного бесплатного обмена статьями с десятками проверенных сайтов.
Даже имея один сайт вы можете размещать статьи на сайтах в Яндекс Каталоге.
Обмен в клубе проходит через панель что значительно ускоряет как добавление статей, так и слежение за статистикой по уже размещенным статьям.
Хороший способ поднять тИЦ



На заре образования клуба при 55 участниках в сетку сайтов было добавлено более 160 площадок. Число участников постоянно растет, соответсвенно растет колличество площадок для обмена статьями.
Средниц тИЦ площадки – 30, максимальный – свыше 400.
Собранная база сайтов позволяет за 1-2 АПа получить тИЦ 30-40.

[b]Условия:[/b]

Каждый участник должен предоставить одну или несколько площадок для публикации статей.
Принимаются не только сайты в ЯК, но и сайты без тИЦ старше 3 месяцев и имеющие в индексе Яндекса более 100 страниц. Сайты на бесплатных хостингах и блоговых платформах не принимаются.
Неактивные участники, не размещающие статьи на своих сайтах, а также злостные нарушители, исключаются посредством всеобщего голосования.


После регистрации вам будет необходимо ознакомится с [b]ПРАВИЛАМИ КЛУБА[/b] и [b]пройти тест[/b]. После этого можно добавлять свои площадки и получить класс, об этом можно узнать в F.A.Q.

[center][url=http://9-seo.ru]Добро пожаловать в наш клуб
РЕГИСТРАЦИЯ[/url] 9-seo.ru [/center]

Имя *:
Email *:
Код *: