Введение в крэкинг с нуля, используя OllyDbg - (глава 14)

Тема в разделе "WASM.BEGINNERS", создана пользователем Europa, 7 апр 2008.

  1. Europa

    Europa New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2008
    Сообщения:
    5
    читаю "Введение в крэкинг с нуля, используя OllyDbg - (глава 14)", есть некоторые нипонятки.
    1)Почему программы всегда должны загружаться с 0040100.
    2)В чем разница между тем когда не запустив программу ставишь точку останова, и когда программа уже запущена?(именно глава 14).
     
  2. assorted

    assorted New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    227
    1) не все. Другое дело компиляторы делают именно так, но можно поменять. смотри структуру PE

    2) А разница есть? не замечал.
     
  3. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    Логика программы может не предусматривать цикличное выполнение участка кода, внутри которого брэкпоинт. А значит останова может никогда не произойти
     
  4. Europa

    Europa New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2008
    Сообщения:
    5
    1)PE ??? хоть я его в олли видел но не знаю... a зачем он нужен?
    2)установив до запуска программы брекпоинт программа запустившись останавливается именно на 00401000, а запустив программу и установив брекпоинт программа останавливается в другом месте в чем именно и понятно, но там(в уроке надо было установить брек на вход на сегмент кода),отсюда и вопрос почему мы установили брек после запуска программы если нам нужнен был брек на вход сегмента кода.
     
  5. assorted

    assorted New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    227
    1) http://wasm.ru/article.php?article=1002001
    2) При загрузке программы мы и так оказываемся на точке входа (EP). Если во время выполнения программы поставить бряк на секцию кода то ты окажешся где угодно либо в WindowProc либо msg_loop своей программы.
     
  6. Europa

    Europa New Member

    Публикаций:
    0
    Регистрация:
    7 апр 2008
    Сообщения:
    5
    тханх, не заметил... буду читать...
    А как быть насчет 20 главы, не понятны такие понятия как логические адреса, хандлы и ПИД`ы (Хоть я знаю что-такое хандлы и пиды но не знаю отличия между ними).
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Europa
    PID - process ID Это число и используется только в определенных местах.
    Handle у процесса тоже есть, это тоже число, но скорее все-таки указатель
    и чаще применяется для окон и прочего...
     
  8. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    valterg
    Число e - это тоже число, и тоже используется в определенных местах. И Ваш рост - тоже число, и как ни странно, есть определенные места, где оно используется. Вывод: PID, e, и Ваш рост согласно вышеприведенным определениям - одно и то же.
    Europa
    Я знаю, что такое стул и что такое яблоко, но вот разницы между ними не вижу.

    А если серьезно, то
    PID - идентификатор процесса,
    a) действительный в контексте всей операционной системы.
    b) Присваивается каждому процессу в момент создания и валиден до момента уничтожения процесса.
    c) Единственный для данного процесса в контексте всей операционной системы. Один процесс - один PID (взаимнооднозначное соответствие).
    Хэндл процесса (например, процесса A) - идентификатор,
    a) действительный только в контексте конкретного процесса (например, процесса B) и определяющий права доступа (и некоторые другие характеристики: например, наследуемость хэндла другими процессами) процесса B по отношению к процессу A при использовании процессом B хэндла процесса A. A и B могут быть одним и тем же процессом.
    b) Хэндл процесса A создается только по запросу процесса B (DuplicateHandle, используемый другим процессом по отношению к процессу B или наследование хэндла процессом B в момент его создания от родительского процесса - исключения из данного правила) и закрывается в момент уничтожения процесса B или по запросу процесса B.
    c) Процесс B может иметь множество хэндлов процесса A с одинаковыми или различными правами доступа.
     
  9. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    Идентефицировать процесс по имени так же трудно, как идентефицировать людей по именам.
    PID - это отпечаток пальца процесса, он унекален. PID - Process Identeficator.
    Handle - это описатель какого либо открытого объекта в ОС.