23 способа получить в регистре единицу.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by 0x0c0de, 3 Oct 2007.

  1. Talisman

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

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    обфусикатор для асма в студию!
     
  2. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    По идее, математика не ограничивает получение единички в регистре 23 способами (или скока там уже). Способов десятки, сотни и тыщи :) Другое дело их реализация на асме =) А вообще, мой любимый способ, хоть он и заезженный до дыр
    Code:
    xorl %eax,%eax
    incb %al
    
     
  3. GlOFF

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

    Joined:
    8 May 2006
    Messages:
    689
    Likes Received:
    484
    Reputations:
    4
    23 способа ;)
    Нужно взять на вооружение. Для полиморфных технологий )))
     
  4. gevara

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

    Joined:
    29 Nov 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    5
    Никто не задумывался что таких способов в принципе бесконечно много? чем вам не нравится, скажем:


    xor edx,edx
    lea eax,[edx+1]

    xor eax,eax
    lea eax,[eax-1]
    neg eax

    и ещё 10 миллионов способов используя всевозможные решистры, адреса памяти... Если на то пошло то и SEH можно раскрутить, зная что второе DWORD последней структуры -1 и взять от него neg.
     
    1 person likes this.
  5. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Жёсткий способ под дос:
    Code:
    .MODEL TINY
    .CODE
    org 0h
    start:
      push cs
      pop ds
      mov al, 10b
      out 21h, al
      shr ax; ax=1, клава заблокирована
      ...
      mov ax, 4C00h
      int 21h
    end start