Пару вопросов по ассемблеру

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by hiphop191817, 31 May 2010.

  1. hiphop191817

    hiphop191817 New Member

    Joined:
    25 Apr 2009
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    1)Как сделать цикл на ассемблере, чтобы во время его выполнения(ну предположим секунд 20 он длится) компьютер не подвисал на эти 20 секунд(через sleep не предлагать)
    2)Подскажите алгоритм шифрования, не повышающий энтропию файлов и чтобы его не очень сложно было реализовать на ассемблере(в нём естесственно должен существовать ключ, а то будет получаться всё время одно и то же)
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,705
    Likes Received:
    1,225
    Reputations:
    455
    1) чтоже ты там делаеш такого что у тя комп подвисает? Оптимизируй код. Да и циклы 20 сек - это жестокие вычисления какието. Или просто тупо расставь по коду invoke Sleep, 1

    2) как вариант юзай таблицу замен. т.е. цифры от 0 до 255 перемешивай случайным образом. и потом из этой таблици бери данные. Тогда ключе - это таблица замены размером 256 байт. Реализуется очень просто, пару байт на асме
     
  3. hiphop191817

    hiphop191817 New Member

    Joined:
    25 Apr 2009
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    1)Просто обычный цикл ложу там в eax 0 , в ebx ffffffff и делаю цикл с шагом 1 и в нём там например mov ecx,eax и из за этого подвисает.
    Со слипом не вариант, его антивирусы пропускают.

    2)Можешь дать ссыль где поподробнее про это моно почитать, а то не совсем понятно
     
  4. hiphop191817

    hiphop191817 New Member

    Joined:
    25 Apr 2009
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    Щас порылся в инете и нашёл некий алгоритм tea со 128 битным ключём, он не повышает энтропию?
     
  5. ZagZag

    ZagZag Elder - Старейшина

    Joined:
    22 Feb 2007
    Messages:
    149
    Likes Received:
    22
    Reputations:
    1
    #5 ZagZag, 31 May 2010
    Last edited: 31 May 2010
  6. AlexTheC0d3r

    AlexTheC0d3r Elder - Старейшина

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
  7. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,596
    Likes Received:
    2,980
    Reputations:
    231
    strictly ASM.

    Trillian keygen, ('05 года, не знаю, есть ли ещё в архивах моих),
    прогонял keygen' в дебаггере до мозолей на пальцах,
    так и не смог реверс-инженирнуть код упаковки ((

    единственное, поставил брейк на вход в процедуру отображения в Вин,
    и снял "слепок" keygen-а в памяти с WinHex.

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

    hiphop191817 New Member

    Joined:
    25 Apr 2009
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    Насчёт 2) уже сделал код, правда у него ключ выходной получился не 256 а гораздо меньше, но суть его в том, что сказал слэш.

    А вот насчёт длинного цикла:неужели его нельзя сделать без функций вообще, а за счёт обычных ассемблерных команд, чтобы не подвисало? Если это действительно так, то я разочарован....
     
    #8 hiphop191817, 31 May 2010
    Last edited: 31 May 2010
  9. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    Потоки. На асме правда хз как. Но ведь WinAPI тоже на ассемблер раскладывается:)
     
  10. hiphop191817

    hiphop191817 New Member

    Joined:
    25 Apr 2009
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0

    Да понятное дело, что win api это ассемблерный код, но тут дело не в этом. А именно в том, что в самом коде будет виден именно вызов функции, а мне нужно, чтобы там никаких функций не было.
     
  11. ZagZag

    ZagZag Elder - Старейшина

    Joined:
    22 Feb 2007
    Messages:
    149
    Likes Received:
    22
    Reputations:
    1
    А какая разница? Это же API

    ТС, по поводу (1), глянь примеры в MASM32 или в FASM. (На каком кодишь?)
     
    #11 ZagZag, 1 Jun 2010
    Last edited: 1 Jun 2010
  12. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,705
    Likes Received:
    1,225
    Reputations:
    455
    Ну тут всё ясно, человек наверное чтото типа криптера пишет вот ему и нужен какойто алгоритм который считает долго и нудно (чтобы обойти эмуляторы по таймауту), но при этом не хочется паливно грузить проц.
     
  13. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,596
    Likes Received:
    2,980
    Reputations:
    231
    а в том пакере - ни одного вызова функций Win API.
    и не остановить процесс распаковки, и не поставить брейки.
    .code меняется при каждой АСМ операции.

    да, немного может и не по теме, но всё же.
    GCC-компайлер позволяет создавать программы без .lib, без обращения к стандартным lib MS Win.
     
    #13 altblitz, 1 Jun 2010
    Last edited: 1 Jun 2010
  14. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,005
    Likes Received:
    444
    Reputations:
    94
    чтобы не грузить можно попробовать выставлять на время не очень содержательного цикла idle-time-priority.

    //altblitz, по твоим постам в теме... ты под чем? :)
     
Loading...