Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.156.140] |
|
Сообщ.
#1
,
|
|
|
от куда взять эту хрень?
сишный ранд оставляет желать лучшего, в плане рассеивания. допустим, мне нужен 1К ключ - где его взять? Кто как генерит? Добавлено сишный ранд глупо считать рандомом... это тики а есть ещё дребезги железа... вот это руль. вот код, реально рандомный под виндой.. подразумевается получить ключ.. размер указываем в LENGTH ; MSDN Random Example: ; https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85).aspx ; http://sourceforge.net/u/earnie/winapi/winapi/ci/Initial/tree/include/wincrypt.h format PE gui include 'win32ax.inc' ;----------------------- .data ascii db '0123456789ABCDEF' ; шаблон перевода в HEX (для вывода рандома на экран) buffer rb 2048 ; буфер для HEX-ASCII строки LENGTH = 8 ; длинна ключа PROV_RSA_FULL = 1 ; смотри 'wincrypt.h' CRYPT_VERIFYCONTEXT = 0xF0000000 ; ..^^^ hcrypt dd 0 ; хэндл ключа в Win32Crypt базе .code start: ; набор функций 'WinCrypto' из Advapi32.dll invoke CryptAcquireContext, hcrypt, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT invoke CryptGenRandom, [hcrypt], LENGTH, buffer invoke CryptReleaseContext, [hcrypt], 0 ; вспомогательная fn. для вывода ключа на экран mov edi, LENGTH * 2 ; edi is index of hex string mov esi, LENGTH ; esi is index of random generated byte mov [buffer + edi], 0 ; terminate our hex string mov eax, 0 ; eax is index of ascii character bin2hex: mov al, [buffer + esi - 1] ; copy random byte to AL shr al, 4 ; get last 4 bits of the byte mov cl, [ascii + eax] ; copy corresponding ascii character to its place mov [buffer + edi - 1], cl ; dec edi mov al, [buffer + esi - 1] shl al, 4 ; get first 4 bits of the byte shr al, 4 ; mov cl, [ascii + eax] mov [buffer + edi - 1], cl ; copy ascii character to its place dec edi dec esi jnz bin2hex ; repeat until index of random generated byte is ZERO invoke MessageBox, 0, buffer, 'Random Hex', MB_OK jmp start finish: invoke ExitProcess, 0 .end start Добавлено билл говорит, что работает под 32, просьба протестить.. Добавлено мне нужен был RSA - я его получил под ХР а как дела обстоят в 7 и 10 , просьба протестить Добавлено в RSA нужен 1K-байтный ключ, который всеобщая машина ломала 4-года, и так и не сломала. значит нам хватает 512-битный ключ, и даже размером дворд ключь затразаются ломать. |
Сообщ.
#2
,
|
|
|
Ваиранты RSA на асме кто-нить реализовал?
От вирусописателей шарахаемся, как от прокажённых.. Так у них и надо учиться всему/асмовскому - вот где не лентяи, не в пример нам... Хочешь и в реал зайдёт с юзера, хочешь порты поюзает - молодчики.. АСМ нафик не нужен, если ты не знаком с хакерством. Сишка решает траблы юзера, но не железа.. Нужен реал? так сбрось умышленно систему в даун и возьми управление. SEH здесь спецом для этого. Система не контролирует кол-во обработчиков в стеке, куда можно заюзать свой код. Билли не может отказаться от этого, т.к. сам его юзает. А если ему позволено, то почему нам нет? Они уже запарились бороться с этой фигнёй... даже в проц запихали бит VX... но что это меняет? Код как исполнялся в стеке, так и исполняется (проверь на исполнение). Снять атрибуты с региона памяти - не проблема, в результате исполняй секцию данных. До сих пор нет этому противодействия, а наша задача найти решение. Например, если компилятору похрен, то значит мы должны реализовать это вручную - снабдить свою функцию защитой. Есть вход и выход в функцию, с которой можно снять сумму. Кто шифрует свои данные, тот поймёт. |
Сообщ.
#3
,
|
|
|
Уж 6 лет как анонсировали RdRand, а всё ещё у многих нет её. Печаль, несущая малоинтересные выдумки-извращения...
|
Сообщ.
#4
,
|
|
|
Славян, не сравнивай ранд и крюпт, это далеко разные вещи
|
Сообщ.
#5
,
|
|
|
Цитата core-i7 @ А кто тебе сказал, что это вообще была проблема? Проблема – сделать это ненамерено. Проблема – сделать это другому приложению. Намерено и себе – та за ради бога, подставляй и стреляй, Билли не против. Снять атрибуты с региона памяти - не проблема, в результате исполняй секцию данных. До сих пор нет этому противодействия, а наша задача найти решение. |
Сообщ.
#6
,
|
|
|
ранд, это юзерский вариант рандома, а крюпт может генерить ключи какой-угодно длинны
Добавлено Qraizer, не понял, что надо ретушировать. Если вы сделаете за меня - не обижусь |
Сообщ.
#7
,
|
|
|
Qraizer, как делать чужому - это отдельная тема, вы сами прописали в правилах запрет на вторжение. Я говорю про свой процесс и его модификацию. Стараюсь придерживать правил..
|
Сообщ.
#8
,
|
|
|
Запрет на создание вредоносного кода – да. Но запрета на обсуждение полезных технологий нет.
|
Сообщ.
#9
,
|
|
|
Qraizer, ..а вообще, я хотел поделиться RSA шифрованием, что реализовал у себя
как модер, что можете посоветовать по теме? |
Сообщ.
#10
,
|
|
|
Вообще, это довольно скользкая тема, соглашусь. Но если не мы будем это тут обсуждать, то обсудит кто-то другой где-то ещё. Главное, чтоб не было злого умысла. К примеру, твой описанный вариант взломать систему просто не пройдёт, если до этого машина была ещё не скомпрометирована. И да, с правами админа ты можешь сделать очень многое, намерено особенно. Но а где не так? В *никах такой же бардак, только от рута. (Бардак, вообще-то, даже жёстче, админ всё-таки не царь и бог, как рут.)
Добавлено Цитата core-i7 @ Как модер – ничего, это не та сфера ответственности. Как программер – смотря, что ты хочешь в итоге. Если готовое решение, то их и так пруд пруди, максимум перевести с ЯВУ на ассемблер. Если ты конкретно о Cript API, то какая разница, на каком языке его дёргать? Реализация всё равно ОСовая. Если твой код работает, и тебя это устраивает... даже не знаю, что ответить, кроме "молодец". как модер, что можете посоветовать по теме? Добавлено В принципе могу, конечно, послать в Плюсы, конкретно в <random>. Но там очень уж всё ЯВУшно. И не факт, что Crypt API хуже. |
Сообщ.
#11
,
|
|
|
Qraizer, в ваших словах просматривается тонкая грань между - делай и нет.
яб не садился на шпагат, а сказал-бы в лоб. дайте мне ссыль на реализацию RSA на асме - буду благодарен |
Сообщ.
#12
,
|
|
|
Т.е. ты предлагаешь мне что-то типа этого перевести на ассемблер место тебя? Я не буду этого делать. Нарыть нечто похожее проблемой быть не должно, разве что под конкретный процессор. Ты б хоть определился для начала, что тебе нужно. А то начал с RAND, закончил RSA. Это как бы слегка разные вещи.
|
Сообщ.
#13
,
|
|
|
Цитата Qraizer @ Это как бы слегка разные вещи. в смысле "разные вещи"? так рандомные ключи p/d/m генерить-же нужно, по сути для этого и искался мною вариант 1024-битный RAND. Сишный вариант не подходит тем, что генерит только 64-битный ключ, а нужно больше Добавлено ну и ладно.. проехали.. |
Сообщ.
#14
,
|
|
|
Цитата core-i7 @ Выдаёт MB с рендомами.билл говорит, что работает под 32, просьба протестить.. Цитата core-i7 @ А что мешает несколько вызовов подряд сделать?ранд, это юзерский вариант рандома, а крюпт может генерить ключи какой-угодно длинны На одном форуме один товарищ (Ol44) вот такой код выдал, говорит, что параметры хорошие. Даже прогу делал для теста рендомных кодов по многим критериям. rdtsc ;считать счетчик в edx:eax add esi,edx ;esi=esi+edx mul esi ;edx:eax=eax*esi shrd eax,edx,16 ;eax=середина edx:eax xor esi,eax ;esi=esi исключающее или eax |