Сейчас на форуме: Rio (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Отладчик Olly Debug не видит (?) 16-разрядные файлы, но других я создать не могу. Замкнутый круг. |
Посл.ответ | Сообщение |
|
Создано: 22 июня 2008 17:23 · Поправил: zayats · Личное сообщение · #1 Парни! Ещ раз всех с победой! Значит, имеем обучение по "Дневникам чайника", где сказано, что нужно создать файл po.exe с помощью программ FAR и HIEW, содержанием CD20h (конец программы) Расширение .exe это моя инициатива, там надо расширение .com Этот файл прекрасно работает, но ни в какой CodeView для исследования не влезает- этот отладчик напрочь отказывается работать с моей машиной. У меня Windows XP и железо не старое, покупал в мае 2007 г. Значит что? Ставим современный отладчик OllyDebug. А этот в свою очередь, устанавливается, видит демонстрационный файл, но не видит мой созданный файл. (Выдаёт надпись "Unable to open or red file <Полный путь к файлу>")Вот замкнутый круг. 1) CodeView может работать с файлами, но не может работать с железом 2) OllyDebug может работать с железом, но не может работать с файлами Вот и проблема... Как быть? Обучаться надо ведь... Теперь детали 1) До отладчиков типа DS мне как до луны пешком- посмотрел прикреплённый топик... Это я потом. 2) OllyDebag скачал аж с двух ссылок- одна у вас (русскоязычный интерфейс) http://www.exelab.ru/download.php?action=get&n=NTI1 другая отсюда (тут есть текст с обучением) http://www.ollydbg.de/odbg110.zip А демонстрационный пример взят отсюда http://wasm.ru/pub/23/files/ollydbg01-Crackme.zip Называется CrackMe Файл px.exe находится с ним в одной папке, но... с первым OllyDebug работает, а со вторым ни в какую. Ещё. У Вас сказано, что надо файл из дистрибутива прораммы заменить исходным файлом- это чего, а? В общем, если кто не против мне помочь, вопрос сводится к одному из следующих: 1) Как сделать так, чтобы OllyDebug работала с файлами, созданными вышеуказанным способом (может, я что делаю не так? Допускаю и этот вариант)? или 2) Если всё же никак не сделать... Что я вляется аналогом FAR и HIEW, что создавали бы 32-разрядные файлы 3) Если ничто и никак... Что мне заменит "Дневники чайника"? Спасибо всем заранее. C уважением Zayats. P.S. От Hiewа, конечно, не хотелось бы отказывваться. И бесплатный, и вообще. P S. S. Если из-за кривых рук всё, буду только рад научиться работать с этими программами. ![]() |
|
Создано: 22 июня 2008 17:32 · Личное сообщение · #2 |
|
Создано: 22 июня 2008 17:44 · Поправил: zayats · Личное сообщение · #3 Ясно. А как делать 32-битные? C помощью каких-таких аналогов вышеупомянутых программ? Надо только так, идти в ногу со временем Hiew 6.11 хвалёный, FAR тоже. Нестарые, опять же. OllyDebag опять же. ...Может, я ими просто пользоваться не умею? Тьфу. Короче, на кофейной гуще приходится гадать. Нет, было бы написано: "Hiew 611 создаёт 16-разрядные файлы" Не напишут ведь нигде... ![]() |
|
Создано: 22 июня 2008 18:18 · Личное сообщение · #4 |
|
Создано: 22 июня 2008 18:49 · Поправил: zayats · Личное сообщение · #5 Простите пожалуйста. Я знаю, что Hiew это 16-ричный редактор. (В смысле данные в ыводит в 16-ричной системе исчисления, если Вы об этом) Ну, вот я создал файл с помощью FAR и озаглавил его p1.exe и написал в нём CD20h (Это самый простой вариант) Вы сказали, что OllyDebug работает только с Windows приложениями. В моём понимании это: правильный синтаксис, правильное расширение и правильный "размер". Cинтаксис файла p1.exe соблюдён (?) расширение тоже (?) осталось размер. Вопрос-то в чём заключается: как сделать правильный размер (32 бита) минуя FASM, TASM и MASM? Честно говоря не пойму- я в FARе создаю файл с расширением .exe Он автоматически 16-разрядный что ли? И пожалуйста: лишний(!) раз уточнять неохота. Про прерывания мне ещё рано. Мне до них ещё дойти надо. а для этого инструменты нужны... Могу дать ссылку на "Дневники чайника"- там всё написано что и в какой последовательности изучается. ![]() |
|
Создано: 22 июня 2008 20:08 · Поправил: Gambit · Личное сообщение · #6 >Ну, вот я создал файл с помощью FAR и озаглавил его p1.exe Не... лучше назови 1.mp3 ![]() Смысл в том, что exe - это совсем другая история. Написать экзешник в Фаре - это из мира фантастики - минимальный рамер файла там - более 2 тысяч символов (~2Кб) плюс ко всему прерывания в тексте программ в экзешнике не используются. До экзешников ты еще дойдешь - для их создания используется отнюдь не Фар. >естно говоря не пойму- я в FARе создаю файл с расширением .exe > Он автоматически 16-разрядный что ли? А если создать в FARe с расширением mp3 ? Расширение - это еще не показатель.. Точнее, показатель, но для другого) Итого: >Cинтаксис файла p1.exe соблюдён (?) Нет. >расширение тоже (?) Да, но без пользы. >правильный "размер" Что это за размер, взятый в кавычки? ![]() >Этот файл прекрасно работает, но ни в какой CodeView >для исследования не влезает- этот отладчик напрочь отказывается работать с моей машиной. Всмысле прекрасно работает?) Скорее не-работает. Теперь ты понял ошибку? Делай нормальный .com и не выдумывай. >Про прерывания мне ещё рано. Тогда про .com забудь и переходи на masm и соответственно на exe и ольку. Хотя я не понял: что значит про прерывания рано: в дневниках чайника с прерываний все и начинается. ----- программистом не рождаются - им умирают ![]() |
|
Создано: 22 июня 2008 20:39 · Поправил: zayats · Личное сообщение · #7 Короче, я ничего не понял, что делать Я делал расширение .exe только потому, что в Olly Debug такое по умолчанию, но никак не .com А так-то я и файл с расширением .com тоже в Olly Debug вставлял. В общем, Вы дали понять, что начинать надо с простеньких .com что я и делаю. Но их нельзя засунуть (а это надо для обучения) ни в какой отладчик- ни в Olly Debug (по-сермяжному если, они для неё слишком просты), ни в CodeView (он на моей машине работать вряд ли будет, см. сообщение N1) Почему синтаксис неправильный, я тоже не понял. В другом месте, не в дневниках чайника, я нашёл, что команда CD20h может исчерпывать всю программу. Но это ладно. Вот программа, которая выводит строку (из "дневников" взята) mov ah,9 mov dx,10Dh int 21h mov ah,10h int 16h int 20h <И сам строка> Тоже не видна в Olly Debug ни с каким расширением. Ещё раз: делал я файлы *.com Но Olly Debug их не видит, а CodeView не работает. Я в первом сообщении хорошо так это расписал. Но это ладно. Не видит- не видит. Как сделать, чтобы видна-то была? Сейчас буду искать простенькие какие-нибудь отладчики (не CodeVieW), которые бы её видели. (Эх, напорюсь на какой-нибудь аналог Olly Debug и всё, снова застрял неопнятно на сколько...) Вот я даже знаю сколькиразрядные файлы я создаю. Вы этот вопрос мимо ушей пропустили, а переспрашивать боязно. Так и тычусь, что слепой котёнок. P.S. А говоря "размер". я имел ввиду разрядность. ![]() |
|
Создано: 22 июня 2008 21:07 · Личное сообщение · #8 |
|
Создано: 22 июня 2008 21:41 · Поправил: zayats · Личное сообщение · #9 Это не принципиально... Но всё же попробуйте файл <имя_файла.com> переименовать в <имя_файла.exe> И он у Вас заработает. С командой int, которой в exe нет (хотя я понимаю, что тут какой-то подвох, которого я не знаю) На счёт CodeView... Вот вчера я тему создал. http://exelab.ru/f/action=vthread&forum=5&topic=12142 Там в первом сообщении описал его ошибку. А теперь я CodeView помещаю в диск C. Вот полный путь к нему: C:\cv.exe Ну и в диск же C помещаю файл с таким содержанием, который называется <имя_файла.exe> (.exe потому, что CodeView по умолчанию с таким расширением работает как и Olly Debug) И вот включаю cv.exe, c помощью "Tab" добираюсь до "Files list", где красуются cv.exe и имя_файла.exe Активирую имя_файла.exe <Enter> и окошко закрывается. Всё. Ну, то естьс рабочего стола вообще исчезает, как его и не было. Вам виднее, конечно, но вдруг Вы из виду упустили просто... Допустим, CodeView (раритет поскольку) работает с 16-ти разрядными файлами. Я же создаю 32-разрядные файлы (хотя я не знаю. так ли это. Но предположим) Вот он их и не видит. ![]() |
|
Создано: 22 июня 2008 21:57 · Поправил: Gambit · Личное сообщение · #10 > И он у Вас заработает Как ком файл, а не как екзэшник! > Я же создаю 32-разрядные файлы Да сколько раз тебе говорить: не получаются 32-разрядные файлы из 16-разрядных путем переименования. Если ты Вася, а тебя переименавать в Лену - девчонкой ты не станешь! > который называется <имя_файла.exe> Запусти имя_файла.com и расскажи о результатах. ----- программистом не рождаются - им умирают ![]() |
|
Создано: 22 июня 2008 22:21 · Поправил: zayats · Личное сообщение · #11 Так что ли: 1) Создал файл *.com- он 16-тиразрядный 2) Переименовал *.com в *.exe он всё равно 16-раязрядный 3) Создал файл *.exe он 32-разрядный Это итоги тык скыть. Первые 2 пункта я и не оспаривал (явно, по крайней мере) Но первый пункт во купе с третьим это для меня откровение (Я уж три раза сказал, что не знаю, сколькиразрядные файлы я создаю. Это, оказывается, от расширения зависит- не от того, каким оно стало потом, но от того, каки оно было при рождении файла!) ...Нет, авторы тоже хороши- как будто так трудно сказать- разжуют, что .com это dosовские файлы, .exe- windowsские файлы (очень ценная информация, ничего не скажешь). Тут и надо-то две цифры- 16 бит и 32 бита. Всё! Цифры- вот что главное. Так нет, молчим. Зато ".com это dosовские файлы"... А про запуск файла <имя_файла.com> и <имя_файла.exe> результаты одинаковы- и в том и вдругом случае появляется cmd со строкой. Да, я забыл, конечно в конце строки должен быть знак доллара. Вот ещё про CodeView: по его запуску (когда он в каталоге C, естественно) там если изменишь расширение .exe на .com <Enter> то потом выдаётся в Files List список файлов с расширением .exe Но ни один из них всё равно не активируется. На этот раз такая надпись: Error:no symbol handler found; exeting Парни, вы можете меня спрсить: чего ты так цепляешься за этот допотопный CodeView? Но других-то нет... Другие (Olly Debug) работают с полноценными приложениями, а не с моими двумя строчками... ![]() |
|
Создано: 22 июня 2008 22:34 · Личное сообщение · #12 zayats пишет: Я уж три раза сказал, что не знаю, сколькиразрядные файлы я создаю. Это, оказывается, от расширения зависит- не от того, каким оно стало потом, но от того, каки оно было при рождении файла! Я убью тебя, лодочник(с) ![]() В общем, смотри: zayats пишет: Так что ли: 1) Создал файл *.com- он 16-тиразрядный 2) Переименовал *.com в *.exe он всё равно 16-раязрядный 3) Создал файл *.exe он 32-разрядный Скорее так: Есть прога: ---- CD20 ---- 1) Создал файл *.com в Фаре - он 16-разрядный 2) Создал файл *.exe в Фаре - он 16-разрядный 3) Переименовал *.com в *.exe он всё равно 16-раязрядный 4) Создал файл *.exe в MASM32 - он 32 разрядный (вышеупомянутая прога в MASM32 как экзешник не скомпилится!) 5) Переименовал *.exe в *.com он всё равно 32-раязрядный дурдом) ----- программистом не рождаются - им умирают ![]() |
|
Создано: 22 июня 2008 23:01 · Поправил: zayats · Личное сообщение · #13 Ещё и потому дурдом, что FAR- это современная же программа! Чего они в самом деле?! То, что Вы написали про МАSM32, относится к FASMу и TASMу тоже, так ведь? Кстати, раз уж разговор об этом зашёл- а как узнать, сколькиразряден тот или иной исполняемый файл? Можно, конечно, запомнить, но... Завтра выйдет новая версия FARа, создающая 32-разрядный исполняемый файл и... Этот параметр должен быть где-то прописан! В свойствах файла где-то! (я не имею ввиду ту вкладку "свойства", что подсовывает нам "Windows") Я там кое-что добавил про CodeView. Вот и на другом форуме мне сказали, что должен работать... И такую формулировку написали: "У екзешников Win32 всё равно есть досовая заглушка (та, которая пишет "This program must be run under Win32"), 80386 CV знает." (Это я предполагал, что создаю 32-разрядные файлы *.exe) Без вариантов? ![]() |
|
Создано: 22 июня 2008 23:28 · Поправил: Gambit · Личное сообщение · #14 zayats Слушай, мужик, не парь себе пока мозги этими разрядами. zayats пишет: Завтра выйдет новая версия FARа, создающая 32-разрядный исполняемый файл и... Да пойми ты наконец: создает не FAR, а человек. Пишешь ты роман - хоть в ворде, хоть в блокноте пишешь, хоть в Фаре - все равно это роман, а пишешь ты анекдот - тоже не важно ГДЕ ты пишешь - важно ЧТО ты пишешь. Все, я заканчиваю, а то с твоей фантазией свихнуться можно)) Иди к дневникам чайника, делай все по ним, без фантазий. Если будут конкретные вопросы - обращайся =\ PS Если уж совсем никак с CV, используй INSIGHT _http://slil.ru/25920946 (мануал прилагается) ----- программистом не рождаются - им умирают ![]() |
|
Создано: 23 июня 2008 01:45 · Личное сообщение · #15 |
|
Создано: 23 июня 2008 02:37 · Поправил: Bitfry · Личное сообщение · #16 1. Существуют программы для 16-битного режима процессора и для 32-битного. Эти программы разные по устройству (по командам, форматам, алгоритмам и возможностям). Программы формата COM могут быть только 16-битные (обратите внимание дело не в названии и расширении файла, а именно в формате). Однако EXE-программы могут быть как 16-битные, так и 32-битные. Причём для разных операционных систем будут разные EXE-форматы! 2. В WinXP можно назвать файл exe или com суть от этого не изменится вообще. Система всё равно проверит MZ-сигнатуру и если её нет предположит, что запустили com-файл. 3. EXE-файл - это сложный контейнер. Он состоит из множества частей, каждая из которых имеет своё описание в заголовке этого файла (если грубо, то в начале файла). Так что создавать EXE своими руками по байтам - занятие не благодарное, хотя есть и такой способ обучения. Gambit пишет: команды int нет в exe! При всём уважении, это, мягко говоря, некорректное высказывание. Здесь дело не в exe- или com-формате. Можно было бы сказать, что прерывания не используются в Windows-приложениях и то с большим количеством оговорок (в user mode не считая int3 и т.д.). Но любая программа, написанная для работы в DOS, вынуждена использовать прерывания независимо от того EXE она, или COM. Теперь к сути дела. Насколько я понял, весь вопрос: как запустить пример в CV? Цитирую: Загрузите prax01.com в отладчик CodeView. Для этого скопируйте файл в каталог отладчика (примечание) и запустите из командной строки "cv prax01.com" Поясняю, что значит " запустите из командной строки". Конкретно: 1. Открой папку с отладчиком в FAR'e (допустим C:\CV\) где должны быть все файлы отладчика и твой пример под названием prax01.com (пути и названия только латинскими буквами). 2. Напечатай на клавиатуре: cv prax01.com 3. Нажми Enter =) Если не получится, пиши мне на мыло, будем разбираться. ----- Всем привет, я вернулся ![]() |
|
Создано: 23 июня 2008 13:30 · Личное сообщение · #17 |
|
Создано: 23 июня 2008 18:34 · Личное сообщение · #18 Спешу отписаться. Увидел вожделенную картинку, как в "дневниках чайника". Надеюсь, дело пойдёт и дальше. Нужно же было так оплошать. И ведь определение каталога знал... Но уж слишком внове это было для меня- копировать prax01.com буквально (!) в каталог отладчика. Сам бы никогда не предположил такую простую и очеидную вещь- глаз замылился наболее сложных... Под каталогом я подразумевал Files List... Остаётся одно утешение- что не один я такой бестолковый и тема не пропадёт зря в том смысле, что послужит... назиданием, что ли, некоторым новичкам. Спасибо всем откликнувшимся. Извините. ![]() |
|
Создано: 24 июня 2008 02:41 · Личное сообщение · #19 |
![]() |
eXeL@B —› Вопросы новичков —› Отладчик Olly Debug не видит (?) 16-разрядные файлы, но других я создать не могу. Замкнутый круг. |