Трейнеры 32/64 бит. Различия?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Derec, 26 Jun 2011.

  1. R0nin

    R0nin Member

    Joined:
    11 Jul 2010
    Messages:
    261
    Likes Received:
    24
    Reputations:
    8
    Дело не том сколько битные/байтные переменные ты используешь в коде, а в том, что из них получается после компиляции.
     
  2. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Вот скажи, зачем ты в каждой 2ой теме тролиш? Хочешь отличится умом и сообразительностью, помоги ТСу или напиши статью про особенности программирования под х64, из своего опыта, если такой имеется.
     
  3. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,296
    Reputations:
    327
    ты че ему х64 бинарник на х86 платформу подогнал чтоли? :D

    1) обратно совместима только х64 с х86 а не наоборот
    2) операции с указателями, в х64 они соответственно 64 бита (все остальные типы - также как в х86)
    3) соглашения о вызовах - х64 в основном использует fastcall
    (первые 4 параметра через регистры rcx, rdx, r8, r9 - остальные если есть - в стеке) (ап и повальная lea соответсна везде)
    4) абсолютные смещения - плохое решение - лучше сканируй по паттерну.
    5) объявления препроцессора _WIN64 _AMD64_ etc
    6) максимальный юзермодный адрес - 0x7FF`FFFEFFFF минимальный - 0х10000(как вин32)
    8) kernel32, user32, ntdll находятся ниже приложения, остальные выше (не помню почему)
    7) page size x64(AMD64)==x86==4KB (IA64(itanium/itanium2) == 8KB)

    это минимум чего ты мог не учесть

    при сборке смотри чтоб были настроены препроцессор компилятор и компоновщик на х64 сборку и библиотеки
    (те с точностью до наоборот - на х86)

    кстати х64(который амд64 а не ia64) вроде тока 48 битами виртуальной адресации ограничен и 52мя физической + накладно делать 4хКБ каталоги страниц. что несомненно минус.
     
    #23 sn0w, 29 Jun 2011
    Last edited: 29 Jun 2011
    1 person likes this.
  4. Derec

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

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    sn0w , из твоих пунктов я понял только то, что ты опытный и компетентный в этом вопросе человек. К сожалению применить все что ты сказал не в силах, так как я ничего не понял :D Но спасибо за разъяснения.

    Кстати, а смешения по патернам сложно реализуемо? на С++ , например :rolleyes:
     
  5. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    _ttp://www.uc-forum.com/forum/c-and-c/58694-address-logger.html
    Каждый тручитмейкер должен это знать.
     
  6. Derec

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

    Joined:
    8 Nov 2007
    Messages:
    74
    Likes Received:
    4
    Reputations:
    0
    Спасибо за новую информацию. Правда для моего трейнера это не оправдано. Адреса все время можно узнать используя указатели, а не маску (патерн) :)