Windows 7 + UAC + IDA Pro (OllyDbg). Запуск процесса с привилегиями.

Тема в разделе "WASM.RESEARCH", создана пользователем harm, 11 май 2011.

  1. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    Здравствуйте. Такая проблема: есть приложение, которое требует привилегий администратора для работы. При обычном запуске exe файла выдается запрос UAC на повышение привилегий. Но при запуске из IDA Pro (F9 — Start process) выдается сообщение о невозможности запуска процесса: "Failed to launch ...*.exe: Запрошенная операция требует повышения." OllyDbg выдает сообщение: "Unable to start file '...*.exe'. Судя по всему, из-за невозможности вывести запрос UAC. Сам отладчик запущен от администраторской учетной записи.

    Возможно ли принудительно запустить процесс в отладчике с повышенными привилегиями без отключения UAC или использования Attach to process (необходимо проследить в отладчике инициализацию процесса)?
     
  2. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    нельзя. Иначе у отладчика не будет нужных прав на хэндлер процесса.
     
  3. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    Какой выход? Отключение UAC или запуск под XP/виртуальной машиной?
     
  4. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    harm
    Если отладчик запущен с правами администратора, то его дочерние процессы, в том числе и отлаживаемые, также будут иметь права администратора. Поэтому описаной проблемы не должно возникать.
     
  5. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    l_inc

    Но она возникает почему-то, сообщение об ошибке ясно дает понять причину.
     
  6. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    запусти отладчик "As Administrator" и не будет этого сообщения. Я то думал, что тебе надо из под неэлевированного отладчика запускать.
     
  7. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    izl3sa

    Он и так запущен от администратора, я в самом начале это указал.
     
  8. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    есть разница между обычным и елевированным токеном админа. У вас обычный.
     
  9. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    izl3sa
    Я же ясно написал, отладчик запущен "As Administrator", с элевацией. Но запуск процесса из него почему-то происходит без элевации.
     
  10. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    Решил проблему правкой реестра и созданием в папке с exe манифеста следующего содержания:

    Код (Text):
    1. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
    2. "PreferExternalManifest"=dword:00000001
    Код (Text):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    3.   <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="OptionalApplicationName" type="win32"/>
    4.   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    5.     <security>
    6.       <requestedPrivileges>
    7.         <requestedExecutionLevel level="asInvoker" />
    8.       </requestedPrivileges>
    9.     </security>
    10.   </trustInfo>
    11. </assembly>
    То есть принудительно указывается запуск с тем же токеном, который имеет запускающий процесс. Видимо, по какой-то причине проискодил запуск от той же учетной записи, но без элевации.

    UPD: причина: в exe файле есть встроенный манифест, в котором прописана строка:

    Код (Text):
    1. <requestedExecutionLevel level="requireAdministrator" uiAccess="true"></requestedExecutionLevel>
     
  11. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    очень странно, на моей машине все работает в этой же конфигурации. =\ Может зависит от уровня уака?
     
  12. harm

    harm New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    7
    izl3sa
    Уровень UAC дефолтный. Зависит от того, есть ли манифест в exe файле, и какой уровень запуска в нём задан.
     
  13. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    958
    свойства ехе - совместимость - галка от админа, или тоже самое в ярлыке к нему(свойства-дополнительно).

    еще в secpol можно отрегулировать, читай мсдн