bilka00
bilka00
Почему так все сложно?
bilka00
Потому что виртуализация и криптография в большом количестве
bilka00
Вот и с грамотно построеной защитой так же
Anonymous
Я давно уже не ломаю
bilka00
Без обид сейчас любую грамотно построеную защиту вовсе нельзя сломать без лицензии
bilka00
Потому купить прийдеться в любом случае
Anonymous
Потому купить прийдеться в любом случае
Можно, к примеру, купить коцаную лицензию и её раширить. К примеру, standart стоит $1500, pro $2500, extended $10000. отличаются одним битиком в маске.
Anonymous
А ещё был случай, когда ковыряли софт, и нужен был dword (серийный номер железного ключа), по которому брались опции софта. Так мы этот dword нашли в обзорах по этому софту.
KosBeg
Anonymous
где-то без покупки (или нарывания лиц) не обойтись, где-то можно сгенерировать
Anonymous
полный код процедуры вот такой
write_read:
push di ;на входе bl = READ or WRITE (0 or 1)
xor di,di ; ax = атрибуты/ символ
push dx ; dx = координаты
push dx
shr dx,8
imul dx,80
mov di,dx
pop dx
xor dh,dh
shl dl,1
add di,dx ;mov di,40*2*dh+2*dl
; push bx
; xor bx,bx
; mov bl,dl
; xor dl,dl
; lea di,[dh*80+dl*2]
; lea di,[si*8+10+si*2]
cmp bl, READ
jnz @f
mov word ax,[es:di] ;READ
jmp .exit
@@:
mov word [es:di],ax ;WRITE
.exit:
pop dx
pop di
ret
я вот так бы переписал
Anonymous
; ax - attr или символ
; bl - 0:1 - READ/WRITE
; dx - coord
push di
test bl, 1
pushf ; save flags
mov di, dx ; copy orig
xchg ax, dx
shl di, 6 ; mul *64
shl ax, 4 ; mul *16
add di, ax ; bx=coord*80
shl di, 1 ; bx=coord*160
popf
jz @@write
mov es:[di], dx
jz @@done
@@write:
mov ax, es:[di]
@@done:
pop di
ret
Максим
Всем привет. Кто знает в чем дело?
Максим
Максим
Дмитрий
Ask
Anonymous
Anonymous
mov ax, es:[di]
jz @@done
mov es:[di], dx
@@done:
так - меньше
Vladimir
Anonymous
конструкция
test bl, 1
pushf ; save flags
трата-та действия
popf
Vladimir
Vladimir
А чего ширина 80 фиксированная?
Aiwan \ (•◡•) / _bot
40*25 поле
Anonymous
Во! Вот так красивее!
; ax - attr или символ
; bl - 0:1 - READ/WRITE
; dx - coord
push si
test bl, 1
pushf ; save flags
mov si, dx ; copy orig
xchg ax, dx
shl si, 6 ; mul *64
shl ax, 4 ; mul *16
add si, ax ; bx=coord*80
shl si, 1 ; bx=coord*160
popf
lodsw ; ax<-[si]
jz @@done
mov es:[si], dx
@@done:
pop si
ret
Anonymous
условие, что es и ds указывают на один сегмент
Anonymous
в противном случае lodsw заменить на mov ax, es:[si]
Aiwan \ (•◡•) / _bot
меня смущает вот эти строки
shl si, 6 ; mul *64
shl ax, 4 ; mul *16
dx - координаты, dh-x, dl-y
их разве не по отдельности надо отрабатывать?
Vladimir
Anonymous
Anonymous
Aiwan \ (•◡•) / _bot
при этом исходные координаты (dx) не должны менятся по окончании процедуры, а символ (ax), в зависимоти от флага, изменяться, если это чтение (read) или оставаться безизменения, если это запись (write)
Aiwan \ (•◡•) / _bot
Ask
ну он идею написал, подправить непроблемаж)
Aiwan \ (•◡•) / _bot
в любом случае буду пробоваь по разному
Anonymous
в любом случае буду пробоваь по разному
; ax - attr или символ
; bl - 0:1 - READ/WRITE
; dx - coord
push dx
test bl, 1
pushf ; save flags
xor bx, bx ; extend 8 bit -> 16
xor ax, ax
mov bl, dh ; copy orig
xchg al, dl
shl bx, 6 ; mul *64
shl ax, 4 ; mul *16
add bx, ax ; bx=coord*80
shl bx, 1 ; bx=coord*160
popf
mov ax, es:[bx]
jz @@done
mov es:[bx], dx
@@done:
pop dx
ret
Anonymous
что-то вроде такого
Ask
dx пушпопить еще
Anonymous
dx пушпопить еще
push si - со старой версии осталось. Читать как push dx
Ask
Anonymous
Ask
; ax - attr или символ
mov bl, dh
xchg al, dl
...
mov es:[bx], dx
Ask
в dh что?) и xor ax,ax без сейва символа с атрибутом
Anonymous
ай, идея ясна - реализовывайте! (с)
Ask
;)
Ask
ещеб пушф/попф не юзать) оно не быстро выполняется
Ask
или скорость неважна?)
Aiwan \ (•◡•) / _bot
все используемые регистры нужно возвращать в исходном виде кроме ax в режиме чтения
Ask
ну пуши натыкай
Aiwan \ (•◡•) / _bot
у мя так участок вычисления смещения назрел
movzx bx,dh
movzx si,dl ;избавляемся от xor
shl bx,6
shl si,1
lea di,[bx+16+si] ;избавляемся от add
Vladimir
Ask
регистр попортит
Anonymous
Aiwan \ (•◡•) / _bot
64+16=80
Anonymous
Аааааа! НетЪ!
Anonymous
X*80=x*16+x*64
Aiwan \ (•◡•) / _bot
все настроение испоротил
@AlexFails ты ничего не делал с правилами?
Aiwan \ (•◡•) / _bot
изменил процедуру на на вызов сервисов биос, выгрыш по сравенению с первым вариантом (запись/чтение видео напряму) составляет 3 байта.
Aiwan \ (•◡•) / _bot
инлайн сервисов биос, как в исходном варианте, дает больше выгрыш в свобоном месте, чем работа с видеопамятью напряму через процедуру
s54820
Aiwan \ (•◡•) / _bot
но там не учтена покраска символов
Aiwan \ (•◡•) / _bot
думаю если еще покраску введу то уже будет наоборот
Aiwan \ (•◡•) / _bot
там 6 байт разница, а покраска намного больше займет
Aiwan \ (•◡•) / _bot
осталось со счетом поработать
Aiwan \ (•◡•) / _bot
если у кого какие предложения,вопросы, замечания будут, пишите
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
уефи разве с бутсектора запускается??? по мойму там подружается это все отдельно, а раз так то ограничения на объем вроде нету или он очень большой для этой проги
Aiwan \ (•◡•) / _bot
а где можн почитать о загрузке уефи? мож у кого уже что то есть?
Aiwan \ (•◡•) / _bot
так не интересно
Aiwan \ (•◡•) / _bot
с этим закончу, мож и начну тогда