Знаменитый CRACKME.EXE Где 15кбайт байт при открытии в отладчике?

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

  1. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Да, где?
    Если откроем этот файл в OllyDbg, то наблюдаем: начало файла по адресу 401000, конец по адресу 4501FFF Это 4095 байт. Где остальные?

    Теперь. Я прочёл (не могу найти где), что *.exe файл включает в себя все API функции, которые он использует. Что ж, это меняет дело. Я насчитал в файле CRACKME.EXE таких функций 62. Возможно, на них и приходятся оставшиеся 15кБайт
    А вот тексты этих функций располагаются по адресам, начинающихся с 7. Та же MessageBoxA начинается по адресу 77D7050B И остальные функции тоже.
    Так вот, друзья, в связи с этим вопрос такой- операционная система- она что, загружает текст файла *.exe по адресу 401000, а используемых им функций вон аж где? Что за разрыв такой в адресах? Непонятно крайне. Или это стандарт такой? Впрочем, начинаю уже гадать на кофейной гуще.

    ...Можно в качестве примера использовать другой файл *.exe Так, я написал на C примитивнейшую программу
    main(){}
    И сохранил её с расширением .exe. Резултьтат тот же самый. Начало файла по адресу 401220 (не 401000), конец по адресу 401FFF Используемые функции вообще не понять, где. Почему они подряд-то не идут после текста файла сразу, а где-то у чёрта на куличках располагаются?

    Спасибо зарание за участие и если кто что-нибудь кинет по этом увопросу почитать, буду благодарен. Типа "Требования к файлу *.exe"

    С уважением, amvoz
     
  2. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    вообще-то функции импортируются из системный dll а модуль (ехе) загружается обычно по адресу 1М, а вот длл грузятся по адресам выше 256М. МесаджБокс никуда не переносится, просто длл грузятся во все процессы разом (для экономии памяти). загрузчик же просто редактирует ссылки на функции при загрузке в ОЗУ. а девается скорее всего отладочная информация (хз че у тебя за версия), коей очень много, а в память ее не грузят. при этом надо смотреть заголовок ехе - что там где. покопайся хотя бы в директории секций и все станет ясно. к тому же в памяти может быть другое выравнивание секций по сравнению с файлом
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Что за бред в 1м посте? какой CRACKME.EXE? почему 4501FFF-401000 это 4095 байт? что значит "Начало файла по адресу 401220"?
    ТС, читай учебник по арифметике чтоб понять как считать числа, читай статьи на васме про PE-файлы и не пиши больше такой бред....
     
  4. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Ты сам бред. CRACKME.EXE это вот отсюда http://www.wasm.ru/article.php?article=ollydbg01
    Это тренировочный файл, его нужно взломать 4501FFF-401000=FFF. Это в шестнадцатеричной системе. В десятичной будет 4095 байт. Как переводить, может, сам догадаешься?

    что значит "Начало файла по адресу 401220" Это значит, что когда я загружаю файл в OllyDbg, самая верхняя строчка в окне, где тображаются операторы ассемблера с опкодами и адресами, где эти опкода находятся, выглядит так:
    00401220 55 PUSH EBP

    Мог бы и сам догадаться. Засим прошу оставить меня в покое, а max74C спасибо, хотя, честно говоря, я ничегошеньки не понял. Про те же процессы, например. Ну, вот это объясните, хотя бы. Адрес 1М это ведь цифра какая-то так? Но в какой системе счисления?
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    4501FFF-401000=500FFF
    по адресу 401220 у тя точка входа а не начало файла
     
  6. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    А, прощу прощения, там конец файла по адресу 401FFF
    Главное в другом. Куда делись оставшиеся 15кБайт? Там, смею думать, объяснили, но я ничего не понял. Если попроще никто объяснить не может- тогда извините за беспокойство.
    ...И потом: почему их в Hiewe-то не видно, эти 15кБайт?
     
  7. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    у него размер в памяти 0x8000 байт
    Alt-E - поле Size
     
  8. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Не знаю я... Там видно, что 8000 это шестнадцатиричная цифра. Где ещё 8000h-fffh=7001h= 28673 байта? Почему традиционный способ (через "Свойства") даёт 12000 байтов? Почему при открытии в hiewe тоже 12000 с копейками байтов, но не 8000h?
    В общем, я ещё больше запутался.
     
  9. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    повторюсь. не все секции одинаково полезны. не все их загрузчик оставляет в памяти, да и выравнивание секций в файле и памяти - разные. в файле спокойно секции могут быть выровнены по сектору (512 байт), а в памяти обязательно по странице (4К) вот и считай в файле может быть меньше резервирующих данных, но больше секций. к тому же в конце образа можно лепить что угодно - загрузчику пофиг (т.е. файл размером 1,5 Гб (Self-extracting архив), а размер exe только 21 Кб и загрузчик даже не подумает вылезти из этих 21 Кб)
     
  10. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Один вопрос: то есть файл делится на секции, как я понял и не все из них загружаются в память (в голове не укладывается, как так)... Слушай, есть что почитать для чайников типа меня? Я коду (кожу) немного на С, но там слова об этом нет...
    Я писал на С вещи и не знаю суть загрузки. То есть я пытался узнать, но подразумевается, что эта вещь настолько простая, что все знать должны. Я плохо искал, наверное. То есть я понимаю, что исполняемый файл загружается в область памяти, называемой оперативной. Но в какой момент? При загрузке-перезагрузке компьютера? При тыкании на исполнимый файл мышкой? Или ещё когда? И как долго он там сохраняется? Если бы я понял такие простые вещи, сам бы уже доходил дальше может быть до остального.

    Но простые вещи мало где описаны в силу того именно, что они простые.
     
  11. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    про "PE-формат" читай...
     
  12. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    amvoz
    кодю
    попробуй почитать Пирогова Ассемблер для Windows и Ассемблер и дизассеблирование - этого хватит чтобы разобраться, но можешь порыться по WASM и найдешь много подобного.
    GoldFinch
    +1
     
  13. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Этот крякми ужос, время взлома ~30 секунд с учётом загрузки в олю. Брякаемся на MsgBox() смотрим адрес возврата и тутже условный переход при валидности пароля.
     
  14. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    По этому крякми.
    Почему нужно безусловно на эту функцию-то брякаться, ответь мне? Потому, что нужно безусловно, что ли, брякаться на эту функцию при взломе программ? Тогда да, разговора быть не может. Только сдаётся мне, способов напечатать сообщение типа: "Верный пароль" вагон и маленькая тележка. Мы же привязались к этой функции, будто другого способа печатать сообщения нет!
     
  15. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Это было предположение. Разумеется я и не думол запускать сисер..
     
  16. sp1k

    sp1k New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2007
    Сообщения:
    24
    Из статьи которую автор привел:
    "Это чистый OllyDbg, и первой программой, которую мы откроем только для того, чтобы ознакомиться с OllyDbg, станет знаменитый CrackMe CrueHead’а, который приложен к данному туториалу."
    У них в Испании (автор вроде оттуда) наверно новичков тыкают в эти крякми (CrueHead'a). Как у нас в некоторых местах рекомендуют практиковаться на крякми от Фантома.
     
  17. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    тут человек разобраться пытается, а вы... эх вы. идите лучше баш перечитайте!
     
  18. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Понятно. Я просто заметил слово 'Знаменитый' и решил посмотреть чемже он знаменит..
     
  19. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    это я тоже заметил, но смог сдержаться
     
  20. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Ура, ребята! Разобрался я более или менее где недостающие байты! Они просто не показываются в основном окошке OllyDbg, а показываются в окошке памяти, чуть пониже! Все 5 секций и шапка файла, всё как и положено. И размеры сходятся и всё. А если кто ещё вопрос такой задаст, то да, смотреть pe-формат для начала, рекомендую вот здесь
    http://www.wasm.ru/article.php?article=vgw03
    ...Может кому из новичков пригодится эта темка! По крайней мере это сообщение постарался сделать информативным.