Ребята, где почитать про PE-формат, но с примерами?

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

  1. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Так, чтобы было видно: вот файл, вот в нём такая-то секция, вот такая-то, а вот секция кода и так далее. Тогда авторы сами запутаются в своих описаниях. Вот, например, здесь
    http://education.kulichki.net/comp/hack/27.htm
    Цитирую

    Заголовок PE файла расположен по смещению, заданному полем e_lfanew заголовка MS-DOS. Поле e_lfanew содержит простое смещение в файле, поэтому для определения адреса заголовка PE файла мы должны добавить к базовому адресу файла, отображенного в память, это смещение - получим адрес в нашем отображенном в память файле. Например, следующий макрос используется в файле заголовка PEFILE.H:
    PEFILE.H
    #define NTSIGNATURE(a) ((LPVOID)((BYTE *)a + \
    ((PIMAGE_DOS_HEADER)a)->e_lfanew))

    После напримера, выделенного мной, ждёшь, что тебе скажут: вот у тебя поле e_lfanew расположено по адресу такому-то. А базовый адрес там-то. Прибавь к базовому адресу смещение (e_lfanew) и посмотри на полученное значение, например, в hiew Там ты увидишь имя файла. Ни фига подобного. Какие-то макросы... Нет, макросы вещь полезная, но не в данном же млучае! Или вот ещё
    http://www.wasm.ru/article.php?article=green2red02#_Toc100906478
    Цитирую

    Общий вид PE-файла
    PE-файл в самом своем начале содержит программу для ОС DOS.

    Да неправда это. В самом начале мой CRACKME.EXE содержит какую-то сигнатуру (?) MZ. Про неё написано в других местах, что она и зачем, просто несоответствия у разных авторов пугают. В общем, искал я искал и ничего соответствующего моим скромным требованиям не нашёл. Извините. Это я всё написал, чтобы вы поняли, что я интернет доборосовестно шерстю.

    ...А CRACKME.EXE я вскрыл, и сделал это много изящнее, чем в руководстве написано. Там сказано, как ключ подбирать, я же нашёл место в коде программы, которое следует сразу за вводом ключа и сделал безусловный переход на нужную MessageBoxA. Теперь новый код хавает любой ключ, хоть вообще никакого ключа не вводи! Прыгай taboм с поля на поля, жми OK и ты в шоколаде.Вот эта тема
    http://www.wasm.ru/forum/viewtopic.php?id=29717
     
  2. Leonov

    Leonov Николай

    Публикаций:
    0
    Регистрация:
    14 ноя 2008
    Сообщения:
    14
    Адрес:
    Астрахань
    здесь же на wasm есть "Путеводитель по написанию вирусов под Win32", также серия статей "От зеленого к красному". а вообще есть Google...
     
  3. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Да в гугле всё сплошь без примеров, поэтому я и пурхаюсь. Серия статей "от зелёного к красному" тоже без примеров. Ссылка на неё есть в моём первом сообщении.
    ...Сейчас глянул "Путеводитель по написанию вирусов под Win32" и опять без примера... Да что ты будешь делать...
     
  4. Leonov

    Leonov Николай

    Публикаций:
    0
    Регистрация:
    14 ноя 2008
    Сообщения:
    14
    Адрес:
    Астрахань
    все там есть, читать надо а не смотреть
     
  5. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    А что мне читать? Если нету примеров, то их и нету.
    http://www.wasm.ru/article.php?article=vgw03
    Вот статья передо мной. Вот синие поля. Вот объяснения. Где подопытный файл? Нету. Если в инструкции по взлому у того же переводчика он был, так он там и был.
    ...Нечего перед модераторами рисоваться, дескать неуч ещё один объявился.
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    amvoz
    Да нет. Правда. Написано это под заголовком "Общий вид PE-файла". Поэтому в подробностях здесь не расписано (подробности дальше по статье). Программа, именно программа под ОС DOS (exe-шник) начинается с сигнатуры MZ. Поэтому здесь автор абсолютно прав.
    Вообще это лучшая статья по PE из всех, которые я встречал. Хотя ошибки там, конечно, есть. Но ИМХО их не настолько много, чтобы запутать новичка, а скорее как раз такое количество, которое позволит укрепить знания.
     
  7. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    amvoz
    e_lfanew это смещение хидера от начала файла, что не понятно ?
     
  8. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Да чёрт с ним со всем, не собираюсь я авторов на неточностях ловит. Я хотел до вас донести, что даже и эта, не смею оспаривать, одна из лучших статей про pe-формат- и та без примера.
    ...Мне просто тяжело очень на своём подопытном файле все эти секции отыскивать, вот помощи и попросил.
    ...Понятно. Но когда я открываю свой файл *.exe в hiew то вижу некоторые расхождения меду такой вот понятной теорией и тем. что вижу (простите за тафтологию). Думаю, что смотрю не там. А так как опыт у меня небольшой, то хотелось бы пример, где был бы написано: смотри там. Я новичок в конце концов, могу не на то поле глянуть или ещё что-нибудь такое.
     
  9. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    amvoz
    Интересно почему ни в каком софте нет сокрытия потока от отладчика(ThreadHideFromDebugger), что завело бы подобного крэкера в тупик...
     
  10. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Я ничего не понял из ваших слов. Я прошу всего лишь то, что прошу и пример. Считаете вы, что я недостаточно шерстю- гугл- Бог вам судья.
     
  11. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Парни, а может быть такое, что не все секции выгружаются в память? Мне вот в этой теме написали, что именно так
    http://www.wasm.ru/forum/viewtopic.php?pid=278656#p278656
    Сообщение номер 9. То есть я смотрю в Hiew и ищу то, что в память не выгрузилось. Может такое быть?
     
  12. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    amvoz
    А вам пример чего? PE? Берём Notepad, калькулятор, Task Manager... примеров что ли мало?
    Вообще не в обиду, но новички всё... как бы по-мягче... требовательнее и требовательнее. Вот-вот да кто-нибудь запостит тему вида: "Комментатор мультимедийного видеокурса по снятию Star Force в Syser на шестой минуте не сказал, почему надо брякаться на MessageBox, а не на LeaveCriticalSection. Они там что, не понимают, что новичкам надо понятнее разжевать?"
    Радоваться надо, что столько информации есть (не то, что лет 5-10 назад), а не жаловаться за жисть.
     
  13. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    amvoz
    Думаю, max7C4 имел в виду, что не все секции из PE проецируютcя моментально в физическую память, а только по мере надобности программы. Но на Ваших наблюдениях это вообще ни в коей мере не отразится, т.к. в виртуальной памяти все секции есть.
     
  14. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Пример исполняемого файла. И ткнуть меня носом. Не, ну не хотят авторы- не хотят. Но из 10-ти то статей хоть в одной может быть пример? Я понимаю мне никто ничего не обязан, но и я не чего-то там заоблачного не требую. А то ведь нигде примеров нет. А самому мне не получается. У меня очень-очень простенький файл CRACKME.EXE Если бы у вас он был, я бы показал вам реально, как я пурхаюсь с этим чёртовым смещением. Оно у меня в Hiewe равно 10000h Где должна быть точка входа? Она у меня 401000h Вот уже недоумение. То есть реально начало файла 401000h- 10000h? Может быть, но сомневаюсь я в этом адресе. Вот чтобы сомнения развеять и прошу пример.
    ...А насчёт требований... Не знаю я. Мы либо учим, либо не учим. Пример он и в Африке пример, какое обучение без примеров-то? Нет, ну я тоже в своё время по книжке изучал программирование, так что же в этом хоршего?
     
  15. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    amvoz, моно в OllyDbg загрузить файл и при помощи мозгов, её коментариев, прочего попытаться разобраться...

    Ну и где он?
     
  16. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Не знаю я... Возьмите да загрузите CRACKME.EXE в OllyDbg и проверьте. Там будет с 401000h по 401fffh байт. А по факту 12888. Можете в Hiew посмотреть, можно с помощью небольшой программки подсчитать, могу дать. Где недостающие? Как копаться? Как исследовать? Но повторюсь, дело не в этом и вопрос не об этом сейчас.
     
  17. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Я это и сделаю. Только я хотел,чтобы мне в этом помогли. А нахрапом не получится уже потому хотя бы, что там не все байты будут, в OllyDbg И об этом я написал сообщением выше. Там не будетнапример, с 1-го по ... Короче, там с кода сразу начинается. А "Шапки" файла нет
    ...Тут написано, где взять CRACKME.EXE
    http://wasm.ru/article.php?article=ollydbg01
    Прямуя ссылку решил не давать.
     
  18. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Ладно, ребята, побалагурили и хватит. Не отвлекайте меня по пустякам. Буду без примеров изучать.
     
  19. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    amvoz
    Спорим что есть? Ладно не буду отвлекать. )))
     
  20. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Может быть. Но где её искать-то? Через ctrl+g? Но что набирать в этом поле? Какой адрес? 00000000 не канает... Я уже писал- как хорошо было бы, если бы с самого начала файл открывался в OllyDbg... Да, наверное, там, в инструкции по взлому написано где-нибудь... в конце. Скажите просто и буду Вам благодарен. Нет, скажите лучше... Должен какой-то ведь принцип быть, чтобы эту шапку там найти... В Hiew она если есть, то она сразу есть, там начинается с 0h до 5F0 и потом сразу адрес 401000h. Да я и сам со временем разберусь, но раз уж Вы здесь и я здесь, смешно не сказать.