Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› как на asm шифровать процедуры?
Посл.ответ Сообщение

Ранг: 37.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 19 февраля 2006 13:54
· Личное сообщение · #1

есть у кого-нить пример или сорц или ссылки на сабж. буду очень признателен.




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 19 февраля 2006 16:02
· Личное сообщение · #2

Погляди сорцы yoda Crypter'а:

scifi.pages.at/yoda9k/files/yC1.2-SRC.zip

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 11:08 · Поправил: doctor Ice
· Личное сообщение · #3

выглядит грустно =) а вот что если нам известен в криптованном учсатке байтик или 2?

OepJumpEncryptLoop:
LODSB
ROR AL, 2
ADD AL, BL
XOR AL, OEP_JUMP_ENCRYPT_NUM
STOSB
INC EBX
LOOP OepJumpEncryptLoop




я ПРОТЕВ! надо так -


; инициализируем ключ криптовки

mov d_w_p [randseed], crypt_code
mov d_w_p [randseed+4], crypt_code_2


.crypt:
mov eax, 7fffffffh
call GetRandom
mov bl, al
lodsb
xor al, bl
stosb
loop .crypt




;--------------------------------------------------------------------- --------
; Retrieve random number
; in:
; eax limit random
; out:
; eax random number

GetRandom:

or eax, eax
je @random_limit_zero

push ebx
push ecx
push edx
push esi
push edi

; add ecx, ebx
; add ecx, edx
; add ecx, esi
; add ecx, edi
; add ecx, esp
add d_w_p [randseed], ecx
sub ecx, eax
; sub ecx, d_w_p ss:[esp]
add d_w_p [randseed+04h], ecx

mov ecx, eax
mov eax, d_w_p [randseed]
mov ebx, d_w_p [randseed+04h]
mov esi, eax
mov edi, ebx
movsx edx, ax
shl eax, 10h
push ebx
pop ax
pop ax
shl ebx, 10h
mov bx, 0000h
rcr dx, 01h
rcr eax, 01h
rcr ebx, 01h
add ebx, edi
sbb eax, esi
add ebx, 62e9f134h
adc eax, 36193566h
add d_w_p [randseed], ebx
add d_w_p [randseed+04h], eax
add edi, esi
mul edi
mul esi
xor edx, edx
div ecx
mov eax, edx

pop edi
pop esi
pop edx
pop ecx
pop ebx


@random_limit_zero:

retn

.data

align 04h

randseed:
dd 0
dd 0


вот так вот господа нуна криптовать вири шоб не брутили всякие гады.
у кого есть идеи лучше?

-----
power and the money money and the power




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 20 февраля 2006 12:16
· Личное сообщение · #4

doctor Ice
В гсч старт должен начинаться со случайного числа, где оно?



Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 12:22
· Личное сообщение · #5

asd

; инициализируем ключ криптовки

mov d_w_p [randseed], crypt_code
mov d_w_p [randseed+4], crypt_code_2

для рандомов сюда обычно дату и время пихают а у нас там ключ.

-----
power and the money money and the power




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 20 февраля 2006 12:32
· Личное сообщение · #6

doctor Ice
Эмулятору глубоко наплевать, как ты генерируешь ключь:как ты или
OepJumpEncryptLoop:
LODSB
ROR AL, 2
ADD AL, BL
XOR AL, OEP_JUMP_ENCRYPT_NUM
STOSB
INC EBX
LOOP OepJumpEncryptLoop
ИМХО.



Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 13:01
· Личное сообщение · #7

asd
не брат тут не про то =) тут про защиту от брут форца а про защиту от эмулятора мы обсуждали в топике "криптование вируса" если сочетать то что я запостилтам и тут то выйдет как раз оно =)

-----
power and the money money and the power




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 13:29
· Личное сообщение · #8

кароче при шифрованин нужно раздувать ключ криптовки до рамера данных которые мы шифруем причем раздувать нуна необратимо т.е. так чтобы невозможно было вычислить предыдущие и последующие байты от того который нам предположительно известен тока так мона исключить фсякй брут форсенг.

-----
power and the money money and the power




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 20 февраля 2006 13:40 · Поправил: Smon
· Личное сообщение · #9

doctor Ice пишет:
кароче при шифрованин нужно раздувать ключ криптовки до рамера данных которые мы шифруем

Бред
Используем любой стойкий криптоалго, например Rijndael и хэш типа MD5 в качестве ключа, который соответстно генерируем от нашего ключа. Получается довольно стойко. В крайнем случае - какой нить Tea, который элементарно реализуется на асме, и для него 16 байтный ключ рандомом - > брутфорсить упаришься, поверь мне

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 13:45 · Поправил: doctor Ice
· Личное сообщение · #10

Smon

да ну?! прикинь покриптованы секции кода и данных а между ними align из ноликов тоже под крипт попал =) хехехехе фтопку твой хеш!

-----
power and the money money and the power




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 20 февраля 2006 14:14
· Личное сообщение · #11

doctor Ice
не брат тут не про то =) тут про защиту от брут форца а про защиту от эмулятора
Брут перебирает пароли. Это надо когда пароль неизвестен. А в вирусе хочешь ты или нет, но ключ доступен и гдето лежит в открытом виде. Иначе как ты собрался сам тело расшифровывать. Ктож в такой ситуации брутить будет?
Ты видел исходники сканеров\эмуляторов? Я нет, так что все мои доводы основаны на моём здравом\нездравом смысле, так что всё это ИМХО конечно.



Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 14:28
· Личное сообщение · #12

asd
ну я же говорил про то как прятать в другом топе =) а тут дело в другом. ну вот например мы накатали прогу для шифрования обычнй криптер. ввели пасс в поле для пасса и наравили его на свою секретную папку и криптер все там покриптовал. а теперь представим что какойто умник решил нас рассекретить. он берет из папки экзешник и ишет в нем повторяющуюся сигнатуру! и он ее найдет и будет это похоже вот на что

...мусор, X1,X2..Хn,X1,X2... и будет это гдето между секциями на алигне =) если кто не понял то n это длина ключа =)

поэтому ключ должен ыть раздут до размера криптуемых данных и раздуватся он должен не самоподобно.

-----
power and the money money and the power




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 20 февраля 2006 15:24 · Поправил: doctor Ice
· Личное сообщение · #13

asd
спешал фор ю =) ты можеш вообще не сохранять ключ распаковки... я бы предложил брут форсить самого себя в определенном диапазоне так чтобы брут форсинг занимал приблизительно от 1й до 2х секунд (диапазон прячь как в топе шифрование виря) илгоритм шифровки юзай из этого топа или напиши свой подобный (чтоб аверы не брутили пару двордов и брутили все тело и как минимум 1-2 сек).

да вот еще обязательно прочитай омбу про свич автоматы это для того чтобы в твоем раскриптовщике никто не поставил бряк на джамп после лопа =)

-----
power and the money money and the power




Ранг: 172.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 21 февраля 2006 00:36
· Личное сообщение · #14

doctor Ice, ну ты прям Шнаера цитируешь говоря про "расдувание" клю4а до размеров открытого текста, только одно но - это он описывал для идеально стойкого бло4ного шифра, коих в природе нет

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 21 февраля 2006 09:02
· Личное сообщение · #15

Шнаера не читал =( но все же то чтопредложил я гораздо лучше чем рор ксор или ксор адд =)

-----
power and the money money and the power



 eXeL@B —› Программирование —› как на asm шифровать процедуры?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати