Сейчас на форуме: Rio (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Отладчик Olly Debug не видит (?) 16-разрядные файлы, но других я создать не могу. Замкнутый круг.
Посл.ответ Сообщение

Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 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. Если из-за кривых рук всё, буду только рад научиться работать с этими программами.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 22 июня 2008 17:32
· Личное сообщение · #2

Олька 16-битные файлы хавать и не станет. А чтоб не было косяков с железом-попробуй на варе.



Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 июня 2008 17:44 · Поправил: zayats
· Личное сообщение · #3

Ясно. А как делать 32-битные? C помощью каких-таких аналогов вышеупомянутых программ?
Надо только так, идти в ногу со временем Hiew 6.11 хвалёный, FAR тоже. Нестарые, опять же.
OllyDebag опять же.
...Может, я ими просто пользоваться не умею? Тьфу. Короче, на кофейной гуще приходится гадать.
Нет, было бы написано: "Hiew 611 создаёт 16-разрядные файлы" Не напишут ведь нигде...



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 22 июня 2008 18:18
· Личное сообщение · #4

hiew это редактор 16ричный а программы создают компиляторы твой код cd20 это int 20 что является дос прерыванием, а если другого ничего нет то это вообще COM файл, а olly работает только с win приложениями а для этого возьми FASM и пиши на нем он тебе и заголовки нужные впихнет и т.п.



Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 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-разрядный что ли?

И пожалуйста: лишний(!) раз уточнять неохота. Про прерывания мне ещё рано. Мне до них ещё дойти надо. а для этого инструменты нужны... Могу дать ссылку на "Дневники чайника"- там всё написано что и в какой последовательности изучается.




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 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 и ольку.
Хотя я не понял: что значит про прерывания рано: в дневниках чайника с прерываний все и начинается.

-----
программистом не рождаются - им умирают




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 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. А говоря "размер". я имел ввиду разрядность.




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 22 июня 2008 21:07
· Личное сообщение · #8

zayats пишет:
mov ah,9
mov dx,10Dh
int 21h
mov ah,10h
int 16h
int 20h

команды int нет в exe!
CodeView работает везде. Какую ошибку он у тебя выдает?

-----
программистом не рождаются - им умирают




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 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-разрядные файлы (хотя я не знаю. так ли это. Но предположим) Вот он их и не видит.




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 22 июня 2008 21:57 · Поправил: Gambit
· Личное сообщение · #10

> И он у Вас заработает
Как ком файл, а не как екзэшник!
> Я же создаю 32-разрядные файлы
Да сколько раз тебе говорить: не получаются 32-разрядные файлы из 16-разрядных путем переименования. Если ты Вася, а тебя переименавать в Лену - девчонкой ты не станешь!
> который называется <имя_файла.exe>
Запусти имя_файла.com и расскажи о результатах.

-----
программистом не рождаются - им умирают




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 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) работают с полноценными приложениями, а не с моими двумя строчками...




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 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-раязрядный

дурдом)

-----
программистом не рождаются - им умирают




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 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)
Без вариантов?




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 22 июня 2008 23:28 · Поправил: Gambit
· Личное сообщение · #14

zayats
Слушай, мужик, не парь себе пока мозги этими разрядами.

zayats пишет:
Завтра выйдет новая версия FARа, создающая 32-разрядный исполняемый файл и...

Да пойми ты наконец: создает не FAR, а человек. Пишешь ты роман - хоть в ворде, хоть в блокноте пишешь, хоть в Фаре - все равно это роман, а пишешь ты анекдот - тоже не важно ГДЕ ты пишешь - важно ЧТО ты пишешь.
Все, я заканчиваю, а то с твоей фантазией свихнуться можно))
Иди к дневникам чайника, делай все по ним, без фантазий. Если будут конкретные вопросы - обращайся =\

PS Если уж совсем никак с CV, используй INSIGHT
_http://slil.ru/25920946
(мануал прилагается)

-----
программистом не рождаются - им умирают




Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 июня 2008 01:45
· Личное сообщение · #15

zayats, может трудности связаны с тем, что ты не с того начал изучать ассемблер? К примеру, начать можно отсюда: http://kalashnikoff.ru/Assembler http://kalashnikoff.ru/Assembler Тут и программы, и обучение ассемблеру с нуля.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 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 =)

Если не получится, пиши мне на мыло, будем разбираться.

-----
Всем привет, я вернулся





Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 23 июня 2008 13:30
· Личное сообщение · #17

Bitfry пишет:
При всём уважении, это, мягко говоря, некорректное высказывание.

Ну это мну погорячился)) Я просто хотел указать ошибку в использовании
mov ah,9
mov dx,10Dh
int 21h
mov ah,10h
int 16h
int 20h

в качестве 32-битной проги.

-----
программистом не рождаются - им умирают




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 июня 2008 18:34
· Личное сообщение · #18

Спешу отписаться. Увидел вожделенную картинку, как в "дневниках чайника". Надеюсь, дело пойдёт и дальше.
Нужно же было так оплошать. И ведь определение каталога знал... Но уж слишком внове это было для меня- копировать prax01.com буквально (!) в каталог отладчика. Сам бы никогда не предположил такую простую и очеидную вещь- глаз замылился наболее сложных... Под каталогом я подразумевал Files List...

Остаётся одно утешение- что не один я такой бестолковый и тема не пропадёт зря в том смысле, что послужит... назиданием, что ли, некоторым новичкам.

Спасибо всем откликнувшимся. Извините.



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 24 июня 2008 02:41
· Личное сообщение · #19

zayats
есть довольно удачный отладчик 16-битных приложений для DOS. Называется он Turbo Debugger. Я где-то на форуме его выкладывал. OllyDbg сделана по образу TD - там очень много сходств.

-----
MicroSoft? Is it some kind of a toilet paper?



 eXeL@B —› Вопросы новичков —› Отладчик Olly Debug не видит (?) 16-разрядные файлы, но других я создать не могу. Замкнутый круг.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати