Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 526
от 19.04.2003, 20:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3008 Отправлено ответов: 8868 Активность: 294.8 %
|
От Администратора |
Здравствуйте!
Буду краток, т.к. время поджимает.
Разместил архив основной рассылки "Ассемблер? Это просто! Учимся программировать". Ссылка на самораспаковывающийся архив на головной странице RusFAQ.ru!
Качайте!!!
Калашников О.А. (admin@rusfaq.ru)
Список экспертов, ответы которых опубликованы в данном выпуске |
K0dMaster Статус: Доверительный Общий рейтинг: 123.44 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.61 URL: Программирование [Подробней >>] |
Hangatyr Статус: Начальный Общий рейтинг: 125 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 135.81 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 119.01 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 141.2 [Подробней >>] |
Tigran K. Kalaidjian Статус: Доверительный Общий рейтинг: 114.04 [Подробней >>] |
Joy Статус: Опытный Общий рейтинг: 125.11 [Подробней >>] |
akul Статус: Опытный Общий рейтинг: 114.47 Телефон: +6019-6416245 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 108.3 URL: Страничка обо мне и моих друзьях Телефон: +7 902 168 02 65 [Подробней >>] |
Knignick Статус: Начальный Общий рейтинг: 122.85 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.07 [Подробней >>] |
Paulkan Статус: Начальный Общий рейтинг: 111.11 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 115.21 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2979. Hi! У меня есть зашифрованная программа Win32 (чем - незнаю, но UnAsPack не помогает). Это вирус. Пр... (ответов: 3)
Вопрос № 2980. Уважаемые! Нужен словарь русского языка в эл.виде. На каждой строчке - одно слово. Ну, типа как для ... (ответов: 1)
Вопрос № 2981. Люди помогите сделать такую вещь!! Мне надо в регистр АХ в С++ 3.11 записать элемент массива void ma... (ответов: 3)
Вопрос № 2982. Доброе время суто !! Хочу разъяснить ситуацию.Я пробовал подключить вместо джойстика восемь тумблеро... (ответов: 2)
Вопрос № 2983. Как из ассеблера вызвать функцию на си используя TASM и TURBO C? Желательно пример вызова небиблиоте... (ответов: 1)
Вопрос № 2984. Где мне найти файлы - приложения к рассылкам Калашникова по ассемблеру под ДОС (резидент,вирус и т.д... (ответов: 2)
Вопрос № 2986. Добрый день, уважаемые эксперты. У меня вопрос про Compatible DC. При запуске программы я получаю DC... (ответов: 2)
Вопрос № 2987. Здравствуйте! Научите меня писать VxD. Или хотя-бы пните в нужную сторону(доки, мануалы - e-mail, сс... (ответов: 5)
Вопрос № 2988. Уважаемые эксперты возможно ли вывести символ в любую часть экрана не используя прерываний... (ответов: 11)
Вопросов: 9, ответов: 30
Вопрос № 2979 |
Hi! У меня есть зашифрованная программа Win32 (чем - незнаю, но UnAsPack не помогает). Это вирус. При запуске он делает свои грязные дела и сразу выходит. Мне нужно перехватить ВСЕ его данные сразу после того, как он себя расшифрует. (Я делаю это с помощью ArtMoney - ищу неизвестное значение для этого приложения, а потом сохраняю дамп в файл.) Но я не могу этого сделать, так как он выходит сразу. Как не дать ему завершить себя? Может быть его можно как-нибудь замедлить. А может есть хороший отладчик для пошагового выполнения Win32-файлов! Помогите, пожалуйста!
Приложение:
Вопрос отправлен: 13.04.2003, 18:42
Отправитель: Kevin David Mitnick (alu6@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает K0dMaster
Доброе время суток, Kevin David Mitnick!
Ответ отправлен: 14.04.2003, 15:08
Отправитель: K0dMaster
Отвечает Bob Johnson
Приветствую Вас, Kevin David Mitnick!
1. Используй softice - в нем поставишь break на какую-либо функцию, которая вызывается вируском в начале работы (после распаковки). Затем можешь его сохранять и все такое.
2. Ты вот постоянно даешь ссылку на свою страницу в вопросах так или иначе, хотя никакого отношения к их сути она не имеет. Пойми, наша рассылка создавалась не в рекламных целях, не смотря на то даже, что твоя страница посвящена бесплатным программам. Лучше используй обмен баннерами или ссылками с другими программистами или организациями.
Ответ отправлен: 14.04.2003, 12:16
Отправитель: Bob Johnson
Отвечает Hangatyr
Добрый день, Kevin David Mitnick!
А SoftIce пробовал? По-моему, как раз то, что надо.
Ответ отправлен: 13.04.2003, 23:16
Отправитель: Hangatyr
Вопрос № 2980 |
Уважаемые! Нужен словарь русского языка в эл.виде. На каждой строчке - одно слово. Ну, типа как для брутфорсера. Если знаете где взять, подскажите... А если есть, кидайте на _inbox_@mail.ru
Вопрос отправлен: 14.04.2003, 07:35
Отправитель: Ищущий словарь
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Приветствую Вас, Ищущий словарь!
Если это тебе для подбора паролей, то это не выход.
Тут тебе нужно список часто используемых слов, можешь сам использовать, можешь найти готовый. Я натыкался в инете на такие.
Ответ отправлен: 15.04.2003, 05:11
Отправитель: Maverick
Вопрос № 2981 |
Люди помогите сделать такую вещь!! Мне надо в регистр АХ в С++ 3.11 записать элемент массива
void main()
{
int mas[5]={0,1,2,3,4};
_asm{
mov cx,3
mov ax,mas[cx] //Вот здесь мне пишет ошибку что сделать надо??
}
}
Вопрос отправлен: 14.04.2003, 14:22
Отправитель: Lamer
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Здравствуйте, Lamer!
Использовать другой регистр. Для 16-разрядных инструкций в качестве индексных могут использовать ся только регистры BX, BP, DI и SI, причем регистр BP по умолчанию использует сегментный регистр SS и вообще его трогать не рекомендуется.
Ответ отправлен: 14.04.2003, 14:56
Отправитель: Ayl
Отвечает masquer
Добрый день, Lamer!
Размер указывай,
mov ax, word ptr mas[cx]
Ответ отправлен: 14.04.2003, 14:47
Отправитель: masquer
Отвечает Bob Johnson
Здравствуйте, Lamer!
1. Адресоваться по cx нельзя. Можно только по bx, si, di (и еще bp, но его лучше не трогай).
2. У тебя элемент массива имеет размер 2 байта, значит для получения адреса нужно номер умножить на 2. Этого процессор сам не может. Можешь сделать так:
mov bx, 3
...
shl bx, 1
mov ax, [offset mas + bx]
Ответ отправлен: 15.04.2003, 03:01
Отправитель: Bob Johnson
Вопрос № 2982 |
Доброе время суто !!
Хочу разъяснить ситуацию.Я пробовал подключить вместо джойстика восемь тумблеров.Делал это так:
2,7,10,14 ноги через тумблера на землю
3,6,11,13 ноги через тумблера на 5 вольт
Прога которая этим заведует в приложении.При подключении 3,6,11,13 ног переменная iy2 все время равна 0.И еще хотелось узнать как сдернуть состояние 4-7 битов по отдельности т.е.чтобы их значения не валились в кучу,переменную А.
Приложение:
Вопрос отправлен: 14.04.2003, 17:58
Отправитель: anon (oven_mars@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Здравствуйте, anon!
Ну про подключение ничего не скажу - не знаю, а по второму вопросу - очень просто:
Приложение:
Ответ отправлен: 14.04.2003, 18:41
Отправитель: Ayl
Отвечает Tigran K. Kalaidjian
Доброе время суток, anon!
Не знаю... У меня все нормально. Буквально сегодня пробовал закоротить все соотв. контакты(2->земля, 7->земля и пр.). Получил нормальные и адекватные результаты. А нулей никогда не бывает(хе-хе! даже при том, что сопротивление при закорачивании нулевое =), только если сопротивление замеряемого резистора больше 1МоМ (воздух, например)Т.е. у тебя, видимо, что-то со звуковухой, ибо у меня всё в норме... Прога, которой тестировал в приложении.
Приложение:
Ответ отправлен: 16.04.2003, 16:13
Отправитель: Tigran K. Kalaidjian
Вопрос № 2983 |
Как из ассеблера вызвать функцию на си используя TASM и TURBO C? Желательно пример вызова небиблиотечной функции с исходниками на асме и си.
Вопрос отправлен: 14.04.2003, 22:27
Отправитель: Sergey
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Добрый день, Sergey!
Начнем с того, что если твоя небиблиотечная функция вызывает какую-либо библиотечную функцию, то на нее распространяются требования, предназначенные для библиотечных функций.
А требования эти прежде всего включают в себя необходимость включения первым модулем начального кода Си, а именно одну из библиотек (c0t, c0s, c0c, c0m, c0l, c0h) в зависимости от модели памяти.
Имена функции в Си должны быть объявлены как extern "C", в ассемблере - через extrn и с ведущим знаком подчеркивания.
Небольшой пример см. в Приложении
Приложение:
Ответ отправлен: 15.04.2003, 11:07
Отправитель: Ayl
Вопрос № 2984 |
Где мне найти файлы - приложения к рассылкам Калашникова по ассемблеру под ДОС (резидент,вирус и т.д)Например,resid15.rar Пожалуста киньте на мыло.
Вопрос отправлен: 14.04.2003, 22:56
Отправитель: paulkan (paulkan@hotmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Joy
Добрый день, paulkan!
А ты не пробывал взять с сайта Боба Джонсона? Там есть уроки, приложения и даже первые выпуски этой рассылки!
Ответ отправлен: 15.04.2003, 11:16
Отправитель: Joy
Отвечает Bob Johnson
Добрый день, paulkan!
У меня на странице есть какие-то файлы приложения к рассылки Олега Калашникова. Посмотри: bobjohnson.nm.ru
Ответ отправлен: 15.04.2003, 03:03
Отправитель: Bob Johnson
Вопрос № 2986 |
Добрый день, уважаемые эксперты.
У меня вопрос про Compatible DC.
При запуске программы я получаю DC окна, затем создаю два Compatible DC функцией CreateCompatibleDC(). Затем в течение жизни моей программы я юзаю эти Compatible DC (один для выбора битмапов для BitBlt() во второй Compatible DC, другой - для формирования общего изображения для последующего копирования в окно) и убиваю их при завершении программы. Да, со вторым Compatible DC соответственно связан еще Compatible Bitmap, который я так же создаю при инициализации программы. Так вот вопрос - при изменении настроек экрана (разрешение, битность и т.д.) эти Compatible DC станут невалидными или же нет??? В MSDN по этому поводу я ничего не нашел, к сожалению.
Заранее большое спасибо. Надеюсь на вашу квалифицированную помощь.
Вопрос отправлен: 15.04.2003, 11:48
Отправитель: NizeG (nizeg@beep.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает akul
Доброе время суток, NizeG!
Конечно он станет неверным, поскольку поверхность экрана создается по новому при смене настроек. Так что придется создавать по новому а иначе глюки.
Ответ отправлен: 17.04.2003, 19:36
Отправитель: akul
Отвечает Bob Johnson
Приветствую Вас, NizeG!
Предположу, что они останутся в том же формате, в котором были. Т.е. когда ты их создавал они были в формате экрана, потом ты формат экрана сменил, а они остались в прежнем. Работать будет все также... Но когда происходит смена формата экрана, windows рассылает сообщение WM_DISPLAYCHANGE, так что в его обработчике можешь заново их пересоздать.
И самое интересное - я тестировал работу с графикой и выяснил, что в принципе на современных видеоадаптерах, не обязательно создавать в памяти битмапы в формате как на экране, т.к. даже если форматы совпадать не будут, операция копирования пройдет быстро. Т.е. ты можешь просто всегда буфер держать 16-ти или 32-х разрядным (в зависимости от качества графики, которая необходима твоему приложению).
Ответ отправлен: 16.04.2003, 18:18
Отправитель: Bob Johnson
Вопрос № 2987 |
Здравствуйте!
Научите меня писать VxD. Или хотя-бы пните в нужную сторону(доки, мануалы - e-mail, ссылки и.т.д.и.т.п.).
Спасибо.
P.S. Исходники тоже подойдут (ASM, С(++))
Вопрос отправлен: 15.04.2003, 19:05
Отправитель: Илья (b.i@date.by)
[Следующий вопрос >>] [Список вопросов]
Отвечает K0dMaster
Добрый день, Илья!
Читай книжку Пирогова программирование под виндувс на ассемблере и зайди сюды www.wasm.ru
Ответ отправлен: 16.04.2003, 09:41
Отправитель: K0dMaster
Отвечает Bob Johnson
Доброе время суток, Илья!
Опа... Скачай с моей страницы доку, как написать vxd на ассемблере. Там же есть пример. bobjohnson.nm.ru
Ответ отправлен: 16.04.2003, 18:18
Отправитель: Bob Johnson
Отвечает Gibbel
Здравствуйте, Илья!
DDK
Ответ отправлен: 16.04.2003, 13:09
Отправитель: Gibbel
Отвечает Maverick
Приветствую Вас, Илья!
На wasm.ru есть хорошие уроки на эту тему от Iczelion'a
По моему его туториалы считаются лучшими.
Ответ отправлен: 17.04.2003, 05:30
Отправитель: Maverick
Отвечает masquer
Приветствую Вас, Илья!
Исходников в соответствующем DDK просто немеряно. Хотя имхо vxd сейчас менее актуальны, чем WDM и KMD драйвера. Хотя в образовательных целях...
Ответ отправлен: 17.04.2003, 12:35
Отправитель: masquer
Вопрос № 2988 |
Уважаемые эксперты возможно ли вывести символ в любую часть экрана не используя прерываний
Вопрос отправлен: 15.04.2003, 20:38
Отправитель: Dim-A
[Следующий вопрос >>] [Список вопросов]
Отвечает Knignick
Доброе время суток, Dim-A!
Да. Просто использовать прямую запись в видеопамять.
по сегментному адресу B800h. Начиная с этого адреса расположены двухбайтовые поля. 1 байт - символ, 1 - атрибут(цвет).
Приложение:
Ответ отправлен: 15.04.2003, 22:16
Отправитель: Knignick
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Dim-A!
Без проблем ! Выводишь напрямую - по адресу B800:xxxx. Прога для примера в приложении - выводит дату выпуска BIOS
Приложение:
Ответ отправлен: 16.04.2003, 15:54
Отправитель: Tigran K. Kalaidjian
Отвечает K0dMaster
Доброе время суток, Dim-A!
Напрямую в видео память через порты вода вывода
Ответ отправлен: 16.04.2003, 09:43
Отправитель: K0dMaster
Отвечает vitya
Добрый день, Dim-A!
Да. Можно. (в текстовом режиме 25x80, для остальных смотри доки).
Начиная с адреса B800h один байт отводится под символ, второй байт под его аттрибут. Так что - если ты запишешь по адресу a = B800h + 160 * y + 2 * x символ, а по адресу [а + 1] аттрибут символа, то он будет там, где надо.
Ответ отправлен: 16.04.2003, 08:28
Отправитель: vitya
Отвечает Paulkan
Здравствуйте, Dim-A!
Это можно сделать прямым отображением в видеобуфер,
который лежит по адресу B800:0000h(верхний левый угол)и т.д
Следует учитывать, что после каждого символа (занимающего байт)лежит байт с атрибуттами текста.
Приложение:
Ответ отправлен: 15.04.2003, 22:51
Отправитель: Paulkan
Отвечает akul
Доброе время суток, Dim-A!
Если под досом, то можно записаться в видеопамять. В текстовом режиме буфер экрана начинается по адресу 0xB8000 там 2 байта на символ: первый код символа, а второй цвет. И вообще имеет смысл почитать литературу про программирование видеоадаптеров: говорят помогает.
Ответ отправлен: 17.04.2003, 19:34
Отправитель: akul
Отвечает Ayl
Добрый день, Dim-A!
Надеюсь, что под ДОС'ом и в текстовом режиме. Да, конечно можно. Допустим, что у тебя режим 80*25 (устанавливается с помощью команд:
mov ax, 3
int 10h
).
Тогда базовый адрес видеопамяти равен B800:0. В этом режиме тебе доступны 4 видеостраницы, каждая размером 4000 байт (2000 байт для символов и 2000 для атрибутов). Страницы располагаются по смещениям, кратным 4К относительно базового сегмента B800.
На каждый символ отводится 2 байта - по четному адресу располагается код символа, по нечетному - атрибут. Атрибут символа отвечает за цвета символа и фона, а также за мерцание символа или повышенную яркость фона в зависимости от установки режима.
Символы в видеопамяти располагаются построчно без разрывов (т.е. после символа в позиции (0, 79) сразу же следует символ в позиции (1, 0)). Соответственно, смещение в видеосегменте для символа в позиции (x, y) определяется как 160*y+2*x, а для его атрибута - 160*y+2*x+1.
Байт атрибута кодируется следующим образом: bffficcc, где b - бит мерцания/интенсивности фона (0 - нет мерцания/нормальная интенсивность, 1 - есть мерцание/повышенная интенсивность), fff - 3 бита цвета фона, i - бит повышенной интенсивности символа, ccc - 3 бита цвета символа.
Теперь пример. Пусть мы хотим вывести символ 'A' в позицию (39, 12) на синем фоне белым цветом. Тогда атрибут равен 1fh.
Приложение:
Ответ отправлен: 16.04.2003, 13:18
Отправитель: Ayl
Отвечает Joy
Приветствую Вас, Dim-A!
Легко! Нужно использовать прямой доступ к видеобуферу (я так понимаю, что речь идет о текстовом режиме). Очень много инфы по этой теме, есть также примеры в рассылке О. Калашникова. Простой примерчик смотри в приложении.
Приложение:
Ответ отправлен: 16.04.2003, 07:30
Отправитель: Joy
Отвечает ASMодей
Здравствуйте, Dim-A!
Если видеорежим текстовый, то можно - просто запиши в память
по соответствующему адресу ASCII код символа, а в следующий байт
атрибуты символа.
Ответ отправлен: 16.04.2003, 16:00
Отправитель: ASMодей
Отвечает Bob Johnson
Доброе время суток, Dim-A!
Да!
push 0b800h
pop es
mov byte ptr es:[Y*160 + X*2], symbol
Ответ отправлен: 16.04.2003, 23:09
Отправитель: Bob Johnson
Отвечает Maverick
Здравствуйте, Dim-A!
Конечно можно, прямым выводом в текстовый видеобуфер.
Его сегментный адрес 0b800h.
Для описания символа требуется 2 байта(символ, атрибут)
Т.е. видеобуфер, это линейный массив.
Ответ отправлен: 17.04.2003, 05:30
Отправитель: Maverick
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "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++ (30) Perl (8) Delphi (14) Pascal (23) Basic / VBA (9) Java / JavaScript (12) PHP (5) MySQL / MSSQL (5) |
Пользователю Windows 95/98/Me (29) Windows NT/2000/XP (22) "Железо" (24) Поиск информации (12) |
Администратору Windows NT/2000/XP (12) Linux / Unix (12) |
Юристу Гражданское право (8) Семейное право (5) Трудовое право (5) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||