Можно ли изменить EXE-файл, чтобы он запускался от имени администратора? - PullRequest
0 голосов
/ 23 января 2020

Мне нужно изменить EXE-файл, чтобы у моего клиента больше не было доступа к исходному коду, он хочет, чтобы EXE-файл автоматически запускался от имени администратора при запуске (или, по крайней мере, автоматически запрашивал его запуск).

Is Можно ли изменить скомпилированный EXE-файл так, чтобы он требовал / просил пользователя запускаться от имени администратора перед запуском? Может быть, через шестнадцатеричное редактирование или ollydbg? Есть ли инструкции о том, как это сделать?

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Вам не нужен OllyDbg для этого. Приложение может определить в манифесте приложения, требуются ли ему повышенные привилегии.

Вы можете отредактировать этот манифест (или добавить один, если его нет) и отредактировать / добавить параметр, управляющий необходимыми привилегиями.

  • Получите Resource Hacker и откройте в нем файл EXE.
  • Проверьте, существует ли уже ресурс "Манифест".
    • Если да:
      • Проверьте, содержит ли XML ключ assembly> trustInfo> security> requestedPrivileges> requestedExecutionLevel.
        • Если да, измените его атрибут level на requireAdministrator.
        • Если нет, добавьте его в соответствии с приведенным ниже сценарием . Убедитесь, что вы не нарушаете синтаксис XML.
    • Если нет:
      • Нажмите «Действие» -> «Добавить, используя шаблон скрипта». ".
      • Выберите тип" MANIFEST "и нажмите" Добавить ресурс ".
      • Замените содержимое на , скрипт ниже .
  • Нажмите большую зеленую кнопку воспроизведения на панели инструментов («Сценарий компиляции»).
  • Сохраните изменения.

" Сценарий ниже"ссылается на это:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Вот пример того, как это может выглядеть в конце:

Example

Однако, как уже отмечалось другими, если вам нужно это только для одного пользователя, будет проще установить «Запуск от имени администратора» в диалоговом окне свойств файла в разделе «Совместимость» вместо изменения сам файл.

0 голосов
/ 23 января 2020

Здесь есть простой обходной путь, который может быть полезен.

  1. Щелкните правой кнопкой мыши приложение.
  2. Откройте свойства.
  3. Go на вкладке совместимости.
  4. В настройках установите флажок «Запустить». Эта программа как администратор ".

Это никак не изменяет файл приложения, он просто помечает этот файл, чтобы Windows теперь знал, как открыть его как администратор. Этот же процесс необходимо будет повторить для каждой отдельной учетной записи пользователя и / или P C, который использует программу.

...