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

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


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

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

Выпуск № 433
от 03.12.2002, 13:40

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


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

masquer
Статус: Профессиональный
Общий рейтинг: 150.91
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 111.95
URL: Beeblebrox / TMA HomePage
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 137.77
URL: Задачи по ассемблеру
Телефон: 89039415024 (BiLine GSM)
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 119.28
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 111
URL: мощный файловый архив
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 122.67
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 117.55
[Подробней >>]
Dron
Статус: Профессиональный
Общий рейтинг: 113.91
URL: Операционная система с нуля!
[Подробней >>]
LIFO
Статус: Профессиональный
Общий рейтинг: 124.08
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 154.64
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 129.01
URL: моя рассылка по Protected Mode
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.73
URL: Страничка обо мне и моих друзьях
[Подробней >>]


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

Вопрос № 1972. Привет, уважаемые! В рассылке "Низкоуровневое программирование для дZенствующих, #30 (часть 3)&... (ответов: 1)
Вопрос № 1973. Здравствуйте! Извините за возможный оффтопик, но вы же программеры, может кто и знает. Интересует та... (ответов: 4)
Вопрос № 1974. Здравствуйте, уважаемые эксперты! У меня имеется exe-файл, и в таблице импорта(PE) указана функция и... (ответов: 1)
Вопрос № 1975. Здраствуйте!!! Помогите пожалуйста поставить SoftIce 4.05 fo NT под Windows2000 build 2195 with Serv... (ответов: 2)
Вопрос № 1976. Здравствуйте, Эксперты ! Что бы умножить пару регистров DX:AX на 2 можно сделать так SHL AX,1 ... (ответов: 5)
Вопрос № 1977. Здравствуйте ! Команда JMP начинается на 0624h. Как определить адрес перехода, если шестнадцатеричн... (ответов: 3)
Вопрос № 1979. Здравствуйте, Эксперты ! ПРограмма MAINPRO вызывает подпрограмму SUBPRO 1.Какая деректива указывает,... (ответов: 1)
Вопрос № 1980. Здравствуйте. Скачал IDA pro v415, но он не хочет запускаться - требует key. Может кто-нибудь знает ... (ответов: 1)
Вопрос № 1981. Здравствуйте Bob Johnson. По поводу вопроса №1955 Вы ответили. Ну а что ты хотел - ты перехватываешь... (ответов: 1)
Вопрос № 1982. Не подскажите где мона взять нормальный RadAsm? А то я скачал, а он при открытии ругается, что не м... (ответов: 2)
Вопрос № 1984. Доброго времени суток всем! Немогли бы вы дать мне ссылок, на сайты содержащае алгоритмы и исходники... (ответов: 3)
Вопрос № 1985. Дарова. Я тут хотел попросить. Я тут прогу ломаю. Почти весь алгоритм разгадал, но вот с одним кусоч... (ответов: 5)

Вопросов: 12, ответов: 29


 Вопрос № 1972

Привет, уважаемые!
В рассылке "Низкоуровневое программирование для дZенствующих, #30 (часть 3)" пробежала инфа, что можно получить код без "заглушек", т.е. в конце exe-файла
не будет строк типа:
00401B8C $-FF25 68204000 JMP DWORD PTR DS:<&USER32.BeginPaint>]
Одни говорят, что NT такие проги не грузит. Подскажите, как можно убрать их, если мне надо только под 98 или только под NT (адреса фу-й разные, наверное).



Вопрос отправлен: 28.11.2002, 14:05
Отправитель: [-=TT=-] (KunaevNA@PosolskyDom.ru)

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

Отвечает masquer

Здравствуйте, [-=TT=-]!
Ну, можно и без них, для каждой функции GetProcAddress и прыжок. Все НТ грузит, не верь, и зачем их убирать?

Ответ отправлен: 28.11.2002, 14:38
Отправитель: masquer


 Вопрос № 1973

Здравствуйте!
Извините за возможный оффтопик, но вы же программеры, может кто и знает. Интересует такой вопрос:
1.В новостях часто пишут: Обнаружена уязвимость там-то и там-то, из-за переполнения буфера хакер может захватить контроль за системой и тп
Объясните чайнику плз, как при ошибке в проге захватывается контроль.
Я не прошу алгоритмы или реализации, я прошу объяснить сам механизм - из-за ЧЕГО?
2. Что такое DoS-атака?



Вопрос отправлен: 28.11.2002, 14:23
Отправитель: Макс

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

Отвечает masquer

Добрый день, Макс!
1. Переполнение буфера чаще всего бывает через кривизну рук и других частей программера, который не следит за стеком. Если ты не программер, то мне сложно тебе все объяснить, но вкратце схема такая - формируется буфер размером больше чем программа обрабатывает, т.е. имеем остаток, который содержит код, и этот остаток формируется таким образом, чтобы на него попало управление, вот и все.
2. Denial of Service - отказ от обслуживания, когда множество машин одновременно пытаются получить доступ к определенному ресурсу. Вроде так...

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


Отвечает Beeblebrox

Приветствую Вас, Макс!
1. Переполнение буфера. Предположим, ты пишешь вместо команды format a: /s/u команду format a: /s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/s/
ну и еще полкилометра того же самого. Никто не знает, что произойдет в этом случае. (На самом деле в МСДОС есть ограничение на максимальную длину командной строки, но я же говорю к примеру) Можно найти ситуацию, когда ввод специально подобранной длинной строки параметров затрет своим хвостом стек или код, при этом управление передастся куда нужно хакеру.
2. DoS - Deny of Service, по-нашему это "сделать так, чтоб не работало". То есть напакостить :)

Ответ отправлен: 28.11.2002, 15:12
Отправитель: Beeblebrox


Отвечает Maverick

Здравствуйте, Макс!
Ну в общем смысле это выглядет так:
Есть у тебя дырявая прога, некий умелец конектится к какому либо порту и в результате ошибки твой проги он может получить доступ к твоему компу. Если у тебя сервер, то может получить привилегии админа, а дальше все вытекающие отсюда последствия.
А DoS атака и есть атака основанная на переполнении буфера.


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


Отвечает ASMодей

Здравствуйте, Макс!
1. Хакер может захватить контроль над системой если как-нибудь
запустит свою программу на этой системе. Честно говоря я плохо
представляю как это происходит при переполнении стека, но что
такое может случиться, я слышал.
2. DoS - Denied of Service (отказ в обслуживании). Для проведения
этой атаки на сервер-жертву посылается огромное число IP-пакетов
с неправильными заголовками. В результате сервер занимается
только обработкой этих пакетов или исчерпав свои ресурсы вылетает.


Ответ отправлен: 29.11.2002, 05:48
Отправитель: ASMодей


 Вопрос № 1974

Здравствуйте, уважаемые эксперты!
У меня имеется exe-файл, и в таблице импорта(PE) указана функция из DLL, которую он на самом деле не использует, но наотрез отказывается запускаться из-за того, что dll'ке этой функции вообще нет. Вот и вопрос, как это дело можно исправить, вручную править таблицу импрота, или это можно провернять как-то автоматически, при помощи каких-нибудь средств?



Вопрос отправлен: 28.11.2002, 14:33
Отправитель: Khanz (jcdaleks@mail.ru)

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

Отвечает masquer

Доброе время суток, Khanz!
Можно вручную, удалив соответствующие записи в таблице импорта, а можно (попробовать, я не пробовал) воспользоваться PEditor (LordPE)

Ответ отправлен: 28.11.2002, 18:46
Отправитель: masquer


 Вопрос № 1975

Здраствуйте!!!
Помогите пожалуйста поставить SoftIce 4.05 fo NT под Windows2000 build 2195 with ServicePack3. Я устанавливаю выбираю manual загрузку, но при запуске окошко не появляется, но водет себя как-будто он действительно нормально загружен (то есть курсор не двигаеться, но после нажатия Ctrl-D все вроде нормально. Но это не так. Итак симптомы:
- клавиатура неадыкватно реагирует на нажатия клавиш (такое состояние, как-будто все время нажата клавиша Alt)
- в Диспетчере Задач не показывается загрузка процессора, памяти etc.
- Windows после этого не завершает корректно работу.
Лечится это состояние with Reset. Help me, please!!!
Torax



Вопрос отправлен: 28.11.2002, 18:29
Отправитель: Torax (torax@dotes.west.energy.gov.ua)

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

Отвечает masquer

Доброе время суток, Torax!
Помогает утановка старой версии детонатора (если видео - нвидиа), если мышка и клава - усб, настройки смотреть нужно, у меня, как я ни крутил, мышка усб не заработала, только через переходник PS/2

Ответ отправлен: 28.11.2002, 18:49
Отправитель: masquer


Отвечает Eugene

Доброе время суток, Torax!
Во первых посмотри, чтобы в boot.ini находился ключ /noguiboot, например:
multi(0)disk(0)rdisk(0)partition(1)WINNT="Windows NT Workstation Version 5.00" /noguiboot
Во вторых запусти symbol loader, зайди в
Edit->initialization settings, там на вкладке troubleshooting убери все галки.
В третьих, необязательно, но вид улучшится, там же, на вкладке general в строку init. string засунь wl; color f a 4f 1f e; code on; lines 60; wc 40; wd 2; faults off; X;
Если глюки всё-ещё будут, запусти файлик icepack.exe в каталоге soft-ice'a.

Ответ отправлен: 28.11.2002, 18:54
Отправитель: Eugene


 Вопрос № 1976

Здравствуйте, Эксперты !

Что бы умножить пару регистров DX:AX на 2 можно сделать так
SHL AX,1
RCL DX,1
что здесь надо изменить, чтобы:
1. Умножить на 4
2. разделить на 4
3. умножить 48 бит в регистрах DX:AX:BX на 2
Программа под DOS



Вопрос отправлен: 28.11.2002, 21:24
Отправитель: Саша

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

Отвечает Sensey

Добрый день, Саша!
1. Дважды
SHL AX,1
RCL DX,1
SHL AX,1
RCL DX,1
либо работать с 32-битными регистрами...
2.
SHR DX, 1
RCR AX, 1
SHR DX, 1
RCR AX, 1
3. Аналогично
SHL BX,1
RCL AX,1
RCL DX,1




Ответ отправлен: 29.11.2002, 10:24
Отправитель: Sensey


Отвечает Ayl

Приветствую Вас, Саша!
1. Еще раз тоже самое (N * 4 = N * 2 * 2)
2. SHR DX, 1
RCR AX, 1
SHR DX, 1
RCR AX, 1
3. SHL BX, 1
RCL AX, 1
RCL DX, 1


Ответ отправлен: 29.11.2002, 11:02
Отправитель: Ayl


Отвечает Dron

Доброе время суток, Саша!
Сам то понимаешь как работает умножение на 2?
или списал откуда-то?
Чтобы умножить на 4:
shl ax, 1
rcl dx, 1
shl ax, 1
rcl dx, 1
проще через сдвиг помоему не получится...
деление производится в обратную сторону.
shr dx, 1
rcr ax, 1
...
но с тремя регистрами и на 2 - проще.
shl ax, 1
rcl dx, 1
rcl bx, 1


Ответ отправлен: 29.11.2002, 11:07
Отправитель: Dron


Отвечает LIFO

Доброе время суток, Саша!
SHL AX,1
SHL AX,1


Ответ отправлен: 28.11.2002, 23:15
Отправитель: LIFO


Отвечает Bob Johnson

Здравствуйте, Саша!
1:
shld dx, ax, 4
shl ax, 4
2:
shrd ax, dx, 4
sar dx, 4
3:
shl bx, 1
rcl ax, 1
rcl dx, 1


Ответ отправлен: 01.12.2002, 02:59
Отправитель: Bob Johnson


 Вопрос № 1977

Здравствуйте !
Команда JMP начинается на 0624h.
Как определить адрес перехода, если
шестнадцатеричный обьектный код для операнда команды JMP:
1. 27
2. 6B
3. C6
Программа написана под DOS



Вопрос отправлен: 28.11.2002, 21:24
Отправитель: Саша

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

Отвечает masquer

Доброе время суток, Саша!
1. 64D
2. 691
3. 5EC


Ответ отправлен: 29.11.2002, 10:51
Отправитель: masquer


Отвечает Ayl

Добрый день, Саша!
Так как переход, похоже, короткий (short), то сама команда JMP занимает 2 байта. Т.е. IP = 0624h + 2 = 0626h (адрес перехода отсчитывается от начала следующей команды.
Итак:
1. 0626h + 27h = 064Dh
2. 0626h + 6Bh = 0691h
3. 0626h + C6h - 100h = 05ECh (смещение знаковое, то есть от -128 до +127 байт).

Ответ отправлен: 29.11.2002, 11:09
Отправитель: Ayl


Отвечает Bob Johnson

Доброе время суток, Саша!
А что это за код тако 27 6b c6? У меня вместо jmp фигня всякая получается.


Ответ отправлен: 01.12.2002, 02:59
Отправитель: Bob Johnson


 Вопрос № 1979

Здравствуйте, Эксперты !
ПРограмма MAINPRO вызывает подпрограмму SUBPRO
1.Какая деректива указывает, что имя SUBPRO определенно вне ее собственного кода ?
2.какая дериктива в подпрограмме SUBPRO необходима для того? чтобы имя точки входа
было доступно в основной программе MAINPRO
Программа под DOS



Вопрос отправлен: 28.11.2002, 21:26
Отправитель: Саша

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

Отвечает Ayl

Здравствуйте, Саша!
MAINPRO.ASM:
...
EXTERN SUBPRO:PROC
...
call SUBPRO
...
;-----------------
SUBPRO.ASM:
...
PUBLIC SUBPRO
...
SUBPRO proc
...



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


 Вопрос № 1980

Здравствуйте. Скачал IDA pro v415, но он не хочет запускаться - требует key. Может кто-нибудь знает где можно найти кряк?



Вопрос отправлен: 28.11.2002, 22:33
Отправитель: domovoi (domovoi_artem@mail.ru)

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

Отвечает Eugene

Приветствую Вас, domovoi!
Попробуй www.astalavista.com
Там несколько search engine'ов, попробуй на разных.

Ответ отправлен: 29.11.2002, 10:49
Отправитель: Eugene


 Вопрос № 1981

Здравствуйте Bob Johnson.
По поводу вопроса №1955
Вы ответили.
Ну а что ты хотел - ты перехватываешь прерывание клавиатуры и в его обработчике смело
так меняешь bx...
Это мало кому понравится.
Тут нужно или bx не трогать, или сохранять его старое значение, а перед возвратом
восстанавливать. Еще не помешает вызывать старый обработчик прерывания.
С регистрами я конечно слажал. Поправил это момент, но ситуация осталась прежненей. Вызов старого обработчкика обязателен? Если, то почему?




Вопрос отправлен: 29.11.2002, 06:56
Отправитель: Алексей

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

Отвечает Bob Johnson

Доброе время суток, Алексей!
В принципе, ты можешь не вызывать старый обработчик. Что тебе тогда нужно сделать - это сбросить контроллер прерываний (ты это делал), но тогда, естественно, клавиатура больше у тебя работать не будет (т.к. никто не читает скан-код и не преобразует его в символ). Если же ты хочешь, чтобы просто параллельно с обычной работой всех программ при нажатии на клавишу что-то еще происходило, то тебе нужно вызывать старый обработчик.
Еще (вот сейчас глянул) у тебя есть такая заморочка:
Ты там проверяешь bx и пока он не станет отличным от нуля, не выходишь из программы -
тут лучше использовать какую-либо ячейку памяти для таких целей, т.к. прерывания клавиатуры могут прийти не только прямо в твою прогу, а, например, в обработчик прерываний таймера, который, в свою очередь, был прерван клавиатурой.
Только учти, что при вызове твоего обработчика никакие сегментные регистры, кроме cs не определены - поэтому при обращении к любой ячейки памяти либо специально указывай cs, или вначале сохрани ds, например, а потом присвой ему нужной значение.
Если все-таки не получится, присылай окончательный вариант кода с пояснением, что программа должна делать.


Ответ отправлен: 01.12.2002, 02:59
Отправитель: Bob Johnson


 Вопрос № 1982

Не подскажите где мона взять нормальный RadAsm?
А то я скачал, а он при открытии ругается, что не может открыть какие то dll'ки, в конечном итоге запускается, но не может скомпилировать проект?! Вобщем, где нормальный скачать можно?
LIFO, я в крекеры "не подался", я уже давно занимаюсь этим делом, а книгу хочется купить просто из интереса :-)...



Вопрос отправлен: 29.11.2002, 08:42
Отправитель: Soldier

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

Отвечает LIFO

Добрый день, Soldier!
Эти dll'ки лежат в папке AddIns.Пробовал их положит в одну директорию с экзешником -ни фига не вышло.
Попробуй Microsoft Visual Studio (там что-то про это говорится в папке с dll'ками.
Как я уже сказал, книг стоящих по этому делу нет, так что только Internet:)

Ответ отправлен: 01.12.2002, 15:11
Отправитель: LIFO


Отвечает masquer

http://radasm.sonshinesoftware.com/
Вообще за два дня можно и в поисковике найти...

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


 Вопрос № 1984

Доброго времени суток всем!
Немогли бы вы дать мне ссылок, на сайты содержащае алгоритмы и исходники по работе с графикой, конкретней меня интересует алгоритм удаления невидимых линий, использующий z-буфер (исходники на асме, си, паскале). Если у кого-то есть лабы или курсовые по этой теме, пожалуйста пошлите мне.



Вопрос отправлен: 29.11.2002, 13:25
Отправитель: Jens (jens@supermail.ru)

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

Отвечает ASMодей

Доброе время суток, Jens!
Посмотри на www.enlight.ru


Ответ отправлен: 01.12.2002, 09:57
Отправитель: ASMодей


Отвечает Eugene

Здравствуйте, Jens!
RusFAQ.ru

Ответ отправлен: 29.11.2002, 14:55
Отправитель: Eugene


Отвечает Bob Johnson

Доброе время суток, Jens!
Алгоритм работы с z буфером очень простой - когда ты выводишь на экран (или в буфер в памяти) полигон (треугольник), ты в каждой точке этого полигона помимо цветовой составляющей (рассчитывается исходя из наложенной текстуры и т.д.) рассчитываешь еще и z-координату (т.е. насколько далеко находится эта точка от наблюдателя) и заносишь это значение в так называемый z буфер. Далее, при выводе нового полигона, ты также рассчитываешь для каждой его точки z-координату и, если она оказалась дальше той, что уже была выведена ранее, то не выводишь данную точку.
Это дает абсолютно правильный результат в любом случае (даже при пересечении полигонов). Но это сильно замедляет скорость рендеринга. Вот, например, как делали в 1-м quake - вначале выводили стены уровня (т.е. неподвижные всегда одинаковые полигоны) с применением BSP (сортировка полигонов таким образом, чтобы вначале выводились более дальние полигоны, затем - те, что ближе) и одновременно заполняли z-буфер. Затем рисовали модели (игроков) и эффекты, уже полностью используя ранее рассчитанный z-буфер. Это позволяло сократить процесс рендеринга за счет исключения следующих операций: начальная очистка z-буфера и проверка z-координат при выводе стен уровня.


Ответ отправлен: 01.12.2002, 02:59
Отправитель: Bob Johnson


 Вопрос № 1985

Дарова.
Я тут хотел попросить. Я тут прогу ломаю. Почти весь алгоритм разгадал, но вот с одним кусочком спарвится не могу :-(. Дан код на ассемблере:
*******************************
ecx=10h;
esi-указывает последовательность(т.е. указывает на 1-й символ).
pov:
lea eax, [ebx+ebx*4]
xor edx, edx
mov dl, [esi]
lea ebx, [edx+eax*2-41h]
inc esi
loop pov
*******************************
в конце в ebx должно получится B4169BF7h. Как его получить? Т.е. при какой последовательности(которая суётся в esi).
Плиз помогите!



Вопрос отправлен: 29.11.2002, 13:38
Отправитель: ROOT

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

Отвечает Broken Sword

Приветствую Вас, ROOT!
интересно...
Значит, смотри:
На 16 шаге loop: EBX_16 = DL_16 + 10*EBX_15 - 41h = B4169BF7
На 15 шаге loop: EBX_15 = DL_15 + 10*EBX_14 - 41h = ????????
На 14 шаге loop: EBX_14 = DL_14 + 10*EBX_13 - 41h = ????????
...
На 01 шаге loop: EBX_01 = DL_01 + 10*EBX_00 - 41h = ????????
Теперь, EBX_00 (в последней строке) - это то что тебе нада найти. Можно, конечно, сделать это реверсировав эту рекурсивную функцию, но это слишком легко... :) поэтому воспользуемся Maple-ом...
Вообщем, получается премилая формулка:
DL_16+10*DL_15+100*DL_14+1000*DL_13+10000*DL_12+100000*DL_11+1000000*DL_10+10000000*DL_09+100000000*DL_08+1000000000*DL_07+10000000000*DL_06+100000000000*DL_05+1000000000000*DL_04+10000000000000*DL_03+100000000000000*DL_02+1000000000000000*DL_01+10000000000000000*EBX_00-72222219200841616 = 0
где DL_1 ... DL_16 - это значения из массива, на который указывает ESI вначале, EBX_00 - начальное значение EBX (то что тебе надо найти). Вообщем, чтоб ты не мучался - вышли мне значения этих 16 переменных (DL_1 ... DL_16)

Ответ отправлен: 29.11.2002, 16:12
Отправитель: Broken Sword


Отвечает Gibbel

Добрый день, ROOT!
А чему ebx в начале равен???
А вообще, нет однозначного решения... Вариантов последовательностей множество...

Ответ отправлен: 29.11.2002, 14:18
Отправитель: Gibbel


Отвечает Beeblebrox

Здравствуйте, ROOT!
Тут же у тебя все написано:
ebx=ebx*10+(char[esi]-'A')
Берешь виндовый калькулятор, и переводишь B4169BF7h в десятичный вид, получаем 3021380599, что соответствует последовательности 'DACBDIAFJJ'. Так как ты не указал начальное значение ebx, я предполагаю, что 0. Если символов должно быть ровно 16, то первые 6 символов - 'AAAAAA', итого: 'AAAAAADACBDIAFJJ'
Credits accepted :)

Ответ отправлен: 29.11.2002, 14:35
Отправитель: Beeblebrox


Отвечает masquer

Доброе время суток, ROOT!
Элементраный алгоритм, расписывать не хочу, сам догадайся, так интереснее.
Я за 2 минуты процедурку написал, код получился
AAAAAADACBDIAFJJ


Ответ отправлен: 29.11.2002, 14:45
Отправитель: masquer


Отвечает Bob Johnson

Доброе время суток, ROOT!
В общем формула такая:
eax = ebx*5
edx = код символа
ebx = edx + eax*2 - 41h
и т.д.
т.е.
ebx в конце = код символа + ebx*10 - 41h
и так 10 раз.
Вначале переводим твое число в 10-ю систему:
3021380599
теперь надо, чтобы нулю в разряде числа соответствовало 41h (т.е. буква А, кажется).
Т.е.:
DACBDIAFJJ вот кажется...


Ответ отправлен: 01.12.2002, 02:59
Отправитель: Bob Johnson



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (39)
C / C++ (29)
Perl (7)
Delphi (18)
Pascal (23)
Basic / VBA (9)
Java / JavaScript (14)
PHP (8)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (23)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (3)
Трудовое право (5)
КоАП (3)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


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

В избранное