軟體保護之殺死Crack相關程序

2021-08-21 23:09:37 字數 2631 閱讀 6230

軟體保護之殺死crack相關程序

屠恩海(sunhai

開發工具:microsoft visual studio .net 2003

作業系統:windows xp

程式開發三個永恆的主題是:

一.程式的功能及創意

二.程式的推廣

三.程式的保護

理論上說,不存在不能被crack的程式。所謂的防crack,只是增加crack的難度而已。

用process類管理程序

process 類提供對本地和遠端程序的訪問並使您能夠啟動和停止本地系統程序。

process元件提供對正在計算機上執行的程序的訪問。用最簡短的話來說,程序就是當前執行的應用程式。執行緒是作業系統向其分配處理器時間的基本單位。執行緒可執行程序的任何一部分**,包括當前由另一線程執行的部分。

對於啟動、停止、控制和監視應用程式等任務,process元件是很有用的工具。使用process元件,可以獲取當前執行的程序的列表,或者啟動新的程序。process元件用於訪問系統程序。初始化process元件後,可使用該元件來獲取有關當前執行的程序的資訊。此類資訊包括執行緒集、載入的模組(.dll 和 .exe 檔案)和效能資訊(如程序當前使用的記憶體量)。

如果在系統中用引號宣告了乙個路徑變數,則在啟動該位置中的任何程序時,必須完全限定該路徑。否則,系統將找不到該路徑。例如,如果 c:\mypath 不在您的路徑中,而您使用引號新增它( path = %path%;"c:\mypath" ),則在啟動 c:\mypath 中的任何程序時,您必須完全限定它們。

程序元件同時獲取有關一組屬性的資訊。process元件獲取有關任一組的乙個成員的資訊後,它將快取該組中其他屬性的值,並且在您呼叫 refresh 方法之前,不獲取有關該組中其他成員的新資訊。因此,不保證屬性值比對refresh方法的最後一次呼叫更新。組細分與作業系統有關。

系統程序在系統上由其程序識別符號唯一標識。與許多 windows 資源一樣,程序也由其控制代碼標識,而控制代碼在計算機上可能不唯一。控制代碼是表示資源識別符號的一般術語。即使程序已退出,作業系統仍保持程序控制代碼,該控制代碼通過process元件的 handle 屬性訪問。因此,可以獲取程序的管理資訊,如 exitcode (通常,或者為零表示成功,或者為非零錯誤**)和 exittime 。控制代碼是非常有價值的資源,所以控制代碼洩漏比記憶體洩漏危害更大。                   

自動停止crack有關程序

我們可用process 類檢測程序,發現crack有關程序,即作出相應措施。比如停止crack相關程序,退出軟體,給出警告,把正式版變為試用版……(你可不要告訴我你會呼叫format d:)。

可通過兩種方法利用process元件停止程序。使用哪種方法取決於所停止的程序的型別:

只有真正的crack高手才真正懂得如何防crack。我們首先要知道常見的crack相關軟體及其程序名,特別是.net下的crack相關軟體。我並不懂crack,這裡只列出我所掌握的一些情況,希望大家一起來補充完善。

這裡主要用到 process.mainwindowtitle 屬性獲取程序的主視窗標題。

[visual basic]public readonly property mainwindowtitle asstring   

僅當程序有圖形介面時,該程序才具有與其關聯的主視窗。如果關聯程序沒有主視窗(因而 mainwindowhandle 為零),則 mainwindowtitle 為空字串 ("")。如果剛啟動了乙個程序,並且想使用其主視窗標題,則請考慮使用 waitforinputidle 方法讓程序完成啟動,從而確保建立了主視窗控制代碼。否則,系統將引發異常。

windows 98 平台說明:如果在啟動程序時 processstartinfo.useshellexecute 設定為true,則此屬性在此平台上不可用。

private sub close()

dim pprocess() as process 

pprocess = process.getprocesses() '獲取當前所有程序

dim all as integer

dim myarray() as string = _

for all = 0 to pprocess.length() - 1

for kill as integer = 0 to myarray.length - 1

if instr(pprocess(all).mainwindowtitle, myarray(kill).tostring) then

pprocess(all).kill()       '殺死crack相關程序

end                '退出軟體。這裡你還可以加上其他措施

'msgbox(pprocess(all).mainwindowtitle)

end if

next

next

linux 命令 之 ps 檢視相關程序

ps命令用於報告當前系統的程序狀態。可以搭配kill指令隨時中斷 刪除不必要的程式。ps命令是最基本同時也是非常強大的程序檢視命令,使用該命令可以確定有哪些程序正在執行和執行的狀態 程序是否結束 程序有沒有僵死 哪些程序占用了過多的資源等等,總之大部分資訊都是可以通過執行該命令得到的。命令 檢視帶有...

理解軟體保護技術之Key File保護

key file 註冊檔案 是一種利用檔案來註冊軟體的保護方式。key file一般是乙個小檔案,可以是純文字檔案,也可以是包含不可顯示字元的二進位制檔案,其內容是一些加密過或未加密的資料,其中可能有使用者名稱 註冊碼等資訊。檔案格式則由軟體作者自己定義。試用版軟體沒有註冊檔案,當使用者向作者付費註...

軟體測試之網路協議相關

網路協議,如tcp udp的區別?1 tcp面向連線 如打 要先撥號建立連線 udp是無連線的,即傳送資料之前不需要建立連線 2 tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達 udp盡最大努力交付,即不保證可靠交付 3 tcp面向位元組流,實際上是tc...