На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> RAND средстави асм
    от куда взять эту хрень?
    сишный ранд оставляет желать лучшего, в плане рассеивания.
    допустим, мне нужен 1К ключ - где его взять? Кто как генерит?

    Добавлено
    сишный ранд глупо считать рандомом... это тики
    а есть ещё дребезги железа... вот это руль.
    вот код, реально рандомный под виндой..
    подразумевается получить ключ.. размер указываем в LENGTH
    ;
    ExpandedWrap disabled
       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-битный ключ, и даже размером дворд ключь затразаются ломать.
      Ваиранты RSA на асме кто-нить реализовал?
      От вирусописателей шарахаемся, как от прокажённых..
      Так у них и надо учиться всему/асмовскому - вот где не лентяи, не в пример нам...
      Хочешь и в реал зайдёт с юзера, хочешь порты поюзает - молодчики..
      АСМ нафик не нужен, если ты не знаком с хакерством. Сишка решает траблы юзера, но не железа..

      Нужен реал? так сбрось умышленно систему в даун и возьми управление. SEH здесь спецом для этого. Система не контролирует кол-во обработчиков в стеке, куда можно заюзать свой код. Билли не может отказаться от этого, т.к. сам его юзает. А если ему позволено, то почему нам нет?

      Они уже запарились бороться с этой фигнёй... даже в проц запихали бит VX... но что это меняет? Код как исполнялся в стеке, так и исполняется (проверь на исполнение). Снять атрибуты с региона памяти - не проблема, в результате исполняй секцию данных. До сих пор нет этому противодействия, а наша задача найти решение.

      Например, если компилятору похрен, то значит мы должны реализовать это вручную - снабдить свою функцию защитой. Есть вход и выход в функцию, с которой можно снять сумму. Кто шифрует свои данные, тот поймёт.
      Сообщение отредактировано: Qraizer -
        Уж 6 лет как анонсировали RdRand, а всё ещё у многих нет её. Печаль, несущая малоинтересные выдумки-извращения... :yes-sad:
          Славян, не сравнивай ранд и крюпт, это далеко разные вещи
            Цитата core-i7 @
            Снять атрибуты с региона памяти - не проблема, в результате исполняй секцию данных. До сих пор нет этому противодействия, а наша задача найти решение.
            А кто тебе сказал, что это вообще была проблема? Проблема – сделать это ненамерено. Проблема – сделать это другому приложению. Намерено и себе – та за ради бога, подставляй и стреляй, Билли не против.
              ранд, это юзерский вариант рандома, а крюпт может генерить ключи какой-угодно длинны

              Добавлено
              Qraizer, не понял, что надо ретушировать. Если вы сделаете за меня - не обижусь
                Qraizer, как делать чужому - это отдельная тема, вы сами прописали в правилах запрет на вторжение. Я говорю про свой процесс и его модификацию. Стараюсь придерживать правил..
                  Запрет на создание вредоносного кода – да. Но запрета на обсуждение полезных технологий нет.
                    Qraizer, ..а вообще, я хотел поделиться RSA шифрованием, что реализовал у себя
                    как модер, что можете посоветовать по теме?
                      Вообще, это довольно скользкая тема, соглашусь. Но если не мы будем это тут обсуждать, то обсудит кто-то другой где-то ещё. Главное, чтоб не было злого умысла. К примеру, твой описанный вариант взломать систему просто не пройдёт, если до этого машина была ещё не скомпрометирована. И да, с правами админа ты можешь сделать очень многое, намерено особенно. Но а где не так? В *никах такой же бардак, только от рута. (Бардак, вообще-то, даже жёстче, админ всё-таки не царь и бог, как рут.)

                      Добавлено
                      Цитата core-i7 @
                      как модер, что можете посоветовать по теме?
                      Как модер – ничего, это не та сфера ответственности. Как программер – смотря, что ты хочешь в итоге. Если готовое решение, то их и так пруд пруди, максимум перевести с ЯВУ на ассемблер. Если ты конкретно о Cript API, то какая разница, на каком языке его дёргать? Реализация всё равно ОСовая. Если твой код работает, и тебя это устраивает... даже не знаю, что ответить, кроме "молодец".

                      Добавлено
                      В принципе могу, конечно, послать в Плюсы, конкретно в <random>. Но там очень уж всё ЯВУшно. И не факт, что Crypt API хуже.
                      Сообщение отредактировано: Qraizer -
                        Qraizer, в ваших словах просматривается тонкая грань между - делай и нет.
                        яб не садился на шпагат, а сказал-бы в лоб.
                        дайте мне ссыль на реализацию RSA на асме - буду благодарен
                          Т.е. ты предлагаешь мне что-то типа этого перевести на ассемблер место тебя? Я не буду этого делать. Нарыть нечто похожее проблемой быть не должно, разве что под конкретный процессор. Ты б хоть определился для начала, что тебе нужно. А то начал с RAND, закончил RSA. Это как бы слегка разные вещи.
                            Цитата Qraizer @
                            Это как бы слегка разные вещи.

                            в смысле "разные вещи"?
                            так рандомные ключи p/d/m генерить-же нужно, по сути для этого и искался мною вариант 1024-битный RAND. Сишный вариант не подходит тем, что генерит только 64-битный ключ, а нужно больше

                            Добавлено
                            ну и ладно.. проехали..
                            Сообщение отредактировано: core-i7 -
                              Цитата core-i7 @
                              билл говорит, что работает под 32, просьба протестить..
                              Выдаёт MB с рендомами.

                              Цитата core-i7 @
                              ранд, это юзерский вариант рандома, а крюпт может генерить ключи какой-угодно длинны
                              А что мешает несколько вызовов подряд сделать?

                              На одном форуме один товарищ (Ol44) вот такой код выдал, говорит, что параметры хорошие. Даже прогу делал для теста рендомных кодов по многим критериям.
                              ExpandedWrap disabled
                                        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
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0725 ]   [ 15 queries used ]   [ Generated: 28.03.24, 16:45 GMT ]