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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 355
от 28.01.2006, 20:54

Администратор:Калашников О.А.
В рассылке:Подписчиков: 252, Экспертов: 20
В номере:Вопросов: 5, Ответов: 8


Вопрос № 33851: интересует вопрос субпиксельности в г.режиме 13h как рассматривать пиксель ,чтобы можно было задавать допустим длину линии под опр.углом(прим.45) т.е чтобы можно было оперировать длиной, а не коорд.пикселя хотябы чтобы написать алгори...
Вопрос № 33869: Здравствуйте!Я решаю крекми он на асме+WinAPI.На окне нужно найти кнопку. Одна кнопка на окне есть.Но это не такая кнопка как на МеssageBox.Как мне быть?...
Вопрос № 33893: Здравствуйте!Возвращаюсь к вопросу №33869. Это крекми,все ,что удалось мне сделать. Это зделать возможным нажатие клавиши Messagebox. Вот ссылка на крекми,он довольнотаки необычен. http://www.yushatalov.narod.ru/FixMe/FixMe.rar По...
Вопрос № 33919: 1. Подскажите чем разлечаются функции BIOS int 16h ah = 00h и int 16h ah = 16h. 2. Для чего нужно резервировать память int 21h ah = 48h 3. Что происходит по команде in ax, 60h (в подробностях) Заранее благодарен!!!<...
Вопрос № 33921: Где можно найти информацию по командам сопроцессора?...

Вопрос № 33.851
интересует вопрос субпиксельности в г.режиме 13h
как рассматривать пиксель ,чтобы можно было задавать допустим
длину линии под опр.углом(прим.45)
т.е чтобы можно было оперировать длиной, а не коорд.пикселя
хотябы чтобы написать алгоритм рисования круга
Спасибо за ответ
Отправлен: 22.01.2006, 23:06
Вопрос задал: ShinkevichDmitry (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sager
Здравствуйте, SoundBros2!
Я так понял тебе нужно выразить длину линии в пикселях.
Тогда возьмем линию, пусть эта линия диагональ прямоугольника( для удобства: начинается с левого нижнего угла и заканчивается в правом верхнем). Тогда по теореме Пифагора можно найти длину(диагональ):
a,b - катеты прямоугольного треугольника,
Первый пиксель линии имеет координаты P1(x1;y1), последний пиксель линии имеет координаты P2(x2;y2), тогда a=|x2-x1| , b=|y2-y1| (по модулю)
откуда длина L= sqrt ( a^2 + b^2) - sqrt - корень квадратный.
Чтобы нарисовать круг, есть такое уравнение:
x^2 + y^2 = R^2 - где R-радиус круга, x,y - координаты точек
А чтобы нарисовать Эллипс:
(x^2)/a^2 + (y^2)/b^2 = 1 - где a,b - полуоси Эллипса(от них зависит степень сплюснутости Эллипса)
Ответ отправил: Sager (статус: Студент)
Отправлен: 23.01.2006, 09:50
Оценка за ответ: 4
Комментарий оценки:
Если можно подробней про алгоритм рисования линии.Как вычислить последующий пиксель.Ведь линия и длина рассматриваются как множество точек,а на
экране приходится рассматривать как сост. из пикселей.Вот пока,что есть
(Fasm IDE Fresh):
ORG 256
mov al,13h
int 10h
mov ax,0a000h
mov es,ax
push cs
pop ds
xor di,di
mov si,box
mov cx,320*200
xor bx,bx
loop1:
mov [ds:si+bx],byte 0
inc bx
loop loop1
mov bx,320*100+160
mov [ds:si+bx],byte 3
mov cx,320*200
rep movsb
mov ax,10h
int 16h
ret
box:


Вопрос № 33.869
Здравствуйте!Я решаю крекми он на асме+WinAPI.На окне нужно найти кнопку. Одна кнопка на окне
есть.Но это не такая кнопка как на МеssageBox.Как мне быть?
Отправлен: 23.01.2006, 10:02
Вопрос задал: Ua4aqc (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Spooky
Здравствуйте, Ua4aqc!
Ответ отправил: Spooky (статус: 1-ый класс)
Отправлен: 23.01.2006, 10:31

Отвечает: n/a
Здравствуйте, Ua4aqc!
1. В вопросе мало информации, не находите-ли7 link2crackme в студию!
2. 99% кнопка есть в правом верхнем углу экрана [x]
3. crackMe'сы - практически всегда решаются программированием прикладных утилит. Предположительно требуется:
а) получить handle целевого приложения
б) просканировать его на наличие окон вообще.
4. Над полученными окнами провести следующие исследования:
а) тип окна
б) размер
в) позиция
г) regions

Для начала, чтобы убедиться, что окно действительно создано, исследуйте программу с помощью, например SoftIce, ProcessInfo, MS Spy++ или подобных програм.
Ответ отправил: n/a (статус: 2-ой класс)
Отправлен: 23.01.2006, 13:21


Вопрос № 33.893
Здравствуйте!Возвращаюсь к вопросу №33869.
Это крекми,все ,что удалось мне сделать.
Это зделать возможным нажатие клавиши Messagebox.
Вот ссылка на крекми,он довольнотаки необычен.
http://www.yushatalov.narod.ru/FixMe/FixMe.rar
Помогите выполнить остальные задания.
Заранее благодарен.
Отправлен: 23.01.2006, 16:09
Вопрос задал: Ua4aqc (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sager
Здравствуйте, Ua4aqc!
1)Там спрятана кнопка Exit. Чтобы ее активировать запусти прогу под любым редактором ресурсов(reshack например) и там меню Диалог - там есть CONTROL Exit вот ему надо добавить стиль WS_VISIBLE.
2)Кнопку MessageBox можно сделать доступной 2 способами:
1 - в редакторе ресурсов убрать стиль у CONTROL'A кнопки WS_DISABLED(это там же где и кнопку exit делаешь видимой). но тогда еще придется занопить функцию EnableWindow(и соответственно push параметр перед ней, чтобы стек был выровнен)
2 - обрати внимание только на саму функцию EnableWindow. С ней можно кое-что сделать.... что? попробуй сам догадаться.
3)Поставить jmp вместо jnz short 004010C6
заменить jnz short 00401117на jnz short 004010F1
и в меню будет тоже самое запускаться, что и при нажатии на кнопку
4)Тут можно добавить пункт меню либо потроша ресурсы(в reshack'e зайди в панель Menu (слева та что) и там вместо MENUITEM SEPARATOR напиши MENUITEM "About",32001), либо попробовать функциями типа AppendMenu,ModifyMenu, но возникает проблема вместимости кода(хотя можно добавить новую секцию или расширить имеющуюся). Затем обрати внимание, что в коде есть проверка cmp x,7D01h(или 32001 в десятичной(а это наш "About") и там есть проверка на это и если это оно то прога переходит по "плохому" адресу на ret, тебе же нужно изменить на MessageBox с заданием). Вот и все!
Если что непонятно - пиши.
P.S. а крэкми хороший - первый раз вижу такое мудреное задание.
Ответ отправил: Sager (статус: Студент)
Отправлен: 24.01.2006, 21:40


Вопрос № 33.919
1. Подскажите чем разлечаются функции BIOS
int 16h ah = 00h и int 16h ah = 16h.

2. Для чего нужно резервировать память
int 21h ah = 48h

3. Что происходит по команде in ax, 60h (в подробностях)

Заранее благодарен!!!


Отправлен: 23.01.2006, 20:51
Вопрос задал: Xsin (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Xsin!
1. возможно ты имеешь в в виду 10h
там просто расширенные клавиши определяются

2.
память - это общий ресурс
и его нужно выделять для того чтобы не мешать друг другу

3. 60h порт - там скан коды пролетают :) от клавиатуры

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 23.01.2006, 22:21
Оценка за ответ: 5

Отвечает: Seamanmur
Здравствуйте, Xsin!
1. Видимо все-таки вторая функция int 16h ah=10h.
Отличаются тем, что вторая поддерживает клавиши расширенной клавиатуры. Но Браун предупреждает, что некоторые БИОС поддерживают расширенную клавиатуру и в функции ah = 00h. Т.е. для таких БИОС ничем не отличаются.
2.Для того, чтобы программы не мешали друг-другу.
3.Порт 60h это порт данных клавиатуры. При нажатии клавиши в него записывается скан-код клавиши. Считывание оттуда должно иметь пимерный вид:
Int_09h:
push ax
push di
push es
in al,60h ;скан-код клавиши
les di,buffer
stosb ;сохраняем в буфере
pop es
pop di
in al,61h ;порт PB
mov ah,al
or al,80h ;устанавливаем бит "подтверждение вывода
out 61h,al
xchg ah,al ;восстанавливаем старое значение PB
out 61h,al
mov al,20h ;посылаем сигнал разрешения прерываний
out 20h,al ;контроллеру
pop ax
iret
Ответ отправил: Seamanmur (статус: 2-ой класс)
Отправлен: 24.01.2006, 09:45
Оценка за ответ: 5


Вопрос № 33.921
Где можно найти информацию по командам сопроцессора?
Отправлен: 23.01.2006, 20:52
Вопрос задал: Xsin (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Xsin!
http://www.intel.com/

удачи!
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 23.01.2006, 21:30

Отвечает: Seamanmur
Здравствуйте, Xsin!
Очень неплохой FAQ по ассемблеру:
http://pascal.sources.ru/asm/faq/index.htm#fpu
Но это в общем.
Конкретно по сопроцессору:
http://www.emanual.ru/download/8241.html
Очень подробно и на русском.
Ответ отправил: Seamanmur (статус: 2-ой класс)
Отправлен: 24.01.2006, 09:53
Оценка за ответ: 5


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное