Получение PEB под x64

Discussion in 'WASM.X64' started by slesh, Mar 1, 2012.

  1. slesh

    slesh New Member

    Blog Posts:
    0
    Joined:
    Feb 6, 2009
    Messages:
    214
    В общем задача проста: получить адрес PEB своей (x64) программы. Язык С. Компилятор VS2010.
    Если для x32 можно было бы использовать mov eax, fs:[0x30], то для x64 использовать ассемблер запрещено. Как быть?
     
  2. iZzz32

    iZzz32 Sergey Sfeli

    Blog Posts:
    0
    Joined:
    Sep 3, 2006
    Messages:
    355
  3. Mika0x65

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    Можно написать в отдельном .asm файле, или воспользоваться этим семейством ф-ий. В 64битной среде используется не fs, а gs.
     
  4. K10

    K10 New Member

    Blog Posts:
    0
    Joined:
    Oct 3, 2008
    Messages:
    1,590
    Почему запретили на x64 ассемблер?
     
  5. slesh

    slesh New Member

    Blog Posts:
    0
    Joined:
    Feb 6, 2009
    Messages:
    214
    K10
    Я имел в виду ассемблерные вставки запрещены в си коде при компиляции в x64 (из VS)
     
  6. sender0

    sender0 New Member

    Blog Posts:
    0
    Joined:
    Jul 2, 2011
    Messages:
    25
    Code (Text):
    1. #include "winternl.h"
    2.  
    3. static
    4. PEB*
    5. NtGetPeb()
    6. {
    7. #ifdef WIN64
    8.     return  (PEB*)__readgsqword(0x60);
    9. #else
    10.     return  (PEB*)__readfsdword(0x30);
    11. #endif
    12. }
     
  7. Malfoy

    Malfoy New Member

    Blog Posts:
    0
    Joined:
    Jan 2, 2012
    Messages:
    698
    sender0
    Зачем разрядность указывать. Если !Gs, то сегмент адресуется Fs.
     
  8. sn0w

    sn0w Active Member

    Blog Posts:
    0
    Joined:
    Feb 27, 2010
    Messages:
    958
    :lol: ассемблер там не запретили, запретили inline assembly. коли душа желает - добавляешь в проект масм файл и сопутствующий build customization для масма. а вот почему они это замутили - может изза бекинга? а может дабы ограничить неконтролируемую модификацию кода хз. но это давно уже. относительно.