Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 344
от 16.08.2002, 20:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1002 Отправлено ответов: 2998 Активность: 299.2 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
LIFO Статус: Опытный Общий рейтинг: 136.3 Телефон: 8 01710 24758 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 158.84 [Подробней >>] |
Dark_Lord Статус: Опытный Общий рейтинг: 142.61 [Подробней >>] |
ASMодей Статус: Опытный Общий рейтинг: 127.23 [Подробней >>] |
Pablo Статус: Опытный Общий рейтинг: 130.64 URL: Моя страничка [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 137.13 URL: моя шедевра [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 122.5 [Подробней >>] |
Вий Статус: Начальный Общий рейтинг: 103.4 [Подробней >>] |
Igoryk Статус: Опытный Общий рейтинг: 113.25 URL: В помощь программисту [Подробней >>] |
Painbringer Статус: Начальный Общий рейтинг: 114.73 [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 117.97 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
igorash Статус: Профессиональный Общий рейтинг: 118.7 [Подробней >>] |
Portnov Статус: Опытный Общий рейтинг: 120.96 [Подробней >>] |
copycon Статус: Начальный Общий рейтинг: 112.5 [Подробней >>] |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 119.92 URL: Пристанище неодинокого программиста [Подробней >>] |
Александр Статус: Профессиональный Общий рейтинг: 118.03 [Подробней >>] |
Gibbel Статус: Опытный Общий рейтинг: 109.25 URL: Страничка обо мне и моих друзьях [Подробней >>] |
Sergey Lizin Статус: Начальный Общий рейтинг: 103.32 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 955. Уважаемые эксперты! 1)Тут недавно проги hack'ал и наткнулся на одну злосную прогу. Без нормального I... (ответов: 3)
Вопрос № 956. Доброй НОЧИ! Помогите пожалуйста найти и исправить ошибку в программе. Она должна побайтно считывать... (ответов: 7)
Вопрос № 957. Здравствуйте господа Эксперты... Простите за оффтопик, но не удосужаться ли уважаемые эксперты отве... (ответов: 11)
Вопрос № 958. Здравствуйте эксперты ответьте, пожалуйста, на такой вопросика: 1.Можно ли програмно отключить кноп... (ответов: 9)
Вопрос № 959. Народ! К нам вернулся Painbringer! Поздравляем "новичка"... :)... (ответов: 3)
Вопрос № 960. Уважаемые знатоки и эксперты (по крайней мере, я некоторых из вас считаю). Я работаю в небольшо... (ответов: 3)
Вопрос № 961. Доброе время суток, эксперты. Начал изучать Крeкерство. Уже есть крохотное достижение (Отучил от дис... (ответов: 4)
Вопрос № 962. Доброе время суток, всем экспертам. Начал изучать Крeкерство. Уже есть крохотное достижение (Отучил ... (ответов: 2)
Вопрос № 963. Я, типа newbie в асме. Но при изучении сразу наткнулся вот на такой парадокс: com файлы при запуске ... (ответов: 7)
Вопрос № 964. Есть прерывание ДОС INT 21h,функция 35h - получение вектора прерывания (адрес обработчика прерывания... (ответов: 11)
Вопрос № 965. Здравствуйте! В чем разница между режимом чистого DOS и эмуляцией DOS под Windows? Т.е. всего 3 режи... (ответов: 5)
Вопросов: 11, ответов: 65
Вопрос № 955 |
Уважаемые эксперты!
1)Тут недавно проги hack'ал и наткнулся на одну злосную прогу. Без нормального ICE'a не обойтись. Мой под Фортачки 2000 глючено работает(Soft ICE 4.16), а под ХР'ху и браться не стоит(хотя не пробовал, мне два куска по больше нравится). Подскажите пожалуйста где можно скачать свежий ICE? или у кого-нибудь есть?
2) Tyт на днях игрушку собрался писать. Задумки были хишные, а вот со своим менеджером памяти - проблема. Я сделал его,с б-деревьями, и даже извратился с ММХ, но намудрил, что больше не хочу смотреть на эту фигню. Подскажите пожалуйста, как сделать быстрый менеджер памяти(по проще; и если можно с исходниками, уж очень я тороплюсь).
Вопрос отправлен: 11.08.2002, 22:10
Отправитель: BigKing (bigking@kemtel.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Добрый день, BigKing!
По- моему это и есть самый новый ( у меня версия 4.05)
Ответ отправлен: 12.08.2002, 19:34
Отправитель: LIFO
Отвечает masquer
Добрый день, BigKing!
1. айс любой нормально работает с 2к, с мышкой (если не ком) проблемы бывают, но решаются.
2. С ММХ работаю, с бидеревьями не работал, а что должен делать твой менеджер памяти?
Ответ отправлен: 11.08.2002, 23:10
Отправитель: masquer
Отвечает Dark_Lord
Добрый день, BigKing!
Soft Ice нормально работает под XP, только загружать вручную надо!А на счёт памяти, не знаю:(!
Ответ отправлен: 12.08.2002, 01:16
Отправитель: Dark_Lord
Вопрос № 956 |
Доброй НОЧИ!
Помогите пожалуйста найти и исправить ошибку в программе. Она должна побайтно считывать байтики из всех файлов с расширеним *.TXT в текущей директории. Всё работает кроме шифрования. Что-то заклинило не могу уяснить. Всё дело вызове процедуры "call enc_dec"...
Буду очень благодарен. Кстати, как отправить благодарность на имя эксперта, чем ответ устроил ???
До свидания..
Приложение:
Вопрос отправлен: 11.08.2002, 23:35
Отправитель: DARK_ALISON
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Доброе время суток, DARK_ALISON!
Очень распространенная ошибка - в процедуре изменяются
значения регистров, используемых далее в программе.
Необходимо сохранять все изменяемые регистры при вызове
процедуры и восстанавливать их значения при выходе из нее.
Ответ отправлен: 12.08.2002, 13:26
Отправитель: ASMодей
Отвечает Pablo
Приветствую тебя, DARK_ALISON!
А почему в функции кодирования стоит mov cx, 1 непонятно, по идее там должна стоять загрузка в cx длины файла или части файла которая загружена в буффер!?
Ответ отправлен: 12.08.2002, 12:21
Отправитель: Pablo
Отвечает Broken Sword
Добрый день, DARK_ALISON!
я за тобой тут давно наблюдаю ;) и вот что хочу сказать:
- из комников всегда выходи по ret-у, тем более когда вообще не трогаешь стек...
- вот здесь ты малехо запорол:
mov ax,3D02h
mov dx,80h+1eh
int 21h
jc find_n
...
find_n:
mov ah,3Eh
int 21h
вот если файл не откроется (будет переход на find_n) чего ты закрывать собрался ?
- в этом куске вторая строчка вообще ни в Х(акер:) ни в красную армию:
mov ah,4Fh
mov dx,80h
jmp file_o
по мелочевке еще куча подобной хрени...
Вот самое главное ты написать забыл: чего ты от нее вообще хочешь? ты пишешь, что она должна "побайтно считывать байтики из всех файлов с расширеним *.TXT в текущей директории" а ты мне скажи какие ж тут байтики, когда ты по одному байту все время читаешь? или это ты так задумал? или чего вообще происходит то?
твоя процедура enc_dec вообще какой то уникальный шедевр... в cx пихаешь вначале нее единицу все время, больше его не меняешь, а в конце loop какой-то еще... к чему это все? По одному байтику собрался шифровать??!!! удачи... (не легче считать все целиком, чем dec ax js... , придумал же!)
p.s. объясни толком чего хочешь
Ответ отправлен: 12.08.2002, 01:30
Отправитель: Broken Sword
Отвечает masquer
Добрый день, DARK_ALISON!
Ну у тебя только первый симвод будет ксориться с маской 30. Может пересмотри эту процедуру, там очень много лишнего.
Ответ отправлен: 12.08.2002, 00:05
Отправитель: masquer
Отвечает Dark_Lord
Добрый день, DARK_ALISON!
Зачем ты используешь
lea di,buffer
lea si, Key
в процедуре!? Мне кажется ошибка из-за этого! А на счёт благодарности, самому интересно!
Ответ отправлен: 12.08.2002, 00:16
Отправитель: Dark_Lord
Отвечает Ayl
Приветствую Вас, DARK_ALISON!
Ну, во-первых, в процедуре enc_dec не сохраняются регистры (в частности, bx), вследствии чего происхоит неправильное обращение к файлу при установке указателя файла. Вообще очень хитрая установка указателя - на FFFEFFFE байт от текущей позиции... Что соответствует числу -65538... Вместо -1, как предполагается...
В общем, лови мой вариант. Я изменил немного кусок для чтения и кодирования. Теперь работа происходит с буфером длиной 32768 байт.
Насчет благодарностей - сейчас вроде как данная функция не работает.
Приложение:
Ответ отправлен: 12.08.2002, 00:50
Отправитель: Ayl
Отвечает Вий
Доброе время суток, DARK_ALISON!
Вот, посмотри, что я тебе тут написал... Делает то, что тебе нужно.
Приложение:
Ответ отправлен: 15.08.2002, 00:47
Отправитель: Вий
Вопрос № 957 |
Здравствуйте господа Эксперты...
Простите за оффтопик, но не удосужаться ли уважаемые эксперты ответить на вот такой вопрос... Нежли PC настолько убогий компьютер что не может сочетать в себе и транслятор и компилятор, и эдитор... Глядя на навороченную архитектуру, кучу многозадачного софта, все также использовать MASM or TASM, или другие, частично сочитающие в себе недоделаность Ассемблеры...
С уважением
AllAddIn
Вопрос отправлен: 12.08.2002, 07:29
Отправитель: AllAddIn (AllAddIn@Ngs.Ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает ASMодей
Доброе время суток, AllAddIn!
Ты наверное и не искал? Лично я знаю 3-4 оболочки,
объединяющие в себе и редактор и компилятор и линковщик.
Другое дело, что они не очень удобны в использовании, а
писать удобную оболочку, наподобие VisualC++, сейчас
никто не будет - нет рыночного спроса. Хотя энтузиасты
что-то наверняка делают, нужно просто поискать.
Ответ отправлен: 12.08.2002, 13:27
Отправитель: ASMодей
Отвечает Dark_Lord
Добрый день, AllAddIn!
А зачем!?! Наверно учился ещё мало! Для .com програмы это только траблы, для .exe это минус сегмент, при переходе в видеорежим всёравно нет плюсов! Хотя в принципе есть такие проги, называются (asm)shell, посмотри, если очень хочется на asmfanat.narod.ru, там вроде было что-то! Чего не пойму так при чём сдесь PC!
Ответ отправлен: 12.08.2002, 20:15
Отправитель: Dark_Lord
Отвечает Pablo
Доброе время суток, AllAddIn!
Интегрирование копилятора и компоновщика в одну среду выглдело бы нелогично с точки межязыкового взаимодействия, то есть если сделать такую среду для аасемблера, например, то программировать только на нем можно и программы написанные на нем нельзя будет использовать в других языках программирования, также и с другими я языками. Впрочем то о чем ты говоришь частично сделано уже в Юниксовом компиляторе, например в gcc, но он и интегрирует в себе не только ассемблер но и языки с, с++ и другие помойму.
Ответ отправлен: 12.08.2002, 12:21
Отправитель: Pablo
Отвечает Igoryk
Доброе время суток, AllAddIn!
"Недоделанность" ассемблера - это для демократических взглядов на написание программ. Каждый может попытаться написать собственный эдитор. А задача ассемблера просто скомпилировать программу. Дело в том, что эти асемблеры написаны были по уму и переделывать программу только для изменения внешнего вида никто не станет.
Ответ отправлен: 12.08.2002, 19:28
Отправитель: Igoryk
Отвечает LIFO
Здравствуйте, AllAddIn!
Что ты сказал?!
А debug.com по твоему что??
А чем тебя не устраивают эти ассемблеры. Если такой умный, то напиши свой.
Ответ отправлен: 12.08.2002, 19:33
Отправитель: LIFO
Отвечает Painbringer
Здравствуйте, AllAddIn!
Тоже мне трабла :)) Ну не нравится ТАСМ юзай каку-ньть приблуду к нему - тасмед например или еще какое нибудь... просто так можешь луче видеть что у тебя там происходит.
Ответ отправлен: 12.08.2002, 23:18
Отправитель: Painbringer
Отвечает Топор
Здравствуйте, AllAddIn!
Если бы и железом и софтом занималась одна и та же контора, так бы оно, наверное, и было. Но это уже Большой Брат получается, на хрен такого не надо. Ассемблер заточен не только под железо, но и под ОСь, а осей много, они всякие нужны, разного назначения, универсальную сделать невозможно и не нужно. Потому и единую среду разработки создавать смысла нет.
Ответ отправлен: 12.08.2002, 08:32
Отправитель: Топор
Отвечает masquer
Добрый день, AllAddIn!
О, сейчас посыпятся гневные ответы!
Начну, пожалуй. Не, не буду, ты вопрос сам понял, одно с другим связал? Что значит - недоделанность ассемблера? А в чем доделанность?
Ответ отправлен: 12.08.2002, 09:34
Отправитель: masquer
Отвечает igorash
Доброе время суток, AllAddIn!
Че-то вопрос какой-то хитрый.... это в смысле в процессор тебе встроить и транслятор и компилятор, и эдитор.... при чем здесь компутеры PC и компиляторы.... не нравится асм юзай паскаль или Си
Ответ отправлен: 12.08.2002, 15:10
Отправитель: igorash
Отвечает Portnov
Добрый день, AllAddIn!
Хе-хе... Вот возьмите и напишите такую штуку. Есть TurboShell, но она еще сырая, иногда при компилляции глючит. Сделать такую штуку не так сложно, и M$ or Inprice (хе-хе: вообще-то Inprise, а так в переводе получается "в цене" :) давно бы сделали, если бы был спрос. Просто очень мало кто использует асм для создания программ с нуля, все больше как вспомогательный язык. Скажем, пишут 3d-редактор, интерфейс и всякие там прибамбасы вроде плугинов - на C++ для простоты, а "ядро", занимающееся всеми просчетами, на Асме для быстродействия. А ядро это - пять киолбайт на асме. А сишных исходников - сто пять килобайт. Вот и лень всем полноценную IDE сделать наподобие TurboPas'а.
С уважением, Portnov.
Ответ отправлен: 12.08.2002, 16:51
Отправитель: Portnov
Отвечает copycon
Здравствуйте, AllAddIn!
Значиться так, мое личное мнение.
Во-первых:
Ассемблеры делаються профессионалами для профессионалов
и мнения и пожелания юзеров не учитываться :)
А мнение профессионалов: лучшая оболочка - консоль!!!
Во-вторых:
На асм'е пишуться библиотеки, резиденты, драйвера,
демоны, BIOS'ы и тд. и тп.
Как ты себе представляешь шашечки и финтифлюшки, окошечки
и граф.режим при отладке BIOS???
Удачи.
Ответ отправлен: 15.08.2002, 20:40
Отправитель: copycon
Вопрос № 958 |
Здравствуйте эксперты ответьте, пожалуйста, на такой вопросика:
1.Можно ли програмно отключить кнопки POWER и RESET???
2.Можно ли в виндовсе вывести текст на экран без вывода окна???
Ответы желательно с исходниками:-)))))))))
Вопрос отправлен: 12.08.2002, 14:49
Отправитель: nix (nix.q@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Приветствую Вас, nix!
1. Power можно через настройки Windows (наверно в реестре информация хранится). А RESET нельзя.
2. Используй DrawText получив указатель на DeskTop.
Ответ отправлен: 12.08.2002, 19:28
Отправитель: Igoryk
Отвечает ASMодей
Приветствую Вас, nix!
1. В старых компьютерах точно было нельзя. В новых
(с ATX корпусами) возможно и получится.
2. Если ты имеешь в виду вывести текст прямо на рабочий
стол, то выводи как обычно, а вместо дескриптора окна
используй HWND_DESKTOP.
Ответ отправлен: 13.08.2002, 23:13
Отправитель: ASMодей
Отвечает Painbringer
Доброе время суток, nix!
1. нет нельзя. типа ресет реализован апаратно, как и повер... (ну типа попробуй програмно запретить выдергивание из розетки).
2. Можно. можно просто гадить прямо на десктоп например.
Ответ отправлен: 12.08.2002, 23:18
Отправитель: Painbringer
Отвечает masquer
Доброе время суток, nix!
1. Нет, насколько я знаю.
2. Что значит без вывода окна? Окно в виндах это очень растяжимое понятие :). Просто создавай окно без меню, тулбаров и т.д. и background убирай.
По крайней мере, у меня все ответы без исходников
Ответ отправлен: 12.08.2002, 16:34
Отправитель: masquer
Отвечает Portnov
Добрый день, nix!
Power - в любом случае зависит от конкретного компа. У меня, например, от этой кнопки провода идут к блоку питания, так что... Но на других компах эта кнопка подключена к маме, там что-нибудь может и удастся сделать. А Reset - точно нет. Цитирую какую-то умную книжку, не помню, какую: "при поступлении сигнала на вход Reset процессор прекращает выполнение любых текущих действий". Делайте выводы.
С уважением, Portnov.
Ответ отправлен: 12.08.2002, 16:51
Отправитель: Portnov
Отвечает Pablo
Приветствую Вас, nix!
Текст вывести можно на рабочий стол, для чего его дескриптор можно получить функцией GetDesktopWindow, ну затем создать контекст устройства и рисовать!)))
Ответ отправлен: 12.08.2002, 17:52
Отправитель: Pablo
Отвечает Артём Шегеда
Здравствуйте, nix!
1. Кнопка Power на ATX-платах под Windows98 контролируется драйвером ACPI.sys (если он, конечно, был установлен). Так что, отключение этой кнопки программно требует написания некоторой программы, взимодействуещей с этим драйвером.
Но! Если в течении 4-х секунд удерживать кнопку Power нажатой, то питание будет выключено в любом случае, поскольку это уже реализовано аппаратно.
Кнопку Reset вообще невозможно проконтролировать (за исключением тех случаев, когда сигнал с кнопки Reset заходит на схему формирования системного сигнала RESET и эту схему можно отключить - но это знают только разработчики чипсетов).
2. Смотри приложение - должно работать.
hDC = CreateDC("DISPLAY", NULL, NULL, NULL);
TextOut (hDC,0,0,"HELLO!",6);
DeleteDC(hDC);
Ответ отправлен: 12.08.2002, 18:26
Отправитель: Артём Шегеда
Отвечает copycon
Добрый день, nix!
На современных корпусах, возможно программное
отключение кнопки POWER.
Сам не пытался но инфу поищи, где-то видел.
Или поковыряйся в BIOS'е.
А кнопка RESET принципиально не отключаеться -
чистый HARD.
Удачи.
Ответ отправлен: 15.08.2002, 20:41
Отправитель: copycon
Отвечает Dark_Lord
Приветствую Вас, nix!
1)Power спокойно на ATX, а Reset нельзя!
2) Получи handle на Desktop и юзай DrawText'
Ответ отправлен: 12.08.2002, 20:20
Отправитель: Dark_Lord
Вопрос № 959 |
Народ! К нам вернулся Painbringer!
Поздравляем "новичка"... :)
Вопрос отправлен: 12.08.2002, 15:22
Отправитель: baldr (baldr@pisem.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Доброе время суток, baldr!
Присоединяюсь к поздравлениям.
Ответ отправлен: 12.08.2002, 19:28
Отправитель: Igoryk
Отвечает Painbringer
Здравствуйте, baldr!
Да я такой, хехехе. Народ, нескромный вопрос а че тут все так посокращали. в смысле тем стало больше, но уж больно они широкие - асм и досовый и мастдаевый в одной куче н-р. то же с сями. Урезали инфу об людях - тоже ж жалко (типа сам себя не похвалишь - никто не похвалит). вот.
постараюсь не опростоволоситься. нада ж когда-то мозги разминать.
Ответ отправлен: 12.08.2002, 23:18
Отправитель: Painbringer
Отвечает Dark_Lord
Добрый день, baldr!
Кто-кто...ну поздравляем так поздравляем!????
Ответ отправлен: 12.08.2002, 20:25
Отправитель: Dark_Lord
Вопрос № 960 |
Уважаемые знатоки и эксперты (по крайней мере, я некоторых из вас считаю). Я работаю в небольшой IT компании, находящейся в городе Брисбен, штат Квинсленд, Австралия. Так как сам являюсь ассемблерщиком(правда, не таким опытным как некоторые из вас - это не лесть кстати, а констатация фактов), слежу за рассылкой.
Короче, предложение следующего рода. Я предложил(так как сам русский) руководству взять на субконтрактной основе некоторых людей (под мою ответственность, в частности) знающих следующие языки и др. вещи:
Java, ASP, PHP, MySQL, C/C++/VC, VBx,
Assembler for Intel x86
, Assemler for Motorolla,FileMaker(Pro), Java3D, XML,DHTML.Вот небольшой такой список того, что желательно знать вам. Конечно, не все сразу, а только то, в чем вы себя считаете спецом.
Сразу хочу сказать, что конкурса не будет - просто я буду разговаривать с вами, опираясь на вашу честность(можете смеяться...), а потом уже на контракт, в котором будут указаны все условия.
ПОДРАЗУМЕВАЕТСЯ, что вы можете читать и ПОНИМАТЬ по-английски.
Жду ответов и тогда будем разговаривать более конкретно.
С уважением Алекс
Вопрос отправлен: 12.08.2002, 16:33
Отправитель: алекс
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, алекс!
He-he, Australia...
E-mail me, please, with more detail on masquer@pochta.ws
Ответ отправлен: 12.08.2002, 17:40
Отправитель: masquer
Отвечает Broken Sword
Приветствую Вас, алекс!
Я готов! :)
Ну с асмом проблем никаких, а вот с остальным... ну может VB 50/50... впринципе любым из указанных тобой языков за месяц можно овладеть вполне на уровне...
Ответ отправлен: 12.08.2002, 18:02
Отправитель: Broken Sword
Отвечает Артём Шегеда
Доброе время суток, алекс!
Предложение, конечно, заманчивое, но будет ли время, имея основную работу, заниматься контрактной работой...
Знание C, 80x86 Asm - гарантирую, Java - нажно вспомнить забытое, давно не занимался.
Ответ отправлен: 12.08.2002, 18:17
Отправитель: Артём Шегеда
Вопрос № 961 |
Доброе время суток, эксперты.
Начал изучать Крeкерство.
Уже есть крохотное достижение (Отучил от диска игру Эпоха империй 2).
Сейчас пытаюсь по мануалу взломать Hex Workshop v2.54 (в учебных целях)
Для успеха мне надо найти смещение 9099h.
Опишите, пожалуйста, как перейти к смещению 9099h???(я использую HiEW)
Заранее огромное спасибо за ответ.
Спасибо за внимание.
P.S. Есть ли здесь люди,желающие быть наставниками и помошниками начинающему крeкеру??
Вопрос отправлен: 12.08.2002, 16:35
Отправитель: Макс (ooot@hotbox.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Доброе время суток, Макс!
Я использую Hiew 6.11 Здесь переход осуществляется так:
Выбери Mode отличное от 'текст'. Затем нажми F5, и в появившемся окошке набери адрес, на который осуществляется переход. Если адрес находится за FFFFh будет прибавлено .XX+Адрес
Ответ отправлен: 12.08.2002, 19:28
Отправитель: Igoryk
Отвечает LIFO
Приветствую Вас, Макс!
Во- первых , в каком сегменте ( их же может быть больше десятка). А во - вторых, в Hiewe это делается так:
1.Открываешь файл.
2.Нажимаешь F4 и выбираешь Hex Mode.
3.Нажимаешь F5 и вводишь адрес 000009099
4.Если все верно, то выделяется байт, расположенный по этому адресу.
5.Нажимаешь F3 и меняешь на другое значение.
Вместе с программой поставляется хелп на русском. Изучи его!
А насчет наставника - можешь писать!
Ответ отправлен: 12.08.2002, 19:33
Отправитель: LIFO
Отвечает masquer
Добрый день, Макс!
Смещение относительно чего, начала файла, ImageBase?
Наставником не хочу - ленивый я
Ответ отправлен: 12.08.2002, 17:30
Отправитель: masquer
Отвечает Dark_Lord
Здравствуйте, Макс!
Там слева идут восмизначные цифры! Нажимаешь на неё и пишешь нужный адрес!
Ответ отправлен: 12.08.2002, 20:27
Отправитель: Dark_Lord
Вопрос № 962 |
Доброе время суток, всем экспертам.
Начал изучать Крeкерство.
Уже есть крохотное достижение (Отучил от диска игру Эпоха империй 2).
Сейчас пытаюсь по мануалу взломать Hex Workshop v2.54 (в учебных целях)
Для успеха мне надо найти смещение 9099h.
Опишите, пожалуйста, как перейти к смещению 9099h???(я использую HiEW)
Заранее огромное спасибо за ответ.
Спасибо за внимание.
P.S. Есть ли здесь люди,желающие быть наставниками и помошниками начинающему крeкеру??
Вопрос отправлен: 12.08.2002, 16:39
Отправитель: Max (russiabb@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Здравствуйте, Max!
Что значит "как перейти?" Жмешь F5 и набиваешь то что нада...
Ответ отправлен: 12.08.2002, 18:08
Отправитель: Broken Sword
Отвечает Dark_Lord
Доброе время суток, Max!
Смотри мой ответ на вопрос 962 ;)
Ответ отправлен: 12.08.2002, 20:30
Отправитель: Dark_Lord
Вопрос № 963 |
Я, типа newbie в асме. Но при изучении сразу наткнулся вот на такой парадокс: com файлы при запуске резервируют всю возможную память ОЗУ, но программа и данные распологаются только в ОДНОМ сегменте (если надо больше -ехе). Тогда смысл "стрелять дробью по слонам"?
И еще, на некоторых видеоадаптерах (я это на savage4 поймал, но на современных от ATI и nVida было все в норме) Прямая запись в текстовую видеопамять вооще ни кого не тревожит (может они в другое место его пиханули? или страница по умолчанию у них не 0 или даже дрова кривые)? Да и с веса режимом она не заработала (кода ошибки нет, а экран черный во :( -я один екзампл компилил)
Вопрос отправлен: 12.08.2002, 17:07
Отправитель: uncle Susanin
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Здравствуйте, uncle Susanin!
1. Вот тебе пример - команда movsb. Строки могут распологатся в совершенно другом сегменте, чем инициализированные данные.
2. Посылай байт прямо в 0000:0b800h - обязательно выведет ( вроде бы независимо от адаптера)
Ответ отправлен: 12.08.2002, 19:34
Отправитель: LIFO
Отвечает masquer
Здравствуйте, uncle Susanin!
сом не резервирует всю память.
По всему остальному не скажу, не занимаюсь я этим :(
Ответ отправлен: 12.08.2002, 17:34
Отправитель: masquer
Отвечает Broken Sword
Здравствуйте, uncle Susanin!
На самом деле то что ты спрашиваешь нужно отнести только к архитектуре ОС, ну как я тебе могу сказать почему DOS так делает? Нада спросить у Б.Гейтса. Это вообще камень преткновения - чтобы запустить еще одну задачу - нужно сначала освободить память, потом выделить память, короче там навернута целая гора по-сути бестолковых действий...
Насчет архитектуры проца - регистр TR вообще появился только с PM (в 386), а DOS гораздо старее всего этого дела.
Насчет видях - в XP наблюдаются подобные гоны практически со всеми видеокартами, а вообще должно быть все нормально, если бы было так как ты говоришь то в ДОС-е ты бы не смог лицезреть ни одной проги
Ответ отправлен: 12.08.2002, 18:45
Отправитель: Broken Sword
Отвечает Топор
Приветствую Вас, uncle Susanin!
Да не всю ОЗУ под ком отводят, а те самые 64к. А текстовая видеопамять всю жизнь с 0B800h начиналась, там всё зарезервировано и проги туда не загружаются.
Ответ отправлен: 13.08.2002, 13:12
Отправитель: Топор
Отвечает Ayl
Добрый день, uncle Susanin!
Ну, насчет резервирования памяти для COM-программ, так это сделано наоборот, для простоты загрузки. Возьми на досуге и почитай про организацию памяти в DOS, про MCB-блоки и тогда тебе станет понятно, что при такой загрузке программы выполняется минимум действий. То есть, определяется свободный кусок памяти, достаточный для загрузки программы, она туда загружается и эта память помечается как занятая. Но так как обычно это самый последний свободный элемент в цепочке MCB, то в результате весь он помечается как занятый. Для того, чтобы выделить программе ровно столько, сколько она занимает, пришлось бы еще добавлять в цепочку один элемент и корректировать заголовки. Но так как DOS однопрограммная система, то это, видимо, посчитали излишним.
Насчет вопроса про адаптеры, то скорее всего это не проблема самой видяхи (они все обязаны быть совместимыми до VGA и стандарта VESA), а операционки. Попробуй запуститься под чистым DOS'ом, а не из-под WinNT или WinXP.
Ответ отправлен: 13.08.2002, 14:35
Отправитель: Ayl
Отвечает Александр
Доброе время суток, uncle Susanin!
Так ДОС же была однозадачной, зачем там было память экономить. Попытайся прогнать какую-нибудь программу, выдающую информацию об адаптере, используя VESA. Там просто страница может в другом месте начинаться... У меня где-то был текст чего-то подобного на Си. Могу выслать.
Ответ отправлен: 14.08.2002, 08:27
Отправитель: Александр
Отвечает Pablo
Добрый день, uncle Susanin!
Программу располагается в одном сегменте, а данные, которые ты можешь загрузить в процессе работы, ты можешь использовать во всем доступном пространстве.
Ответ отправлен: 14.08.2002, 23:31
Отправитель: Pablo
Вопрос № 964 |
Есть прерывание ДОС INT 21h,функция 35h - получение вектора прерывания (адрес обработчика прерывания).
Можно ли минуя это прерывание найти физические адреса где эти вектора записаны?
Существует ли описание системной области памяти ОЗУ,
где расписано по какому адресу и что храниться? (и где его найти?)
Дело в том, что проглядев 6 книг для начинающих по ассемблеру, пришел к выводу - все книги написаны скореее как памятка тем кто уже все это знает...
Вопрос отправлен: 12.08.2002, 18:01
Отправитель: Виктор
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Здравствуйте, Виктор!
Как два пальца!
Кажды й элемент таблицы векторов прерывания занимает 4 байта в ТВП, кот. располагается по адресу с 0000:0000 и
занимает 1кб.
Определить адрес , по которому находится ВП с номером n:
offset vector_numberN = n*4
segment vector_numberN = n*4+2
На асме можно так:(приложение)
2.Да! В интернете поищи. В книге Гука на сайте
www.neva.rumgook
Приложение:
Ответ отправлен: 12.08.2002, 19:34
Отправитель: LIFO
Отвечает ASMодей
Приветствую Вас, Виктор!
Адреса обработчиков для всех векторов прерываний в реальном
режиме процессора находятся по адресу 0000:0000h и занимают
256 * 4 = 1024 байт.
Формат адреса:
+00 word Смещение обработчика
+02 word Сегмент обработчика
Подробное описание системной области памяти есть в
Interrupt List Ральфа Брауна. Адрес можно найти в любом
поисковике.
Ответ отправлен: 13.08.2002, 23:14
Отправитель: ASMодей
Отвечает Painbringer
Добрый день, Виктор!
можно все и так посмотреть. таблица векторов прерываний лежит начиная с адреса 0000:0000. и так по 4 байта на адрес. то бишь чтоб получит адрес n-ного прерывания лезем в 0000:n*4 - смещение 0000:n*4+2 - сегмент. вот.
Ответ отправлен: 12.08.2002, 23:18
Отправитель: Painbringer
Отвечает copycon
Добрый день, Виктор!
Ветхий и Новый Заветы по программированию на ассемблере x86/DOS/Win - Interrupt List by Ralf Brown
http://www-2.cs.cmu.edu/~ralf/
http://www.pobox.com/~ralf/files.html
FTP.CS.CMU.EDU [128.2.206.173]
/afs/cs.cmu.edu/user/ralf/pub/interrupt-list
А "карманная" версия - TeachHelp
где лежит - не помню, но можеш найти на
www.filesearch.ru "teachhelp.zip" размер 689264 bytes
А по твоему вопросу, цитирую InterruptList
file memory.lst :
MEMORY MAP Release 61 Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown
--------H-M00000000--------------------------
MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
Size: 1024 BYTEs
Note: see also the main interrupt list
;; ==============================================
и так-дале, всего 144Kb :)
то-есть с адреса 0:0 по четыре байта на каждый
вектор с 00h по FFh
Удачи.
Ответ отправлен: 15.08.2002, 20:41
Отправитель: copycon
Отвечает Gibbel
Здравствуйте, Виктор!
Да можно, все адреса храняться в таблице, расположенной по адресу 0000h:0000h и представленны в формате segment:offset.
Не знаю, что за книги тыы перерыл, но я не помню ни одной серьезной книги по асму под дос как для начинающих, так и нет, где бы об этом не было сказано ни слова.
Ответ отправлен: 12.08.2002, 18:18
Отправитель: Gibbel
Отвечает Broken Sword
Здравствуйте, Виктор!
Что то ты не те книги просматривал... Или, как это, смотришь в книгу видишь сам знаешь что )
Значитъ, ) существует такое понятие, как таблица векторов. Для определения ее начала в Protected mode существует даже специальный регистр - IDTR (Interrupt Descriptor Table Register). Но чтобы не забивать тебе голову на начальных порах вернемся к баранам (Real Mode).
Тут вообще все просто:
Таблица векторов (interrupt table) начинается с адреса 0000:0000, и по этому адресу лежит адрес нулевого вектора (int 0h) в виде: [сегмент:смещение]. Т.к. сегмент и смещение занимают по два байта (слово) каждое, то весь вектор занимает четыре байта... Теперь, как ты уже догадался, первый вектор лежит по адресу 0000:0004, а где лежит 21h вектор (ДОС-сервис)? Правильно, по адресу 0000:0021h*4 и т.д., идея думаю ясна как никогда...
Ответ отправлен: 12.08.2002, 18:29
Отправитель: Broken Sword
Отвечает igorash
Приветствую Вас, Виктор!
Таблица прерываний хранится по адресу 0:0 (вот такой хитрый)
если надо узнать адрес, то читай по адресу <номер прерывания>*4 смещение, а по <номер прерывания>*4+2 сегмент
Ответ отправлен: 12.08.2002, 20:29
Отправитель: igorash
Отвечает Dark_Lord
Приветствую Вас, Виктор!
Не знаю, книги по асму не читал, адреса всех прерываний находится по адресам
int 01 0:0000h
int 02 0:0004h
int 03 0:0008h
...
int 10h 0:0040h
А описание ОЗУ, не знаю, сам бы с радостью просмотрел, ты здесь спрашивай;)
Ответ отправлен: 12.08.2002, 20:33
Отправитель: Dark_Lord
Отвечает Sergey Lizin
Доброе время суток, Виктор!
Описаний море, и мой тебе совет: хочешь изучить ассемблер - начинай со старых книжек. Лучше возьми описание MS DOS, скажем от Нортона или Джордейна (надеюсь правильно фамилию написал). Детально на память описание младших адресов ОЗУ, конечно же ене помню, но в самом начале, начиная с 0:0 лежат... вектора прерываний. Собственно первые четыре байта - вектор нулевого прерывания, вторые - первого, ну и так все 1024. А дальше много чего интересного лежит, и буфер клавиатуры, и параметры системы и вообще много чего. Была бы такая табличка под рукой - отправил бы, но я увы на работе.
Счастливо!
Ответ отправлен: 13.08.2002, 09:28
Отправитель: Sergey Lizin
Отвечает Александр
Приветствую Вас, Виктор!
Начинать программирование на Ассемблере не представляя себе архитектуры ПК и не имея опыта языка Си, например - это ОЧЕНЬ трудно. Поэтому советую начать с какой-нибудь железячно-исторической литературы. А "Ассемблер для чайников" пока не выпустили, а зря... Адреса векторов прерываний лежат начиная с адреса 0000:0000 и занимают по 4 байта каждый.
Ответ отправлен: 14.08.2002, 08:28
Отправитель: Александр
Отвечает Pablo
Приветствую тебя, Виктор!
Выставляешь ds = 0, а затем по смещению n*4 ты записываешь смещение ip обработчика n-ного прерывания, а по адресу n*4+2 cs обработчика n-ного прерывания, только перед записью cs и ip не забудь выполнить команду cli, а после записи sti.
По поводу инфи системной памяти ДОСа у меня на винте валялось гдето!)))
Ответ отправлен: 14.08.2002, 23:31
Отправитель: Pablo
Вопрос № 965 |
Здравствуйте!
В чем разница между режимом чистого DOS и эмуляцией DOS под Windows?
Т.е. всего 3 режима:
1)DOS, получается загрузкой в DOS
2)DOS emulation mode (получается загрузкой путем "restart in MSDOS mode")
3) запуск DOS программы из-под Windows без перезагрузки
Есть ли у кого-нибудь ссылки - каково отличие этих режимов при никзоуровневом программировании?
В частности через прерывания и DMA?
В моем случае я программирую плату АЦП (ISA) и вижу, что при запуске в режиме чистого DOS, DMA работают и прерывания получаю с нормальной скоростью, а при запуске двумя другими путями той же программы, ловлю гораздо меньше прерываний от платы а DMA вообще плохо идет.
Спасибо.
Вопрос отправлен: 12.08.2002, 19:37
Отправитель: Андрей
[Следующий вопрос >>] [Список вопросов]
Отвечает copycon
Приветствую Вас, Андрей!
Что значит пункт 1?
При загрузке F8 и пункт "command promt only"?
IMHO, режима всего ДВА:
1) DOS
2) DOS virtual machine
Итак:
1) Просто DOS
очень много зависит от того что загружаеться, а конкретно менеджер памяти.
Если ничего нет - ура вперед (если нет злостных резидентов)
Если он есть (EMM, QEMM, ext.) то ты находишся в защищенном режиме, хотя для обычной программы это практически ничего не значит, а тебе - больше вероятность чего-нибуть потерять, так-как помимо твоего процесса работает еще куча всего.
2) VM Dos
тут вообще - полный отстой.
IMHO, выход из этого или ЧИСТЫЙ DOS, или аппаратно реализовывать FIFO (смотри как это сделано на COM портах)
тогда у твоей платы будет буфер для данных и потери должны исчезнуть.
Вообще на базе PC/x86 реализовать настоящий
REALTIME - трудно
а под Windows (что-бы windows работала) - невозможно.
Удачи.
Ответ отправлен: 15.08.2002, 21:39
Отправитель: copycon
Отвечает Broken Sword
Приветствую Вас, Андрей!
Я попытаюсь разьяснить чисто на низком уровне:
1. Значит, первый случай - чистый RM, флаг PE в CR0 - сброшен, VM тоже лежит. Так что тут все ясно.
2. Это вообще хрен знает что такое. Как я думаю, после "restart in MSDOS MODE" проц находится точно в таком же состоянии, как и в 1. пункте, хотя подсознательно помню какую то инфу, по поводу того что это не так.
3. Ну тут все ясно. Это чистый V86 (стоит флаг VM).
Теперь насчет того, какие различия. Различия, по-мойму, налицо: 2 и 3 "эмулируют" ДОС, т.е. прерывания проходят еще как минимум несколько обработок перед тем, как предстать перед нами в "чистом" виде. Потому и тормознее есессно...
Ответ отправлен: 12.08.2002, 20:25
Отправитель: Broken Sword
Отвечает Dark_Lord
Приветствую Вас, Андрей!
Разница огромная, чистый дос, это круто, restart in MSDOS mode, хуже, там всё выполняют виндовские драва, а эмуляция виндоза...Ну как бы это по культурнее сказать, там винда всё Эмулирует в самом плохом смысле слова!
Ответ отправлен: 12.08.2002, 20:36
Отправитель: Dark_Lord
Отвечает Igoryk
Здравствуйте, Андрей!
1. Dos загруженный с дискеты - это "чистый DOS". Здесь будут работать все прерывания, работа с портами на низком уровне и т.п.
2. Эмуляция DOS - изо всех сил приближение к чистому DOS'у, но некоторые функции ассемблера могут не работать.
3. Сеанс MS-DOS - работа почти со всеми портами запрещена. Он вообще не походит на DOS, потому что все прерывания перехватывает Windows и часть из них запрещает.
Ответ отправлен: 13.08.2002, 13:10
Отправитель: Igoryk
Отвечает LIFO
Доброе время суток, Андрей!
Первые два вроде бы идентичны, а вот третий отличается.
Первые два загружаются в Real MOde. А третий в Protected Mode (загружены драйвера типа emm386.exe, кот. неявно переводят проц в Protected Mode)
Ответ отправлен: 14.08.2002, 11:41
Отправитель: LIFO
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (39) C / C++ (27) Perl (14) Delphi (18) Pascal (27) Basic / VBA (11) Java / JavaScript (12) PHP (11) MySQL / MSSQL (11) |
Пользователю Windows 95/98/Me (48) Windows NT/2000/XP (32) "Железо" (36) Поиск информации (19) |
Администратору Windows NT/2000/XP (16) Linux / Unix (12) |
Юристу Гражданское право (7) Семейное право (5) Трудовое право (6) КоАП (4) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||