Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 561
от 08.06.2003, 08:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 3402
Отправлено ответов: 10007
Активность: 294.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Vdr
Статус: Доверительный
Общий рейтинг: 111.37
[Подробней >>]
[MozgC]
Статус: Профессиональный
Общий рейтинг: 169.76
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 138.19
[Подробней >>]
 
Дмитрий
Статус: Опытный
Общий рейтинг: 148.57
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.06
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.71
URL: Программирование
[Подробней >>]
 
Lynx
Статус: Опытный
Общий рейтинг: 127.82
Телефон: (8442) 750522
[Подробней >>]
Ramzes
Статус: Профессиональный
Общий рейтинг: 127.31
URL: Microsoft homepage
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.78
[Подробней >>]
 
Tigran K. Kalaidjian
Статус: Опытный
Общий рейтинг: 117.61
URL: Методы оптимизации работы ПК
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 115.98
[Подробней >>]
_vt
Статус: Опытный
Общий рейтинг: 117.81
[Подробней >>]
 
Илья
Статус: Опытный
Общий рейтинг: 103.76
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 131.87
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 3349. Здраствуйте, уважаемые эксперты! У меня следующий вопрос: Есть приложение + БД Access (db.mdb) Я мен... (ответов: 8)
Вопрос № 3350. господа. подскажите плиз каким макаром скажем Windows Media Player и тому подобные проигрывает новый... (ответов: 8)
Вопрос № 3351. Уважаемые эксперты! Кто-нибудь из вас знает, где можно скачать SoftIce из DS 2.7? Перебрал все поиск... (ответов: 2)
Вопрос № 3352. Приветствую вас, уважаемые эксперты. есть небольшая проблеммка. пишу курсовую на тему: "резиден... (ответов: 3)
Вопрос № 3354. Доброе время суток. Что означает символ '$' в следующем коде: CODE16 SEGMENT PARA USE16 CODE16_BEG... (ответов: 9)
Вопрос № 3355. Нужна помошь! Начал изучать по книге "Ассемблер? Это просто! Учимся программировать". Скач... (ответов: 8)
Вопрос № 3356. Переводы из одной системы счисления в другой: как перевести из 16 системы в 10 систему число FD? ... (ответов: 1)
Вопрос № 3357. Здравствуйте. В Win98 была функция WNetEnumCachedPasswords в mpr.dll для получения пароля подключени... (ответов: 2)
Вопрос № 3358. Дарова эксперты! Вот забабехал прогу (см. приложение), которая рисует квадрат в граф. режиме. Но вот... (ответов: 2)

Вопросов: 9, ответов: 43


 Вопрос № 3349

Здраствуйте, уважаемые эксперты!
У меня следующий вопрос:
Есть приложение + БД Access (db.mdb)
Я меняю его название на a.dat и меняю
первые 500 байт этого файла
(читаю эти байты как char, делаю определенное
смещение и записываю)
Когда запускается приложение оно проделывает
всю эту операцию в обратном порядке.
+ В БД сидит пароль на открытие.
Во время работы приложения (когда база на диске
находится в нормальном виде) переключиться на
другие окна (не моего приложения) нельзя:
1) приложение StayOnTop
2) Maximized
3) По таймеру посылается WS_MAXIMIZE (на
случай если нажмут Win+M или еще что-нибудь)
Теперь вопрос: Насколько надежно охраняет этот
алгоритм базу данных?
Прокомментируйте, пожалуйста, и направьте на
путь истинный :)
С Уважением, Sammy
PS: Прога работает под Вынь.



Вопрос отправлен: 03.06.2003, 09:41
Отправитель: Sammy (sfxgt666@yahoo.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает Vdr

Добрый день, Sammy!
На мой взгляд, это защита от ламера...
Проблема в том, что, допустим, из Линуха можно запустить твое приложение в окошке, а это означает, что в другом окошке можно юзать твою базу. Это просто как вариант, а их может быть масса.
По идее, сама по себе защита, основанная на том, что нельзя переключится на другое окно, слабовата...
Для надежности можно, например, шифровать база каким-либо способом. Даже простейший алгоритм, на мой взгляд будет надежнее.
Идея с шифрованием основанна на том, что образ базы на диске всегда остается зашифрованным, а те данные с которыми ты работаешь расшифровываются и хранятся в памяти. Это может несколько затормозить работу, но весь вопрос только в том, что важнее - скорость или целосность.
Удачи!

Ответ отправлен: 03.06.2003, 10:57
Отправитель: Vdr


Отвечает [MozgC]

Я думаю слабоватая "защита" получается.. Если ты беспокоишься за базу данных, то может просто хранить данные в своем собственном формате с использованием хэш функции ?
Или если база данных небольшого размера, то при запуске взять сохранить весь файл в память, потом переписать его в другое место на диске уже расшифрованным, считать все данные в память и удалить файл (который в другом месте) вообщем способов море, другое дело, что человек который имеет хороший опыт работы с отладчиком все равно это просекет...

Ответ отправлен: 03.06.2003, 12:45
Отправитель: [MozgC]


Отвечает masquer

Доброе время суток, Sammy!
Охраняет??? Такое наглое поведение программы просто вынудит людей сделать так, чтобы она так себя не вела :)
И то есле это кому-нибудь нужно будет.

Ответ отправлен: 03.06.2003, 11:40
Отправитель: masquer


Отвечает Дмитрий

Доброе время суток, Sammy!
Невозможность переключения задачи не является аргументом в пользу "криптостойкости" данного способа защиты. Разве какое-либо приложение не может выполняться в фоновом режиме и делать с твоей базой все, что угодно. Даже если доступ к файлу базы в момент выполнения твоей проги зашарен это не означает, что базу нельзя получить другим способом. Защита не должна основываться на сокрытии алгоритма. Поэтому в один прекрасный момент чел, которому нужна твоя база отдебужит твою прогу и напишет свой расшифровщик. Все!


Ответ отправлен: 05.06.2003, 08:44
Отправитель: Дмитрий


Отвечает Gibbel

Здравствуйте, Sammy!
Очень ненадежно.
Первое, что пришло в голову, если мне потребуется украсть инфу - пишу прогу, реагирующую на определенную горячую клавишу. Суть реакции - скопировать файл базы данных. Запускаю свою прогу, запускаю твою. Нажимаю хоткей, закрываю проги. Результат - полностью рабочая база данных. Прог для получения пароля - море, так что тут даже напрягаться не придется. Вот и все ;-)
Только что подумал, и пришло в голову - прогу даже писать не надо, запускаем твою прогу, нажимаем ctrl+shift+esc (Task Manager - его окно перекрыть невозможно), в нем жмем New Task и делаем copy... ;-)
В общем, думайте дальше... ;-)

Ответ отправлен: 03.06.2003, 10:25
Отправитель: Gibbel


Отвечает Bob Johnson

Доброе время суток, Sammy!
> Насколько надежно охраняет этот алгоритм базу данных?
Да ни на сколько! Это защита от пользователей, причем извращенная... Я беру и делаю свое приложение (или даже просто существующий far) тоже WS_EX_TOPMOST и что ты думаешь? Оба приложения (и твое, и фар) будут поверх остальных, а вот друг с другом они уже будут нормально взаимодействовать - и я спокойно фаром копирую твою БД.
Далее, always on top еще не гарантирует того, что нельзя работать в других приложениях - можно, но этого не видно! Т.е. после запуска твого, я могу просто нажать alt-tab на far, который там внизу, ничего не увидя, могу нажать shift-ins (который вставит в командную строку команду копирования твоей БД и (как в большинстве фильмов "про компьютеры") останется только нажать enter...
Поверь мне, если надо, то сломают все, что угодно, а ты вот такой защитой сделаешь только работу с твоей программой неприятной. Я сам сразу бы удалил на х*й программу, которая делает вот то, что ты описал, просто потому, что это мой компьютер, и здесь я разбираюсь, кому быть always on top, а кому - MAXIMIZED.
P.S. masquer, думаю, тебе еще интересней ответит по поводу твоей "защиты"...

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 03.06.2003, 17:24
Отправитель: Bob Johnson


Отвечает Lynx

Здравствуйте, Sammy!
Пока не известно как ты делаешь смешение 500 байт, ничего сказать нельзя. Если ты просто их сдвигаешь циклически, то перебрать 500 вариантов "расшифровки" - не проблемма. А вот с невозможностью передачи управления другой программе ты не правильно делаешь. Кто мне помешает сначала запустить свою прогамму, которая будет через каждые 30 сек. сохранять этот файл, а затем твою??? Если ты детальнее всё опишешь, то возможно я смогу помочь тебе. Пиши на lynx@vlink.ru.


Ответ отправлен: 03.06.2003, 18:33
Отправитель: Lynx


Отвечает Ramzes

Добрый день, Sammy!
Ну я думаю что если там стоит пароль, то тебе вряд-ли нужна вся эта фича с записыванием, переписыванием и.т.п.
А если ты хочешь, чтоб файл нельзя было открыть во время работы твоей проги, при его открытии передай Функзии CreateFile в параметр dwShareMode ю 0, и никто не сможет к нему притронутся пока ты сам его не закроешь.

Ответ отправлен: 04.06.2003, 13:44
Отправитель: Ramzes


 Вопрос № 3350

господа. подскажите плиз каким макаром скажем Windows Media Player и тому подобные проигрывает новый файл когда кликаеш на нем в проводнике ? новый экземпляр не загружается,но файл проигрывается ведь первый раз имя передается через командную строку?
ps вообще использую VB, но интересен сам механизм
большое сенкс



Вопрос отправлен: 03.06.2003, 09:49
Отправитель: Arthy

[Следующий вопрос >>] [Список вопросов]

Отвечает Vdr

Здравствуйте, Arthy!
Предупрежу заранее, что могу и ошибаться, но ИМХО все выглядит следующим образом:
при клике на файл запускается второй экземпляр приложения, который в самом начале проверяет наличие уже запущенной копии. Если таковая есть то он передает ей, с помощью какого-либо сообщения, путь к открываемому файлу.
Другой вариант: найдя первую копию, вторая ее просто закрывает.

Ответ отправлен: 03.06.2003, 10:40
Отправитель: Vdr


Отвечает [MozgC]

1) вопрос не понятен
2) вопрос не по теме - это рассылка по программированию на асме

Ответ отправлен: 03.06.2003, 12:46
Отправитель: [MozgC]


Отвечает masquer

Доброе время суток, Arthy!
Кому проигрывает? Экземпляр чего, какой файл, какой первый раз, механизм чего? У меня после таких вопросов комплекс неполноценности развивается.
Если вопрос про то, чтобы один экземпляр проги в памяти держать, так только недавно вопрос был такой.

Ответ отправлен: 03.06.2003, 11:43
Отправитель: masquer


Отвечает Дмитрий

Добрый день, Arthy!
Никакой командной строки! С каждым типом файла ассоциировано свое приложение. Кликнул на mp3 и запускается то приложение, которое с ним ассоциировано в данный момент. Как приложение принимает данные, это уже его забота. В большинстве случаев все необходимое передается с помощью сообщений.


Ответ отправлен: 04.06.2003, 11:17
Отправитель: Дмитрий


Отвечает Gibbel

Приветствую Вас, Arthy!
Просто проверяется наличие уже запущенной версии программы. Если таковая отсутствует, то просто запускаемся, и далее все по плану... Если присутствует - пересылаем сообщение окну запущенного экземпляра приложения (например, WM_COPYDATA) с необходимыми параметрами (коммандной строкой). А вообще, как способов передачи данных между процессами (IPC) - море. Я описал лишь один из них.

Ответ отправлен: 03.06.2003, 10:32
Отправитель: Gibbel


Отвечает Bob Johnson

Здравствуйте, Arthy!
Когда нажимаешь в проводнике первый раз, запускается нужная программа с именем выбранного файла в командной строке. Когда запускаешь второй раз - происходит то же самое. А вот эта программа уже смотрит, запущена ли она еще раз, и если да, то любым доступным образом передает первой своей копии информацию о том, что надо начать работать с другим файлом.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 03.06.2003, 17:24
Отправитель: Bob Johnson


Отвечает Lynx

Добрый день, Arthy!
Большинство программ при попытке повторного запуска проверяют наличие экземпляров этого приложения, и если они существуют, то не запускаются.


Ответ отправлен: 03.06.2003, 18:33
Отправитель: Lynx


Отвечает Ramzes

Здравствуйте, Arthy!
Ну наверно прога при запуске проверяет, не запущен ли уже еще один экземпляр, и если да, то передает ей параметр а сама закрывается

Ответ отправлен: 04.06.2003, 13:39
Отправитель: Ramzes


 Вопрос № 3351

Уважаемые эксперты!
Кто-нибудь из вас знает, где можно скачать SoftIce из DS 2.7?
Перебрал все поисковики, так и не смог найти: либо битые ссылки, либо требуют пароля на вход.



Вопрос отправлен: 03.06.2003, 11:04
Отправитель: Aleksey (aleksey_1@list.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает [MozgC]

А зачем обязательно из DS 2.7 ? Чем не устраивает обычный 4.05 ? Если есть какие-то вопросы можешь связаться со мной по MozgCnoSpam@avtograd.ru

Ответ отправлен: 03.06.2003, 12:47
Отправитель: [MozgC]


Отвечает Дмитрий

Здравствуйте, Aleksey!
Альтернативный вариант. Попробуй поискать варезные CD. Есть куча контор, которые пересылают это барахло по почте. Даже если за диск попросят рублей 300. Думаю ничего страшного.


Ответ отправлен: 04.06.2003, 11:19
Отправитель: Дмитрий


 Вопрос № 3352

Приветствую вас, уважаемые эксперты.
есть небольшая проблеммка. пишу курсовую на тему: "резидент-транслятор клавиатуры под ДОС". т.е. некоторое подобие программки Punto. только работает она по нажатию горячих клавиш.
так вот собственно проблемка: максимальное число транслируемых символов не превышает 7. работа идет с буфером клавиатуры и напрямую с видеопамятью.
если не сложно, помогите плз.
P.S. а может я просто что-то не то делаю?
собсна код программы в приложении


Приложение:


Вопрос отправлен: 03.06.2003, 11:48
Отправитель: kot (basilio@tut.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Добрый день, kot!
Блин, тебя комментарии писать не учили? Тогда хоть напиши, что прога должна делать и как ты это реализуешь. Хотя бы пару слов. Потому что продираться сквозь дебри твоего кода просто невозможно.
А так на беглый взгляд мне не нравится вызов процедур cur_symb и ungetch из обработчика 9-го прерывания.
Сколько раз можно повторять - вызов прерывания из обработчика аппаратного прерывания - лишняя головная боль и источник трудноуловимых ошибок! Прерывания DOS и BIOS нереентерабельны!
А вообще код очень небрежно написан. Меня поразила вот такая конструкция (см.Приложение). Ну допустим, забыл закомментировать операции сравнения, бывает... Это пол-беды. Но что у тебя творится с условными переходами? Надо было написать вот так:
jne pp_off
jmp off
pp_off:


Приложение:

Ответ отправлен: 03.06.2003, 12:23
Отправитель: Ayl


Отвечает [MozgC]

объясни поподробнее в чем проблема

Ответ отправлен: 03.06.2003, 12:37
Отправитель: [MozgC]


Отвечает Bob Johnson

Здравствуйте, kot!
> т.е. некоторое подобие программки Punto
Т.е. тебе надо, чтобы она сама переключала язык по набранному тексту?
> только работает она по нажатию горячих клавиш
Ну тогда это уже просто переключалка клавиатуры... Как keyrus.
> максимальное число транслируемых символов не превышает 7
Это в смысле?
> работа идет с буфером клавиатуры и напрямую с видеопамятью
С буфером клавиатуры - понятно, но с видеопамятью-то зачем???
Я бы сделал это так - повесился бы на девятое прерывание, в его обработчике сначала вызывал бы старый, затем смотрел, какой символ добавился в буфер и переписывал его себе, в свой буфер. Как только в моем буфере набиралась бы комбинация, которую я должен был бы перевести на другой язык, я бы имитировал нажатия нескольких "backspace" (собственно, как и punto), помещая их коды в кольцевой буфер, а затем - помещал бы туда то же самое слово, но на другом языке.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 03.06.2003, 17:24
Отправитель: Bob Johnson


 Вопрос № 3354

Доброе время суток.
Что означает символ '$' в следующем коде:
CODE16 SEGMENT PARA USE16
CODE16_BEGIN = $
ASSUME CS:CODE16,DS:DATA,ES:DATA
START:
MOV AL, байт
OUT байт, AL
JMP $+2 -вот что-то странное
STI
@RETF
SIZE_CSEG16 = ($ - CODE16_BEGIN)
CODE16 ENDS

Заранее спасибо.



Вопрос отправлен: 03.06.2003, 13:02
Отправитель: sel

[Следующий вопрос >>] [Список вопросов]

Отвечает Дмитрий

Здравствуйте, sel!
Ничего странного. Знак доллара - это текущий адрес ассемблирования. Используется как переменная! в строке jmp $+2 эта переменная равна адресу, по которому расположен этот jmp. Значит прога прыгнет на команду sti (два байта вперед). Хотя такой код - это довольно ненормально, но это так!


Ответ отправлен: 04.06.2003, 11:35
Отправитель: Дмитрий


Отвечает Tigran K. Kalaidjian

Доброе время суток, sel!
С помощью значка $ извлекается значение регистра IP, т.е. адрес текущей команды.
Командой JMP $+2 мы "прыгаем" на два байта вперёд, т.е. пропускаем команду STI.
А команда SIZE_CSEG16 = ($ - CODE16_BEGIN)
вычисляет размер сегмента и засовывает это значение в SIZE_CSEG16

Ответ отправлен: 04.06.2003, 09:35
Отправитель: Tigran K. Kalaidjian


Отвечает Ayl

Здравствуйте, sel!
Знак доллара в асме обозначает текущее значение счетчика команд. В твоем примере:
CODE16_BEGIN принимает значение смещения первой команды сегмента CODE16 относительно cs
JMP $+2 - переход на следующую команду (т.н. задержка после выполнения вывода в порт). В этой команде $ равен смещению первого байта команды JMP. Сама команда перехода занимает 2 байта (первый - код команды, второй - смещение точки перехода). Соответственно, следующая команда расположена на 2 байта дальше. При компиляции эта строка примет вид EB 00, потому что адрес перехода при выполнении рассчитывается после изменения IP выборкой команды, а в исходном тексте - до.
SIZE_CSEG16 - размер данного мегмента в байтах. В этой строке из текущего значения счетчика команд ($) вычитается вычисленное на первом шаге значение.

Ответ отправлен: 03.06.2003, 13:38
Отправитель: Ayl


Отвечает Hangatyr

Добрый день, sel!
Текущее значение (E)IP вычисляется ассемблером и заменяется числовым значением. jmp $+2 означает безусловный переход на два байта вперед.


Ответ отправлен: 03.06.2003, 14:21
Отправитель: Hangatyr


Отвечает _vt

Добрый день, sel!
$ - это просто метка текущего адреса, jmp $+2 означает прыжок через 2 байта кода. (Если непонятно, смотри 9-й выпуск рассылки по DOS)




Ответ отправлен: 04.06.2003, 20:00
Отправитель: _vt


Отвечает Илья

Здравствуйте, sel!
Вспомним, что в Турбо Ассемблере имеется несколько предопределенных идентификаторов (например, @data). Еще один простой, но удивительно полезный предопределенный идентификатор - это идентификатор $, который всегда установлен в текущее значение счетчика адреса. Другими словами, идентификатор $ всегда равен текущему смещению в сегменте, в котором Турбо Ассемблер в данным момент выполняет ассемблирование. $ представляет собой постоянное значение смещения, аналогичное OFFSET MemVar. Это позволяет использовать $ в выражениях или в любом месте, где допускается использование константы.

Ответ отправлен: 03.06.2003, 16:09
Отправитель: Илья


Отвечает Bob Johnson

Доброе время суток, sel!
$ - текущий адрес внутри сегмента.
jmp $ + 2 - это переход к следующей за jmp командой, но не "естественным" образом.
Видимо в приведенном тобой примере автор таким вот образом пытался сделать некоторую задержку после вывода байта в порт. Только вот на хрена?

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 03.06.2003, 17:24
Отправитель: Bob Johnson


Отвечает Lynx

Приветствую Вас, sel!
Во время трансляции этот символ заменяется его адресом в программе. Поэтому jmp $+2 означает "прыгнуть" на 2 байта вперёд, а SIZE_CSEG16 = ($ - CODE16_BEGIN) - вычисляет размер сегмента вычитая из адреса последнего символа адрес начального.


Ответ отправлен: 03.06.2003, 18:33
Отправитель: Lynx


Отвечает Maverick

Приветствую Вас, sel!
Ну неужели нельзя поглядеть в отладчике :(
Сразу отпадет половина вопросов
Это будет прыжок на команду sti


Ответ отправлен: 04.06.2003, 15:42
Отправитель: Maverick


 Вопрос № 3355

Нужна помошь! Начал изучать по книге "Ассемблер? Это просто! Учимся программировать". Скачал с сайта rusfaq. Книга хорошая, но возникают вопросы естественно. надеюсь на помошь.
Заранее благодарю.





Вопрос отправлен: 03.06.2003, 13:27
Отправитель: Neo

[Следующий вопрос >>] [Список вопросов]

Отвечает Дмитрий

Доброе время суток, Neo!
В чем, собственно заключается вопрос?


Ответ отправлен: 04.06.2003, 11:44
Отправитель: Дмитрий


Отвечает Tigran K. Kalaidjian

Добрый день, Neo!
Чего-то не понял вопроса...
Если возникнут конкретные проблемы, пишите сюда. Если возникнут проблемы программирования портов - пишите мне на мыло.

Ответ отправлен: 05.06.2003, 09:39
Отправитель: Tigran K. Kalaidjian


Отвечает [MozgC]

Ну возникают - спрашивай у экспертов - поможем

Ответ отправлен: 03.06.2003, 13:37
Отправитель: [MozgC]


Отвечает Vdr

Добрый день, Neo!
И в чем же тебе помочь? Не увидел вопроса :)
Ассемблер на мой взгляд - великолепная гимнастика ума...

Ответ отправлен: 03.06.2003, 13:56
Отправитель: Vdr


Отвечает Bob Johnson

Приветствую Вас, Neo!
Ну а в чем, собственно, проблемы?
Какая тебе помощь нужна??? Ты хоть опиши ситуацию...

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 03.06.2003, 17:24
Отправитель: Bob Johnson


Отвечает Lynx

Доброе время суток, Neo!
Да ради бога. Если что обращайся. Не думаю, что кто то из экспертов откажется тебе помочь. А если ломает задавать вопросы через РусФак, то пиши мне lynx@vlink.ru


Ответ отправлен: 03.06.2003, 18:33
Отправитель: Lynx


Отвечает Ramzes

Приветствую Вас, Neo!
А в чем собсно вопрос ?

Ответ отправлен: 04.06.2003, 13:38
Отправитель: Ramzes


Отвечает Maverick

Приветствую Вас, Neo!
Ну рассылка и расчитана на помощь нуждающимся...
Так что задавай вопросы.


Ответ отправлен: 04.06.2003, 15:41
Отправитель: Maverick


 Вопрос № 3356

Переводы из одной системы счисления в другой: как перевести из 16 системы в 10 систему число FD?



Вопрос отправлен: 03.06.2003, 15:35
Отправитель: Neo

[Следующий вопрос >>] [Список вопросов]

Отвечает Vdr

Доброе время суток, Neo!
Правила перевода из любой позиционной системы счисления в десятичную:
Пусть число S - искомое, десятичное
Пусть ABCD - число в иной системе счисления
Пусть X - основание системы равное максимальному числу в данной системе счисления плюс 1
таким образом S=A*X^3+B*X^2+C*X^1+D*X^0
где ^ - степень. Порядок степени определяется позицией числа отсчитывая с конца, начинается с нуля.
Твое число FD.
т.к. F=15 D=13
S=15*16+13*1=253
Удачи

Ответ отправлен: 04.06.2003, 10:16
Отправитель: Vdr


 Вопрос № 3357

Здравствуйте.
В Win98 была функция WNetEnumCachedPasswords в mpr.dll для получения пароля подключения к интернету. Есть ли в WinXP какая-нибудь аналогичная функция?
Спасибо.



Вопрос отправлен: 03.06.2003, 19:14
Отправитель: YuriS

[Следующий вопрос >>] [Список вопросов]

Отвечает [MozgC]

Вы че все идвеваетесь чтоли !? ВСЕ ПИШУТ ВОПРОСЫ В РАССЫЛКУ ПО АССЕМБЛЕРУ НЕ ПО ТЕМЕ !

Ответ отправлен: 03.06.2003, 21:48
Отправитель: [MozgC]


Отвечает Bob Johnson

Доброе время суток, YuriS!
Нет, все-таки XP - это система на основе НТ, в которой надежности уделяется больше внимания.

* EMan1.1: ---===*** Eternal power ***===---


Ответ отправлен: 04.06.2003, 15:28
Отправитель: Bob Johnson


 Вопрос № 3358

Дарова эксперты!
Вот забабехал прогу (см. приложение), которая рисует квадрат в граф. режиме. Но вот проблема - не хочет рисовать нормальный квадрат со стороной ~300pix. А при 100pix || 200pix - все четко'. Где собака зарыта ??
P.S. Не бейте меня сильно за такой исходник - все-таки beginner'.
Кста, черкните нормальный алгоритм построения квадрата (ну и окружности, за компанию).
TNX!


Приложение:


Вопрос отправлен: 03.06.2003, 22:14
Отправитель: Lo Kee (lokee@ukr.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Доброе время суток, Lo Kee!
В цикле вывода пиксела нельзя использовать регистр BX, он используется в функции 0С прерывания 10 как указатель на номер страницы. Пока длина стороны квадрата меньше 256, старший байт BX равен нулю и вывод идет правильно, в нулевую страницу. Замени везде BX на другой регистр, например DI, и тогда все заработает.


Ответ отправлен: 04.06.2003, 20:00
Отправитель: _vt


Отвечает [MozgC]

Ну скажем так у меня че то вообще криво было все, все квадрыты были кривыми, а потом еще и недопустимая операция..

Ответ отправлен: 03.06.2003, 22:32
Отправитель: [MozgC]



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (30)
Perl (7)
Builder / Delphi (19)
Pascal (30)
Basic / VBA (12)
Java / JavaScript (12)
PHP (8)
MySQL / MSSQL (7)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (31)
"Железо" (27)
Поиск информации (15)
Администратору
Windows NT/2000/XP (15)
Linux / Unix (9)
Юристу
Гражданское право (5)
Семейное право (2)
Трудовое право (3)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное