Вопрос № 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)
т.е чтобы можно было оперировать длиной, а не коорд.пикселя
хотябы чтобы написать алгоритм рисования круга
Спасибо за ответ
Отвечает: 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