win7中的Uac與開機自動啟動(好幾種辦法,特別是用不帶UAC的程序啟動UAC程序是一個簡單的好辦法,寫驅動自啟動更是了不得)


在另一篇文章中已經介紹了給Exe加上Uac的方法,在使用的過程中我們會發現,如果把帶Uac的Exe寫入注冊表的Run中,是無法實現開機自動啟動的,原因就是帶Uac的exe需要申請管理員權限,以便運行執行程序,而在開機時無法申請到管理員權限,Exe將無法正常啟動。那么如何使帶Uac的Exe開機自動啟動呢。
既然帶Uac的Exe開機無法申請到管理員權限,那么可以新建一個不帶Uac的小程序,在其中實現申請管理員權限啟動exe不就可以解決問題了嗎?實現方法如下:

unit DyjStartMainForm;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI;
const
  WM_STARTCLOSE = WM_USER + 100;
type
  TFrmDyjStart = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  protected
    procedure WMStartClose(var Msg: TMessage); message WM_STARTCLOSE;
  public
    { Public declarations }
  end;
var
  FrmDyjStart: TFrmDyjStart;
implementation
{$R *.dfm}
procedure TFrmDyjStart.FormCreate(Sender: TObject);
begin
  PostMessage(Self.Handle, WM_STARTCLOSE, 0, 0);
end;
procedure TFrmDyjStart.WMStartClose(var Msg: TMessage);
var
  _vPathExe : string;
begin
  _vPathExe := ExtractFilePath(Application.ExeName) + 'Dyj2.exe';
  ShellExecute(0, 'runas', PChar(_vPathExe), nil, nil, SW_SHOWNORMAL);
  Application.Terminate;
end;
end.

參考:http://blog.chinaunix.net/uid-20718335-id-364397.html

--------------------------------------------

還可以使用services的方式來實現:
把程序的功能分成兩部分,界面和不需要管理員權限的功能部分寫成一個程序,實現自啟動;需要管理員權限的部分寫成一個服務,安裝后隨系統自啟動。兩者用進程外COM的方式進行訊。

--------------------------------------------

在網上找資料,發現有幾種方法:

通過系統API ShellExecuteExW函數提權,向其參數lpVerb傳入一個“runas”命令(注:該命令是微軟的一個隱藏參數),可以實現開機啟動,並出現UAC提示框,但軟件起來后,一些功能無法正常使用(實測:上面的例子就是彈出一個UAC對話框,需要點擊后方可運行,運行后沒發現有什么功能限制);
通過微軟自己發布的第三方軟件Application Compatibility Toolkit添加UAC白名單方式。同樣可以實現開機啟動,與1方法不同沒有UAC提示框而直接啟動,但問題如1一樣,一些功能無法正常使用;
通過win7系統自己的“系統工具”中的“計划任務”來手動添加。此方法可以實現程序開機啟動,沒有提示框,程序所有功能都能正常實現。

--------------------------------------------

對於Win7開機自啟動,就是你們說的方法。我想提醒一點,惡意軟件會破壞我們的“監控軟件”,使其不能開機自啟動。
解決方法是把我們的驅動設置為boot類型。boot類型的驅動是啟動最早的驅動程序,在系統引導時就必須加載完畢。這樣我們的驅動先取得控制權,隨后HOOK一些關鍵函數(比如驅動加載、進程結束等函數),惡意軟件無法破壞。一些殺掉軟件也是這么做的,比如江民、瑞星、卡巴等。

參考:http://www.dewen.io/q/710/win7%E4%B8%8B%E8%87%AA%E5%90%AF%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%BD%95%E7%BB%95%E8%BF%87UAC%EF%BC%9F


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM