防止用DeDe軟體反編譯delphi程式

來源:互聯網
上載者:User

防止用DeDe軟體反編譯delphi程式
這裡有一篇防止用DeDe軟體反編譯delphi程式~
用『』裡的是我的注釋,其餘的是原創作~

Program Project1;

Uses
  Forms,
  windows,
  sysutils,
  Unit1 In 'Unit1.pas' {Form1},
  Unit2 In 'Unit2.pas' {Form2};

Function RegisterServiceProcess(dwProcessId, dwType: dword): Integer; Stdcall;
  External 'kernel32.dll'
{$R *.RES}
Var
  HMUTEX: HWND;
  RET: INTEGER;
  hCurrentWindow: HWnd; //反編譯要的
  szText: Array[0..254] Of char; //反編譯要的
Begin
  Application.Initialize;
  APPLICATION.TITLE := 'delphi葵花寶典 設計:張國鵬';
  RegisterServiceProcess(GetCurrentProcessID, 1); //讓程式在Ctl+Alt+Del中消失.

    『我們可以看到作者用RegisterServiceProcess把程式註冊成了WINDOWS服務程式~』
    『但大家都知道這個函數包含在kernel32裡,而且只在98/ME中管用~』
    『所以並不要把這項作為反編譯的關鍵,可以說可有可無~』

  //防止反編譯開始
  hCurrentWindow := GetWindow(APPLICATION.Handle, GW_HWNDFIRST);

    『由上面知道作者想知道自己的程式視窗是不是最頂級的視窗』

  While hCurrentWindow <> 0 Do
  Begin
    If GetWindowText(hCurrentWindow, @szText, 255) > 0 Then
      If pos('DeDe', StrPas(@szText)) <> 0 Then

     『如果不是,則擷取現在頂機表單的標題,在做判斷是不是"DeDe"』

      Begin
        APPLICATION.MESSAGEBOX('想反編譯我?沒那麼容易!',
          '哈哈......你這傢伙!', mb_ok);
        //closewindow(hCurrentWindow);//使該程式視窗最小化
        enablewindow(hCurrentWindow, false);
        //使該程式的視窗不能被啟用 如果能擷取該程式的線程ID號,則可以使該程式又不能使用,又不能關閉,酷吧?

                『以上這兩句是對DEDE的處理~』
                『closewindow:為把制定的視窗最小化,但視窗不會從記憶體中清除~』
                『enablewindow:指定的視窗裡允許/禁止所滑鼠和鍵盤的輸入,false肯定是不能了~』

        halt;
      End;
    hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);
  End;
  //防止反編譯結束
  //防止程式的二次運行
  HMUTEX := CREATEMUTEX(Nil, FALSE, 'delphi葵花寶典 設計:張國鵬');
  RET := GETLASTERROR;
  If RET <> ERROR_ALREADY_EXISTS Then
  Begin
    Application.CreateForm(TForm1, Form1);
    // Application.CreateForm(TForm2, Form2);
    Application.Run;
  End
  Else
    APPLICATION.MESSAGEBOX('程式已經運行!', '提示', mb_ok);
  releasemutex(hmutex);

End.

『談談我的看法,這種方法也許是一種簡單的防止反編譯的做法,但由於過於簡單了,』
『到現在就不是很有用了,也許可以對付一些初學的朋友,我們可以看到尋找視窗的名』
『字為"DEDE"也就是說它只是一個字串,在程式中沒有很重要的地位,也就是不耽誤』
『程式的運行,我們可以藉助一些軟體把程式中所有的"DEDE"改為別的字元,呵呵,這』
『程式可是沒有邏輯思維的,改後可就對"DEDE"沒有辦法了^_^~~~~~~』

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.