防止用DeDe軟體反編譯delphi程序 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
防止用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中消失.
//防止反編譯開始
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
Begin
APPLICATION.MESSAGEBOX('想反編譯我?沒那麼容易!',
'哈哈......你這家伙!', mb_ok);
//closewindow(hCurrentWindow);//使該程序視窗最小化
enablewindow(hCurrentWindow, false);
//使該程序的視窗不能被激活 如果能獲取該程序的線程ID號,則可以使該程序又不能使用,又不能關閉,酷吧?
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.
|
chengcti
一般會員 發表:0 回覆:3 積分:0 註冊:2002-08-21 發送簡訊給我 |
引言: 防止用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中消失. //防止反編譯開始 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 Begin APPLICATION.MESSAGEBOX('想反編譯我?沒那麼容易!', '哈哈......你這家伙!', mb_ok); //closewindow(hCurrentWindow);//使該程序視窗最小化 enablewindow(hCurrentWindow, false); //使該程序的視窗不能被激活 如果能獲取該程序的線程ID號,則可以使該程序又不能使用,又不能關閉,酷吧? 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 改一改一樣可以 decompiler 原因是這段文章只 check DeDe 是不是已經執行. 問題是我有辦法讓軟體找不到 DeDe 的 window handle 所以這個方法辦不到. 繼續想... 看還有啥辦法可以解決 不然 DeDe 可解 delphi & BCB |
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
SKYSTAR
中階會員 發表:76 回覆:198 積分:64 註冊:2002-06-10 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
**********************************************************************
抓出及更換exe或dll裡的resource~
可看資源匯出rc檔
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19181
**********************************************************************
pexsetup試用版(視窗除錯組譯軟體)
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19619
可看資源與引用dll **********************************************************************
Dependency Walker 2.1一般是看EXE調用哪些DLL http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21613 一般是看EXE調用哪些DLL,這可以使用VC 中的工具Dependency Walker,
它可以列出靜態鏈結的所有DLL。也可以從http://www.DependencyWalker.com
下載該工具。如果EXE中的DLL包括MSVBVM60.DLL,則是使用VB 6.0開發的,
如果包括MSVBVM50.DLL,則是使用VB 5.0開發的。如果調用了MFC42.DLL,
則是使用VC 5.0/6.0開發的。如果EXE中包括
“Portions Copyright (c) 1983,99 Borland”文字,
則是使用Delphi/C Builder編寫的。 **********************************************************************
language2000一般是看EXE調用哪些DLL
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21609 **********************************************************************
你所要的防dede反編譯delphi程序 的工具
http://toget.pchome.com.tw/intro/utility_file/utility_file_compression/2700.html ASPack 是一個很特殊的壓縮程式,與 WinZip 這一類我們常用的壓縮程式不同的是被它壓縮過後的檔案還是保持原貌,可以繼續正常使用並不會產生異狀,無疑的在對於您的作業系統效能提高上是有相當大的幫助的,不但可以減少空間的使用,更可以縮短程式啟動的時間。 ASPack 主要的設計是來壓縮作業系統中應用程式的相關檔案如 exe、dll、ocx 等等,而且是以 Win32 形式所產生出來的執行檔或者是動態連結檔,所以在這三個範圍以外的檔案是無法被壓縮的,你還是得用 WinZIP 之類的軟體去壓縮這些檔案才行。 當你使用過 ASPack 來壓縮你的應用程式執行檔時,可以很明顯的發現到它的壓縮效果,ASPack 可以為你的檔案壓縮比從 40%~70% 不等,所以當你從新啟動程式的時候您將可以發現到突然間變得更快了,原因就是你的應用程式執行檔變小了。 除了壓縮的功能之外,如果你是程式設計師,不想要讓辛苦開發出來的軟體被其他人所反組譯、破解修改的話,ASPack 也可以發揮出強大的防護功效,只要將你的應用程式執行檔經過 ASPack 壓縮之後,一般的駭客是無法輕易的加以破解的。 另外 ASPack 還有一個貼心的地方就是如果你壓縮過的執行檔若無法執行的話,別擔心 ASPack 會在你應用程式的同一個夾子中產生備份的檔案,這時只要將檔名還原即可,並不需要再重新安裝一次軟體。 ASPack 不僅操作簡易且功能強大,相信你一定可以用它來將你的作業系統大大的減肥一番,這樣子您就在也不會覺得您的 Windows 總是一副癡肥樣,氣喘噓噓的跑不動喔!!! 還滿好用的 哈哈
********************************************************************** 試看看 是否符合你的需求
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |