天天看點

分享更新檔子產品(帶源碼)InlinePatch,Hook,記憶體DLL注入 都有哦

我一開始也是易語言入門的,因為子產品多,是以編寫小工具速度快,但是呢,成也蕭何,敗也蕭何,光用子產品會使你慢慢的失去思考能力,于是呢,很多人開始寫自己的子產品(無非就是網上找一些往裡面貼),這樣有一個好處,就是出了問題,比較容易定位那裡的問題,你用别人的子產品,出了問題很難找到哪裡出了問題,然後就隻能一味的更換子產品了。

因為易語言的調用API和資料類型不便(需要先聲明),我慢慢放棄了易語言,當然還有一個原因就是易語言寫的程式,出bug後,不容易定位問題,現在我常用的開發環境是MFC。

下面這個子產品是我使用易語言時寫更新檔最常用的一個子產品(當然很多也是抄的),一開始我覺得bug肯定會很多,放出去肯定又會坑很多人,後來我發現坑坑更健康,當你明白一個東西的優缺點之後,你才會更好的選擇你所需要的。是以呢,現在子產品開源了,希望對某些朋友有參考意義或者說使用價值吧。

聲明:大家使用過程中發現任何問題都不要來問我,請自己想辦法解決。 我現在已經完全放棄易語言了,改用VC++了。

以下是全部接口:

子產品名稱:sunflover.ec

作者:by sunflover

版本:2015.2

自己收集的一些常用函數,友善寫更新檔。

@備注:

自己收集的一些常用函數

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

.版本 2

.子程式 Ansi2Unicode, 位元組集, 公開, 将Ansi碼轉換為Unicode碼 (傳回轉換後的位元組集)

.參數 Ansi, 文本型, , 欲轉換的Ansi文本

.子程式 AntiDebug, 邏輯型, 公開, 這個沒啥用,效果差;可放在程式運作的第一個函數  被調試傳回真

.子程式 AntiODMenu, 邏輯型, 公開, 這個效果較好,推薦用這個;找到OD相關句柄傳回真, 此函數枚舉視窗通過菜單名來 判定是否OD視窗。

.子程式 AntiStrongOD, 邏輯型, 公開, 這個效果還行,檢測帶有驅動的 OD調試器    此函數專門對付 StrongOD 插件

.參數 判斷OD運作狀态, 邏輯型, 可空, 此參數作用:  發現OD驅動時 —是否檢測OD運作狀态作為傳回值基礎  ,預設判斷運作狀态 

.子程式 Bin2Dec, 整數型, 公開, 位元組集到整數

.參數 Bin, 位元組集

.子程式 Bin2Hex, 文本型, 公開, 位元組集到十六進制文本

.參數 位元組集, 位元組集

.子程式 Bin2Hex1, 文本型, 公開, 文本型->文本型

.參數 Bin, 文本型

.子程式 BinXor, 位元組集, 公開, 位元組集異或

.參數 需異或的位元組集, 位元組集, , 傳回的位元組集

.參數 參與異或的位元組集, 位元組集

.子程式 Dec2Hex, 文本型, 公開, 十到十六

.參數 十進制轉換資料, 長整數型

.子程式 GetAPIAddress, 整數型, 公開, 失敗傳回0

.參數 子產品名, 文本型, , 如"user32.dll","kernel32.dll"

.參數 API, 文本型, , 如“CreateWindowExA”

.子程式 Hex2Bin, 位元組集, 公開, 十六進制文本到位元組集

.參數 原文, 文本型

.子程式 Hex2Bin1, 文本型, 公開, 文本型->文本型

.參數 Hex, 文本型

.子程式 Hex2Dec, 整數型, 公開, 十六到十

.參數 十六進制轉換資料, 文本型

.子程式 InjectDll, 邏輯型, 公開, 向目标程序中注入一個指定 Dll 子產品檔案;注入成功傳回 true, 注入失敗則傳回 false,CreateRemoteThread法

.參數 程序ID, 整數型, , 程序PID

.參數 DLL檔案名, 文本型, , 欲注入的DLL名稱

.子程式 InjectDLL1, 邏輯型, 公開, SuspendThread,shellcode,SetEip

.參數 PID, 整數型

.參數 DLL路徑, 文本型

.子程式 InjectDLL2, 邏輯型, 公開, code cave,與InjectDLL1同

.參數 程序ID, 整數型

.參數 DLL檔案名, 文本型

.子程式 inline_patch, 邏輯型, 公開, 失敗傳回假,成功傳回真;适合patch尚未運作的加殼或不加殼的可執行檔案

.參數 檔案名, 文本型, , 檔案全路徑

.參數 子產品名, 文本型, , 如"user32.dll"

.參數 API, 文本型, , 如“CreateWindowExA”

.參數 位址, 整數型, , 如Hex2Dec (“00401000”)

.參數 資料, 位元組集, , 如 Hex2Bin (“90909090”)

.子程式 inline_patch_Pro, 邏輯型, 公開, 失敗傳回假,成功傳回真;适合patch尚未運作的加殼不加殼的可執行檔案,需要更新檔的資料較多時建議使用這個,在子程式中打更新檔

.參數 檔案名, 文本型, , 檔案全路徑

.參數 子產品名, 文本型, , 如"user32.dll"

.參數 API, 文本型, , 如“CreateWindowExA”

.參數 子程式指針, 子程式指針, , 如&子程式1

.子程式 inline_patch_Pro1, 邏輯型, 公開, 失敗傳回假,成功傳回真;适合patch尚未運作的加殼或不加殼的可執行檔案,解碼時機判斷是選用VirtualProtect;如果殼檢測到了,自行換用inline_patch或inline_patch_Pro

.參數 檔案名, 文本型, , 檔案全路徑

.參數 子程式指針, 子程式指針, , 如&子程式1

.參數 位址, 整數型, 可空, 如Hex2Dec (“00401000”),用來判斷是否解碼完成;如果沒殼,就空着

.子程式 inline_patch1, 邏輯型, 公開, patch尚未運作的,沒加殼的程式,并運作它

.參數 檔案名, 文本型, , 檔案全路徑

.參數 位址, 整數型, , 如Hex2Dec (“00401000”)

.參數 資料, 位元組集, , 如 Hex2Bin (“90909090”)

.子程式 InlinePatch, 邏輯型, 公開, 失敗傳回假,成功傳回真;适合patch尚未運作的加殼不加殼的可執行檔案,需要更新檔的資料較多時建議使用這個,在子程式中打更新檔

.參數 檔案名, 文本型, , 檔案全路徑,如"D:\test.exe"

.參數 運作參數, 文本型, 可空, 可空,沒有參數則留白,大多數情況沒有參數;有參數時填寫,如"-s"

.參數 子產品名, 文本型, , 如"user32.dll"

.參數 API, 文本型, , 如“CreateWindowExA”

.參數 API中斷次數, 整數型, 可空, 可空,有些時候需要計次,根據需要填寫;一般留白即可,留白表示中斷第一次,就開始更新檔

.參數 更新檔子程式, 子程式指針, , 如&子程式1

.參數 寄存器結構體, context_, 參考 可空, 可空,CONTEXT,傳回寄存器結構體,友善寫更新檔函數;這個屬于進階功能,看不懂的話就留白吧

.參數 程序資訊結構體, PROCESS_INFORMATION, 參考 可空, 可空,PROCESS_INFORMATION,傳回程序資訊結構體,友善寫更新檔函數;這個屬于進階功能,看不懂的話就留白吧

.子程式 OpenProcessPro, 整數型, 公開, 傳回句柄權限是完全通路

.參數 PID, 整數型

.子程式 OpenThreadPro, 整數型, 公開, 傳回句柄權限是完全通路

.參數 程序ID, 整數型

.子程式 Unicode2Ansi, 文本型, 公開, 将Unicode碼轉換為Ansi碼 (傳回轉換後的文本)

.參數 Unicode, 位元組集, , 欲轉換的Unicode位元組集

.子程式 UnInjectDLL1, 邏輯型, 公開, SuspendThread,shellcode,SetEip

.參數 PID, 整數型

.參數 DLL路徑, 文本型

.子程式 UnInjectDLL2, 邏輯型, 公開, 遠端時鐘解除安裝dll

.參數 參數_視窗句柄, 整數型, , FindWindow(字元 (0),“電腦”)

.參數 參數_DLL路徑, 文本型, , '可以是DLL全路徑也可以隻是DLL名稱

.子程式 超級延時, , 公開, 高精度延時,cpu占用低,視窗不卡死,一次最大可延時幾年 (無傳回值)

.參數 延時間隔, 整數型, , 1000微秒 = 1毫秒 ; 1000毫秒 = 1秒

.參數 延時機關, 整數型, 可空, 可空:毫秒  0 毫秒  1 微秒  2 秒  3 分  4 小時  5 天

.子程式 打開儲存檔案對話框, 文本型, 公開, 未提示 是否有重複的檔案存在 自己注意一下

.參數 視窗句柄, 整數型, 可空, 調用處視窗句柄

.參數 視窗标題, 文本型, 可空, 對話框視窗标題

.參數 過濾器, 文本型, 可空, 格式:“MP3檔案(*.mp3)|*.mp3|媒體檔案(*.mpg)|*.mpg”

.參數 初始路徑, 文本型, 可空, 可以被省略。如果本參數被省略,預設從“我的檔案”開始。否則,請給出盤符,如“d:”

.子程式 打開多檔案對話框, 文本型, 公開, 如果多選檔案,傳回檔案路徑以“;”(半角分号)分隔。失敗或取消傳回空文本。

.參數 視窗句柄, 整數型, 可空, 調用處視窗句柄

.參數 視窗标題, 文本型, 可空, 對話框視窗标題

.參數 過濾器, 文本型, 可空, 格式:“MP3檔案(*.mp3)|*.mp3|媒體檔案(*.mpg)|*.mpg”

.參數 初始路徑, 文本型, 可空, 可以被省略。如果本參數被省略,預設從“我的檔案”開始。否則,請給出盤符,如“d:”

.參數 視窗風格, 整數型, 可空, 可以被省略。如果本參數被省略,預設為 0 。位置值從 0 開始。從0-11之間,可以設定多種視窗風格。0.工具欄、隻讀選擇框-未選中;1.工具欄、隻讀選擇框-選中;2.工具欄;3.工具欄、隻讀選擇框-未選中,幫助按鈕;4.工具欄、隻讀選擇框-選中,幫助按鈕;5.工具欄,幫助按鈕;6.普通風格、隻讀選擇框-未選中;7.普通風格、隻讀選擇框-選中;8.普通風格;9.普通風格、隻讀選擇框-未選中,幫助按鈕;10.普通風格、隻讀選擇框-選中,幫助按鈕;11.普通風格、幫助按鈕。

.子程式 讀記憶體位元組集, 位元組集, 公開, 從記憶體中讀取位元組集資料(傳回位元組集,失敗傳回0位元組長度的空位元組集)

.參數 程序ID, 整數型, , 程序ID

.參數 位址, 整數型, , 記憶體位址

.參數 長度, 整數型, , 欲讀取記憶體資料的長度 

.子程式 複制檔案夾, 邏輯型, 公開, 可複制檔案,也可複制目錄。成功傳回真,失敗傳回假。

.參數 被複制的檔案或目錄, 文本型

.參數 複制到的位置, 文本型

.子程式 恢複程序, 邏輯型, 公開

.參數 PID, 整數型

.子程式 結束程序, 邏輯型, 公開

.參數 程序ID, 整數型

.子程式 程序取ID, 整數型, 公開, 取指定程序的程序ID(傳回第一個程序ID,失敗傳回空資訊)

.參數 程序名, 文本型, , 程式程序名(不區分大小寫!)

.子程式 程序是否存在1, 邏輯型, 公開

.參數 程序ID, 整數型

.子程式 程序是否存在2, 邏輯型, 公開

.參數 程序名, 文本型

.子程式 藍屏, , 公開, 懲罰破解者函數 。 在确定目前程式被調試後 可使用此函數讓系統藍屏。   慎重使用!

.子程式 記憶體更新檔, 邏輯型, 公開, 根據程序名更新檔記憶體,patch已經運作的可執行檔案

.參數 程序名, 文本型, , '完整的檔案名,注意大小寫

.參數 位址, 文本型, , 需patch位址,如“00401000”

.參數 代碼, 文本型, , 被替換的代碼,如“90909090”

.子程式 記憶體更新檔1, 邏輯型, 公開, 根據程序ID更新檔記憶體,patch已經運作的可執行檔案

.參數 程序ID, 整數型, , 要更新檔的程序ID

.參數 位址, 文本型, , 需patch位址,如“00401000”

.參數 代碼, 文本型, , 被替換的代碼,如“90909090”

.子程式 記憶體搜尋, 整數型, 公開, 某些情況,需提升權限(傳回結果數目,失敗傳回0),傳回搜尋到的數目

.參數 程序ID, 整數型, , 程序ID

.參數 搜尋内容, 位元組集, , 欲搜尋的内容  其他類型-需自行轉換為位元組集類型

.參數 結果數組, 整數型, 參考 數組, 用來儲存搜尋的結果

.子程式 取彙編指令長度, 整數型, 公開, 傳回指定程序指定位址處的首條彙編指令的長度。注:計算方法使用的是LDX32

.參數 程序ID, 整數型, , 程序ID

.參數 位址, 整數型, , 指令位址,如Hex2Dec("00401000")

.子程式 取寄存器值, 文本型, 公開, 适用于明碼讀碼,運作到位址處讀真碼;如 取寄存器值(檔案名,"user32.dll",“CreateWindowExA”,Hex2Dec (“00401000”),“Eax”)

.參數 檔案名, 文本型, , 檔案全路徑

.參數 子產品名, 文本型, , 如"user32.dll"

.參數 API, 文本型, , 如“CreateWindowExA”,這裡主要為了解碼時機

.參數 位址, 整數型, , 如Hex2Dec (“00401000”)

.參數 寄存器, 文本型, , 可選Dr0-Dr7,Eax,Ecx,Ebx,Edx,Ebp,Esp,Eip,Edi,Esi,SegGs,SegFs,SegEs,SegDs,SegCs,EFlags,Esp,SegSs

.子程式 取程序主線程, 整數型, 公開, 失敗傳回0

.參數 程序ID, 整數型

.子程式 取路徑目錄, 文本型, 公開, 傳回一個檔案所在目錄,如"C:\Program Files\WinRAR\WinRAR.exe",傳回"C:\Program Files\WinRAR"

.參數 路徑, 文本型, , 如"C:\Program Files\WinRAR\WinRAR.exe"

.子程式 取路徑檔案名, 文本型, 公開, 根據檔案路徑擷取檔案名

.參數 路徑, 文本型, , 檔案完整路徑

.子程式 取線程起始位址, 整數型, 公開, 失敗傳回0

.參數 參數_dwThreadId, 整數型

.子程式 去除空格, 文本型, 公開

.參數 文本, 文本型

.子程式 設定顔色對話框, 邏輯型, 公開, 例如:如果真 (設定顔色對話框 (取視窗句柄 (), j));編輯框1.文本顔色 = 到整數 (j)。

.參數 視窗句柄, 整數型

.參數 傳回_顔色, 文本型, , 傳回的顔色~~需要傳回整數

.子程式 申請記憶體Pro, 整數型, 公開, 成功傳回申請的首位址,失敗傳回0;申請的記憶體可讀可寫可執行

.參數 程序ID, 整數型, ,  

.參數 申請記憶體大小, 整數型

.子程式 釋放記憶體Pro, 邏輯型, 公開

.參數 程序ID, 整數型, ,  

.參數 記憶體位址, 整數型

.子程式 特征碼模糊搜尋, 整數型, 公開, 最多支援三段通配符如“68 00 00 00 40 ?? ?? ?? ?? ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 12 34 ?? ?? ?? ?? 85 69”

.參數 程序ID, 整數型, , 程序ID

.參數 特征碼, 文本型, , 十六進制文本,如“68 00 00 00 40 ?? ?? ?? ?? ?? ?? ?? ?? 50 E8”

.參數 結果數組, 整數型, 參考 數組, 用來儲存搜尋的結果

.參數 偏移, 整數型, 可空, 預設為0

.參數 起始位址, 文本型, 可空, 預設為“00400000”

.參數 結束位址, 文本型, 可空, 預設為“00800000”

.子程式 提升程序權限, 邏輯型, 公開

.參數 目标程序, 整數型, 可空

.參數 權限類别, 文本型, 可空, 預設為“SeDebugPrivilege”;可選“SeDebugPrivilege”,“SeShutdownPrivilege”,“SeRestorePrivilege”,“SeBackupPrivilege”

.子程式 寫記憶體位元組集, 邏輯型, 公開, 往記憶體中寫入位元組集資料(成功傳回真,失敗傳回假);注:内部有VirtualProtectEx處理

.參數 程序ID, 整數型, , 程序ID

.參數 位址, 整數型, , 記憶體位址

.參數 資料, 位元組集, , 寫入資料 如果為其它資料類型,可以用 到位元組集() 将資料轉換為位元組集

.參數 寫入長度, 整數型, 可空, 預設為全部資料,(參考: 1位元組型 2短整數型 4長整數型,小數型,指針 8長整數型,雙精度小數型,日期時間型)

.子程式 移動檔案夾, 邏輯型, 公開, 可移動檔案,也可移動目錄。成功傳回真,失敗傳回假。

.參數 被移動的檔案或目錄, 文本型

.參數 移動到的位置, 文本型

.子程式 隐藏程序, 邏輯型, 公開, hide.dll,會被誤報,大家看着處理

.參數 程序ID, 整數型

.子程式 暫停程序, 邏輯型, 公開

.參數 PID, 整數型

.子程式 終止程序Pro, , 公開, 終止程序,終止所有指定程序

.參數 程序名, 文本型, , 程式程序名(不區分大小寫!)

.子程式 終止線程, 邏輯型, 公開, 成功傳回真 失敗傳回假

.參數 參數_線程ID, 整數型

.資料類型 context_, 公開, 公開

    .成員 ContextFlags, 整數型

    .成員 Dr0, 整數型

    .成員 Dr1, 整數型

    .成員 Dr2, 整數型

    .成員 Dr3, 整數型

    .成員 Dr4, 整數型

    .成員 Dr5, 整數型

    .成員 Dr6, 整數型

    .成員 Dr7, 整數型

    .成員 ControlWord, 整數型

    .成員 StatusWord, 整數型

    .成員 TagWord, 整數型

    .成員 ErrorOffset, 整數型

    .成員 ErrorSelector, 整數型

    .成員 DataOffset, 整數型

    .成員 DataSelector, 整數型

    .成員 RegisterArea, 位元組型, , "72"

    .成員 Cr0NpxState, 整數型

    .成員 SegGs, 整數型

    .成員 SegFs, 整數型

    .成員 SegEs, 整數型

    .成員 SegDs, 整數型

    .成員 Edi, 整數型

    .成員 Esi, 整數型

    .成員 Ebx, 整數型

    .成員 Edx, 整數型

    .成員 Ecx, 整數型

    .成員 Eax, 整數型

    .成員 Ebp, 整數型

    .成員 Eip, 整數型

    .成員 SegCs, 整數型

    .成員 EFlags, 整數型

    .成員 Esp, 整數型

    .成員 SegSs, 整數型

    .成員 reserve, 位元組型, , "512"

.資料類型 FLOATING_SAVE_AREA, 公開

    .成員 ControlWord, 整數型

    .成員 StatusWord, 整數型

    .成員 TagWord, 整數型

    .成員 ErrorOffset, 整數型

    .成員 ErrorSelector, 整數型

    .成員 DataOffset, 整數型, , , ;

    .成員 DataSelector, 整數型

    .成員 RegisterArea, 位元組型, , "80"

    .成員 Cr0NpxState, 整數型

.資料類型 LuID, 公開

    .成員 lowpart, 整數型

    .成員 highpart, 整數型

.資料類型 MEMORY_BASIC_INFORMATION, 公開

    .成員 BaseAddress, 整數型

    .成員 AllocationBase, 整數型

    .成員 AllocattionProtect, 整數型

    .成員 RegionSize, 整數型

    .成員 State, 整數型

    .成員 Protect, 整數型

    .成員 Type, 整數型

.資料類型 MODULEENTRY32, 公開, MODULEENTRY32

    .成員 dwSize, 整數型, , , dwSize

    .成員 th32ModuleID, 整數型, , , th32ModuleID

    .成員 th32ProcessID, 整數型, , , th32ProcessID

    .成員 GlblcntUsage, 整數型, , , GlblcntUsage

    .成員 ProccntUsage, 整數型, , , ProccntUsage

    .成員 modBaseAddr, 整數型, , , modBaseAddr

    .成員 modBaseSize, 整數型, , , modBaseSize

    .成員 hModule, 整數型, , , hModule

    .成員 szModule, 位元組型, , "256", 子產品名稱

    .成員 szExePath, 位元組型, , "260", 檔案路徑

.資料類型 PROCESS_BASIC_INFORMATION, 公開

    .成員 ExitStatus, 整數型

    .成員 PebBaseAddress, 整數型

    .成員 AffinityMask, 整數型

    .成員 BasePriority, 整數型

    .成員 UniqueProcessId, 整數型

    .成員 InheritedFromUniqueProcessId, 整數型

.資料類型 PROCESS_INFORMATION, 公開

    .成員 hProcess, 整數型

    .成員 hThread, 整數型

    .成員 dwProcessId, 整數型

    .成員 dwThreadId, 整數型

.資料類型 SECURITY_ATTRIBUTES, 公開, , SECURITY_ATTRIBUTES

    .成員 nLength, 整數型

    .成員 lpSecurityDescriptor, 整數型

    .成員 bInheritHandle, 整數型

.資料類型 SHFILEOPSTRUCT, 公開

    .成員 句柄, 整數型

    .成員 wFunc, 整數型

    .成員 pFrom, 位元組集

    .成員 pTo, 位元組集

    .成員 fFlags, 短整數型

    .成員 fAnyOperationsAborted, 整數型

    .成員 hNameMappings, 整數型

    .成員 lpszProgressTitle, 文本型

.資料類型 STARTUPINFO, 公開

    .成員 cb, 整數型

    .成員 lpReserved, 文本型

    .成員 lpDesktop, 文本型

    .成員 lpTitle, 文本型

    .成員 dwX, 整數型

    .成員 dwY, 整數型

    .成員 dwXSize, 整數型

    .成員 dwYSize, 整數型

    .成員 dwXCountChars, 整數型

    .成員 dwYCountChars, 整數型

    .成員 dwFillAttribute, 整數型

    .成員 dwFlags, 整數型

    .成員 wShowWindow, 短整數型

    .成員 cbReserved2, 短整數型

    .成員 lpReserved2, 整數型

    .成員 hStdInput, 整數型

    .成員 hStdOutput, 整數型

    .成員 hStdError, 整數型

.資料類型 STARTUPINFO1, 公開

    .成員 cb, 整數型

    .成員 lpReserved, 整數型

    .成員 lpDesktop, 整數型

    .成員 lpTitle, 整數型

    .成員 dwX, 整數型

    .成員 dwY, 整數型

    .成員 dwXSize, 整數型

    .成員 dwYSize, 整數型

    .成員 dwXCountChars, 整數型

    .成員 dwYCountChars, 整數型

    .成員 dwFillAttribute, 整數型

    .成員 dwFlags, 整數型

    .成員 wShowWindow, 短整數型

    .成員 cbReserved2, 短整數型

    .成員 lpReserved2, 位元組型

    .成員 hStdInput, 整數型

    .成員 hStdOutput, 整數型

    .成員 hStdError, 整數型

.資料類型 THREADENTRY32, 公開

    .成員 dwsize, 整數型

    .成員 cntUsage, 整數型

    .成員 th32ThreadID, 整數型

    .成員 th32OwnerProcessID, 整數型

    .成員 tpBasePri, 長整數型

    .成員 tpDeltaPri, 長整數型

    .成員 dwFlags, 整數型

.資料類型 視窗句柄類, 公開

    .成員 句柄, 整數型

    .成員 标題, 文本型

    .成員 類名, 文本型

.資料類型 打開檔案名, 公開, OPENFILENAME

    .成員 結構大小, 整數型, , , lStructSize

    .成員 視窗句柄, 整數型, , , hwndOwner

    .成員 執行個體句柄, 整數型, , , hInstance

    .成員 過濾器, 位元組集, , , lpstrFilter

    .成員 自定義過濾器, 文本型, , , lpstrCustomFilter

    .成員 自定義過濾器最大長度, 整數型, , , nMaxCustFilter

    .成員 過濾器索引, 整數型, , , nFilterIndex

    .成員 檔案名, 位元組集, , , lpstrFile

    .成員 檔案名最大長度, 整數型, , , nMaxFile

    .成員 檔案标題, 文本型, , , lpstrFileTitle

    .成員 檔案标題最大長度, 整數型, , , nMaxFileTitle

    .成員 初始目錄, 文本型, , , lpstrInitialDir

    .成員 标題, 文本型, , , lpstrTitle

    .成員 标志, 整數型, , , flags

    .成員 檔案偏移量, 整數型, , , nFileOffset

    .成員 檔案擴充名, 整數型, , , nFileExtension

    .成員 預設擴充名, 文本型, , , lpstrDefExt

    .成員 自定義資料, 整數型, , , lCustData

    .成員 回調函數位址, 整數型, , , lpfnHook

    .成員 模闆名, 文本型, , , lpTemplateName

.資料類型 函數資訊, 公開

    .成員 子產品索引, 整數型

    .成員 ThunkRav, 文本型

    .成員 Thunk偏移, 文本型

    .成員 Thunk值, 文本型

    .成員 序數, 文本型

    .成員 名稱, 文本型

.資料類型 寄存器, 公開

    .成員 标記, 整數型

    .成員 dr0, 整數型

    .成員 dr1, 整數型

    .成員 dr2, 整數型

    .成員 dr3, 整數型

    .成員 dr6, 整數型

    .成員 dr7, 整數型

    .成員 FloatSave, FLOATING_SAVE_AREA

    .成員 seggs, 整數型

    .成員 segfs, 整數型

    .成員 seges, 整數型

    .成員 segds, 整數型

    .成員 edi, 整數型

    .成員 esi, 整數型

    .成員 ebx, 整數型

    .成員 edx, 整數型

    .成員 ecx, 整數型

    .成員 eax, 整數型

    .成員 ebp, 整數型

    .成員 eip, 整數型

    .成員 SegCs, 整數型

    .成員 eflags, 整數型

    .成員 esp, 整數型

    .成員 SegSs, 整數型

.資料類型 程序資訊, 公開, 程序資訊

    .成員 dwSize, 整數型

    .成員 cntUsage, 整數型

    .成員 程序ID, 整數型

    .成員 th32DefaultHeapID, 整數型

    .成員 th32ModuleID, 整數型

    .成員 cntThreads, 整數型

    .成員 th32ParentProcessID, 整數型

    .成員 pcPriClassBase, 整數型

    .成員 dwFlags, 整數型

    .成員 程序名稱, 位元組型, , "256"

.資料類型 邏輯字型, 公開, $(a)LOGFONT

    .成員 高度, 整數型, , , lfHeight

    .成員 寬度, 整數型, , , lfWidth

    .成員 控制擺, 整數型, , , lfEscapement

    .成員 定方位, 整數型, , , lfOrientation

    .成員 加粗, 整數型, , , lfWeight

    .成員 斜體, 位元組型, , , lfItalic

    .成員 下劃線, 位元組型, , , lfUnderline

    .成員 删除線, 位元組型, , , lfStrikeOut

    .成員 零碎工作組合, 位元組型, , , lfCharSet

    .成員 出自精确, 位元組型, , , lfOutPrecision

    .成員 修剪精确, 位元組型, , , lfClipPrecision

    .成員 性質, 位元組型, , , lfQuality

    .成員 間距, 位元組型, , , lfPitchAndFamily

    .成員 字型名稱, 位元組型, , "32", 用LF_FACESIZE,lfFaceName?

.資料類型 色盒, 公開

    .成員 lStructsize, 整數型

    .成員 hwndOwner, 整數型

    .成員 hInstance, 整數型

    .成員 rgbResult, 整數型

    .成員 lpCustColors, 文本型, , , 可以指定16個數組,也可以不用指定,但無論用否,必須傳址

    .成員 flags, 整數型

    .成員 lCustData, 整數型

    .成員 lpfnHook, 子程式指針

    .成員 lpTemplateName, 文本型

.資料類型 設定執行檔案資訊, 公開, SHELLEXECUTEINFO

    .成員 結構大小, 整數型, , , cbSize

    .成員 标志, 整數型, , , fMask

    .成員 視窗句柄, 整數型, , , hwnd

    .成員 操作指令, 文本型, , , lpVerb

    .成員 檔案名, 文本型, , , lpFile

    .成員 應用程式參數, 文本型, , , lpParameters

    .成員 目錄, 文本型, , , lpDirectory

    .成員 顯示标志, 整數型, , , nShow

    .成員 執行個體句柄, 整數型, , , hInstApp

    .成員 項目辨別符清單結構指針, 整數型, , , lpIDList

    .成員 檔案類别, 文本型, , , lpClass

    .成員 熱鍵句柄, 整數型, , , hkeyClass

    .成員 熱鍵, 整數型, , , dwHotKey

    .成員 圖示句柄, 整數型, , , hIcon

    .成員 程序句柄, 整數型, , , hProcess

.資料類型 檔案夾資訊, 公開, BROWSEINFO

    .成員 視窗句柄, 整數型, , , hOwner

    .成員 根目錄, 整數型, , , pidlRoot

    .成員 顯示名稱, 文本型, , , pszDisplayName

    .成員 标題, 文本型, , , lpszTitle

    .成員 标志, 整數型, , , ulFlags

    .成員 回調函數位址, 整數型, , , lpfn

    .成員 回調函數參數, 整數型, , , lParam

    .成員 圖像索引, 整數型, , , iImage

.資料類型 項目辨別符清單, 公開, ITEMIDLIST

    .成員 結構大小, 整數型, , , cb

    .成員 辨別符長度, 位元組型, , "255", abID

.資料類型 選擇字型, 公開, CHOOSEFONT

    .成員 結構大小, 整數型, , , lStructSize

    .成員 視窗句柄, 整數型, , , hwndOwner,caller's window handle

    .成員 裝置場景句柄, 整數型, , , hDC,printer DC/IC or NULL

    .成員 字型結構指針, 整數型, , , lpLogFont‘ptr. to a LOGFONT struct

    .成員 點大小, 整數型, , , iPointSize,10 * size in points of selected font

    .成員 标志, 整數型, , , flags,enum. type flags

    .成員 顔色值, 整數型, , , rgbColors,returned text color

    .成員 自定義資料, 整數型, , , lCustData,data passed to hook fn.

    .成員 回調函數位址, 整數型, , , lpfnHook,ptr. to hook function

    .成員 模闆名稱, 文本型, , , lpTemplateName,custom template name

    .成員 執行個體句柄, 整數型, , , hInstance,instance handle of.EXE that contains cust. dlg. template

    .成員 字型風格, 文本型, , , lpszStyle,return the style field here must be LF_FACESIZE(32) or bigger

    .成員 字型類型, 短整數型, , , nFontType,same value reported to the EnumFonts,call back with the extra FONTTYPE_ bits added

    .成員 空白隊列, 短整數型

    .成員 最小尺寸, 整數型

    .成員 最大尺寸, 整數型

.資料類型 字型資訊, 公開

    .成員 名稱, 文本型

    .成員 大小, 整數型

    .成員 顔色, 整數型

    .成員 類型, 整數型

    .成員 斜體, 整數型

    .成員 下劃線, 整數型

.程式集 IATHOOK類, , 公開

.子程式 APIAddr, 整數型, 公開, '此方法放在IATHOOK後調用方可成功,失敗傳回0

.子程式 IATHook, 邏輯型, 公開, 完事後注意調用IATUnHook

.參數 程序ID, 整數型, 可空, '為空表示自身程序

.參數 子產品名, 文本型, , 需加字尾,如“user32.dll”

.參數 函數名, 文本型, , 注意大小寫,如“MessageBoxA”

.參數 新位址, 整數型, , 到整數 (&HookCallBack)

.子程式 IATUnHook, 邏輯型, 公開, 與IATHOOK參數完全相同

.參數 程序ID, 整數型, 可空, 為空表示本程序

.參數 子產品名, 文本型, , 需加字尾,如“user32.dll”

.參數 函數名, 文本型, , 注意大小寫,如“MessageBoxA”

.參數 位址, 整數型, , 與IATHOOK最後一個參數相同

.程式集 PE類, , 公開, 擷取可執行程式入口點,附加資料;

.子程式 GetEntryPoint, 整數型, 公開, 擷取的是OEP,即EP+imagebase

.參數 全檔案路徑, 文本型, , 要處理的檔案全路徑

.子程式 overlay, 位元組集, 公開, 擷取PE檔案的附加資料

.參數 全檔案路徑, 文本型, , 要處理的檔案全路徑

.程式集 超級解壓類, , 公開, 調用7z解壓檔案,支援7z,zip,rar等壓縮檔案的帶密碼解壓

.子程式 超級解壓, 邏輯型, 公開, 解壓壓縮檔案,支援rar,zip,7z等等壓縮檔案的解壓,支援帶密碼解壓

.參數 待解壓檔案, 文本型, , 欲解壓的檔案的全路徑

.參數 解壓到的目錄, 文本型, , 欲解壓到的路徑

.參數 解壓密碼, 文本型, 可空, 解壓所用密碼,沒有密碼就不填

.程式集 彙編類, , 公開, 用于輔助生成shellcode,傳回值都是位元組集

.子程式 add_eax_char, 位元組集, 公開, 占用3個位元組,char值在0-127之間,傳回彙編指令對應的位元組集

.參數 char, 位元組型, , add eax,1,參數為1,注意進制;16進制,請用Hex2Dec(Hex)轉換

.子程式 add_eax_Num, 位元組集, 公開, 占用5個位元組,傳回彙編指令對應的位元組集

.參數 Num, 整數型, , add eax,8,參數為8,注意進制;16進制,請用Hex2Dec(Hex)轉換

.子程式 add_esp_char, 位元組集, 公開, 占用3個位元組,char值在0-127之間,傳回彙編指令對應的位元組集

.參數 char, 位元組型, , add esp,8,參數為8,注意進制;16進制,請用Hex2Dec(Hex)轉換

.子程式 call, 位元組集, 公開, 占用5個位元組,call轉換,傳回彙編指令對應的位元組集,此處為十進制,想用16進制,請自行轉換;示例:call (Hex2Dec (“402000”), Hex2Dec (“401000”))

.參數 call到的位址, 整數型, , 00401000 call 00402000,參數為00402000

.參數 call所在的位址, 整數型, , 00401000 call 00402000,參數為00401000

.子程式 call_API, 位元組集, 公開, 占用5個位元組,如00401000 call MessageBoxA

.參數 call所在位址, 整數型, , 自行轉換,Hex2Dec("00401000")

.參數 lpProcName, 文本型, , 如MessageBoxA

.參數 hModule, 文本型, , 如user32.dll

.子程式 call_API_FF15, 位元組集, 公開, 占用6個位元組,如00401000 call MessageBoxA

.參數 lpProcName, 文本型, , 如MessageBoxA

.參數 hModule, 文本型, , 如user32.dll

.子程式 call_eax, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.子程式 call_FF15, 位元組集, 公開, 占用6個位元組,call轉換,傳回彙編指令對應的位元組集,此處為十進制,想用16進制,請自行轉換;示例:call (Hex2Dec (“402000”))

.參數 call到的位址, 整數型, , 00401000 call 00402000,參數為00402000

.子程式 jmp, 位元組集, 公開, 占用5個位元組,jmp轉換,傳回彙編指令對應的位元組集,此處為十進制,想用16進制,請自行轉換;jmp (Hex2Dec (“402000”), Hex2Dec (“401000”))

.參數 jmp_to, 整數型, , 00401000 jmp  00402000,參數為00402000

.參數 jmp_from, 整數型, , 00401000 jmp  00402000,參數為00401000

.子程式 jmp_FF25, 位元組集, 公開, 占用6個位元組,jmp轉換,傳回彙編指令對應的位元組集,此處為十進制,想用16進制,請自行轉換;jmp (Hex2Dec (“402000”))

.參數 jmp_to, 整數型, , 00401000 jmp  00402000,參數為00402000

.子程式 mov_eax_Num, 位元組集, 公開, 占用5個位元組,傳回彙編指令對應的位元組集

.參數 Num, 整數型, , 自己注意進制,mov eax,401000,參數為Hex2Dec(“401000”)

.子程式 nop, 位元組集, 公開, 占用個位元組,傳回彙編指令對應的位元組集

.子程式 popad, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 popfd, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_char, 位元組集, 公開, 占用2個位元組,char值在0-127之間,傳回彙編指令對應的位元組集

.參數 char, 位元組型, , push 8,參數為8,注意進制;16進制,請用Hex2Dec(Hex)轉換

.子程式 push_eax, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_ebp, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_ebx, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_ecx, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_edi, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_edx, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_esi, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_esp, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 push_Num, 位元組集, 公開, 占用5個位元組,傳回彙編指令對應的位元組集

.參數 Num, 整數型, , push 401000,參數為Hex2Dec(401000),注意進制;16進制,請用Hex2Dec(Hex)轉換

.子程式 pushad, 位元組集, 公開, 占用1個位元組,将通用寄存器的内容壓入堆棧;傳回彙編指令對應的位元組集

.子程式 pushfd, 位元組集, 公開, 占用1個位元組,本指令可以把标志寄存器的内容儲存到堆棧中去;傳回彙編指令對應的位元組集

.子程式 retn, 位元組集, 公開, 占用1個位元組,傳回彙編指令對應的位元組集

.子程式 retn_n, 位元組集, 公開, 占用3個位元組,傳回彙編指令對應的位元組集

.參數 n, 短整數型, , retn 3,參數填3,注意進制;16進制,請用Hex2Dec(Hex)轉換

.子程式 xor_eax_eax, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.子程式 xor_ebx_ebx, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.子程式 xor_ecx_ecx, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.子程式 xor_edi_edi, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.子程式 xor_edx_edx, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.子程式 xor_esi_esi, 位元組集, 公開, 占用2個位元組,傳回彙編指令對應的位元組集

.程式集 記憶體DLL注入類, , 公開, 可能還有點問題

.子程式 取DLL函數位址, 整數型, 公開, 傳回已經注入到指定程序内的DLL的函數位址。失敗傳回0。

.參數 DLL函數名, 文本型, , 區分大小寫。

.子程式 是否已注入, 邏輯型, 公開, 已注入傳回真,未注入傳回假。

.子程式 解除安裝DLL, 邏輯型, 公開, 解除安裝已經注入的記憶體中的DLL,成功傳回真,失敗傳回假.(最好不要解除安裝,解除安裝的話被注入的程序很容易崩潰)

.子程式 執行DLL函數, 整數型, 公開, 執行已經注入到指定程序内的DLL的函數,成功傳回所執行的函數的位址,失敗傳回0。

.參數 DLL函數名, 文本型, , 區分大小寫。

.參數 等待函數執行完畢, 邏輯型, 可空, 預設為假,為真則函數執行完畢後本函數才傳回。

.參數 傳回值, 整數型, 參考 可空, 如果上一個參數為真,則可提供一個變量儲存被執行的DLL函數的傳回值。

.參數 線程句柄, 整數型, 參考 可空, 可提供變量儲存函數執行線程的句柄,不需要請留白.接收了句柄記得不用時要關閉.

.參數 參數1, 整數型, 可空, 可提供給被執行函數最多10個參數(理論上支援無限個,自己看着改吧)不需要的請留白。

.參數 參數2, 整數型, 可空, 非整數型參數需傳遞變量的記憶體資料指針,該指針必須是在目标程序内的。

.參數 參數3, 整數型, 可空, 提供的參數請與所執行的函數的參數個數一緻,否則被注入的程序絕對會崩潰!

.參數 參數4, 整數型, 可空

.參數 參數5, 整數型, 可空

.參數 參數6, 整數型, 可空

.參數 參數7, 整數型, 可空

.參數 參數8, 整數型, 可空

.參數 參數9, 整數型, 可空

.參數 參數10, 整數型, 可空

.子程式 注入DLL, 整數型, 公開, 成功傳回DLL的子產品句柄,失敗或已注入傳回0。

.參數 程序句柄, 整數型, , 句柄必須擁有對被注入程序的完全操作權限。注入後如果沒有其他用處可以關閉該句柄。

.參數 DLL資料, 位元組集

.程式集 取機器碼類, , 公開, 擷取硬體資訊,硬碟等等

.子程式 取3段機器碼, 文本型, 公開, 擷取3段32位機器碼,如1111111111-2222222222-3333333333

.參數 bios, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.參數 HardDisk, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.參數 MAC, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.子程式 取4段機器碼, 文本型, 公開, 擷取4段23位機器碼,如11111-22222-33333-44444

.參數 bios, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.參數 HardDisk, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.參數 Video, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.參數 MAC, 邏輯型, 可空, 填 假 表示此段全為0,可空,預設為真

.DLL指令 _視窗是否可見, 整數型, "user32", "IsWindowVisible", 公開, 判斷視窗是否可見  如視窗可見則傳回TRUE(非零)

    .參數 視窗句柄, 整數型, , 要測試的那個視窗的句柄

.DLL指令 AdjustTokenPrivileges, 邏輯型, "advapi32.dll", "AdjustTokenPrivileges", 公開

    .參數 TokenHandle, 整數型

    .參數 DisableAllPrivileges, 整數型

    .參數 NewState, , 傳址

    .參數 BufferLength, 整數型

    .參數 PreviousState, , 傳址

    .參數 ReturnLength, 整數型, 傳址

.DLL指令 API_IsDebuggerPresent, 整數型, "kernel32.dll", "IsDebuggerPresent", 公開

.DLL指令 CallNextHookEx, 整數型, "user32.dll", "CallNextHookEx", 公開

    .參數 hhk, 整數型, , 鈎子句柄

    .參數 nCode, 整數型, , 鈎子類型

    .參數 wParam, 整數型

    .參數 LPARAM, 整數型

.DLL指令 CloseHandle, 整數型, "kernel32.dll", "CloseHandle", 公開, 關閉一個核心對象。其中包括檔案、檔案映射、程序、線程、安全和同步對象等。涉及檔案處理時,這個函數通常與vb的close指令相似。應盡可能的使用close,因為它支援vb的差錯控制。注意這個函數使用的檔案句柄與vb的檔案編号是完全不同的  非零表示成功,零表示失敗。會設定GetLastError

    .參數 對象句柄, 整數型, , 欲關閉的一個對象的句柄;

.DLL指令 CreateFileA, 整數型, "kernel32.dll", "CreateFileA", 公開, , 成功傳回檔案句柄,失敗傳回0

    .參數 打開檔案名, 文本型, , lpFileName,要打開的檔案的名字

    .參數 通路權限, 整數型, , dwDesiredAccess,通路權限

    .參數 共享方式, 整數型, , dwShareMode,共享方式

    .參數 安全特性, SECURITY_ATTRIBUTES, 傳址, lpSecurityAttributes,安全特性資訊

    .參數 建立方式, 整數型, , dwCreationDisposition,建立方式

    .參數 檔案屬性, 整數型, , dwFlagsAndAttributes,參見相關幫助

    .參數 從檔案複制檔案屬性, 整數型, , hTemplateFile,參見相關幫助

.DLL指令 CreateProcess, 整數型, "kernel32.dll", "CreateProcessA", 公開, CreateProcess(編輯框1.内容, “”, 0, 0, 0, 4, 0, 取運作目錄(), si, pi)

    .參數 lpApplicationName, 文本型

    .參數 lpCommandLine, 文本型

    .參數 lpProcessAttributes, 整數型

    .參數 lpThreadAttributes, 整數型

    .參數 bInheritHandles, 整數型

    .參數 dwCreationFlags, 整數型, , 0正常,4挂起,3調試,6調試挂起

    .參數 lpEnvironment, 整數型

    .參數 lpCurrentDriectory, 文本型

    .參數 lpStartupInfo, STARTUPINFO, 傳址

    .參數 lpProcessInformation, PROCESS_INFORMATION, 傳址

.DLL指令 CreateRemoteThread, 整數型, "kernel32", "CreateRemoteThread", 公開, 在另一程序中建立線索

    .參數 hProcess, 整數型

    .參數 lpThreadAttributes, 整數型

    .參數 dwStackSize, 整數型

    .參數 lpStartAddress, 整數型

    .參數 lpParameter, 整數型

    .參數 dwCreationFlags, 整數型

    .參數 lpThreadId, 整數型, 傳址

.DLL指令 CreateToolhelp32Snapshot, 整數型, "kernel32.dll", "CreateToolhelp32Snapshot", 公開, 傳回快照後的句柄

    .參數 快照标志, 整數型, , 程序=15,線程=4,DLL=8,堆=

    .參數 程序辨別符, 整數型, , lProcessID 欲照快照的程序辨別符

.DLL指令 DuplicateHandle, 整數型, "kernel32", "DuplicateHandle", 公開, 複制對象句柄

    .參數 hSourceProcessHandle, 整數型

    .參數 hSourceHandle, 整數型

    .參數 hTargetProcessHandle, 整數型

    .參數 lpTargetHandle, 整數型, 傳址

    .參數 dwDesiredAccess, 整數型

    .參數 bInheritHandle, 整數型

    .參數 dwOptions, 整數型

.DLL指令 ExitProcess, 整數型, "kernel32.dll", "ExitProcess", 公開, ,

    .參數 程序句柄, 整數型, , 填0即可

.DLL指令 FindWindow, 整數型, "user32.dll", "FindWindowA", 公開, FindWindow,尋找視窗清單中第一個符合指定條件的頂級視窗

    .參數 視窗類名, 文本型, , lpClassName,參見相關幫助,字元 (0)

    .參數 視窗文本, 文本型, , lpWindowName,參見相關幫助

.DLL指令 GetClassName, 整數型, "user32.dll", "GetClassNameA", 公開, 為指定的視窗取得類名  以位元組數表示的類名長度;排除最後的空中止字元。零表示出錯。會設定GetLastError

    .參數 句柄, 整數型, , 欲獲得類名的那個視窗的句柄

    .參數 文本, 文本型, , 随同類名載入的緩沖區。預先至少必須配置設定nMaxCount+1個字元

    .參數 文本長度, 整數型, , 由lpClassName提供的緩沖區長度;

.DLL指令 GetCurrentProcess, 整數型, "kernel32.dll", "GetCurrentProcess", 公開

.DLL指令 GetCurrentProcessId, 整數型, "kernel32.dll", "GetCurrentProcessId", 公開

.DLL指令 GetExitCodeThread, 整數型, , "GetExitCodeThread", 公開, 取線程傳回值

    .參數 hThread, 整數型

    .參數 lpExitCode, 整數型, 傳址

.DLL指令 GetModuleHandleA, 整數型, "kernel32.dll", "GetModuleHandleA", 公開, , 擷取一個應用程式或動态連結庫的子產品句柄  如執行成功成功,則傳回子產品句柄。零表示失敗。會設定GetLastError

    .參數 lpModuleName, 文本型, , lpModuleName,指定子產品名,這通常是與子產品的檔案名相同的一個名字。例如,NOTEPAD.EXE程式的子產品檔案名就叫作NOTEPAD

.DLL指令 GetProcAddress, 整數型, "kernel32.dll", "GetProcAddress", 公開, ,

    .參數 hModule, 整數型, , hModule

    .參數 lpProcName, 文本型, , lpProcName

.DLL指令 GetThreadContext, 邏輯型, "kernel32", "GetThreadContext", 公開

    .參數 hThreadId, 整數型

    .參數 線程環境, context_

.DLL指令 GetThreadContext1, 邏輯型, "kernel32", "GetThreadContext", 公開

    .參數 線程句柄, 整數型

    .參數 寄存器, 寄存器

.DLL指令 GetWindow, 整數型, "user32", "GetWindow", 公開, 獲得一個視窗的句柄,該視窗與某源視窗有特定的關系  由wCmd決定的一個視窗的句柄。如沒有找到相符視窗,或者遇到錯誤,則傳回零值。會設定GetLastError

    .參數 源視窗, 整數型, , 源視窗

    .參數 關系, 整數型, , 指定結果視窗與源視窗的關系,它們建立在下述常數基礎上:;GW_CHILD:尋找源視窗的第一個子視窗;GW_HWNDFIRST:為一個源子視窗尋找第一個兄弟(同級)視窗,或尋找第一個頂級視窗;GW_HWNDLAST:為一個源子視窗尋找最後一個兄弟(同級)視窗,或尋找最後一個頂級視窗;GW_HWNDNEXT:為源視窗尋找下一個兄弟視窗;GW_HWNDPREV:為源視窗尋找前一個兄弟視窗;GW_OWNER:尋找視窗的所有者;

.DLL指令 GetWindowText, 整數型, "user32.dll", "GetWindowTextA", 公開, 取得一個窗體的标題(caption)文字,或者一個控件的内容(在vb裡使用:使用vb窗體或控件的caption或text屬性)  複制到lpString的字串長度;不包括空中止字元。會設定GetLastError

    .參數 句柄, 整數型, , 欲擷取文字的那個視窗的句柄

    .參數 文本, 文本型, , 預定義的一個緩沖區,至少有cch+1個字元大小;随同視窗文字載入

    .參數 文本長度, 整數型, , lp緩沖區的長度;

.DLL指令 GetWindowTextLength, 整數型, "user32", "GetWindowTextLengthA", 公開, 調查視窗标題文字或控件内容的長短(在vb裡使用:直接使用vb窗體或控件的caption或text屬性)  字串長度,不包括空中止字元

    .參數 hwnd, 整數型, , 想調查文字長度的視窗的句柄;

.DLL指令 GetWindowThreadProcessId, 整數型, "user32.dll", "GetWindowThreadProcessId", 公開, GetWindowThreadProcessId,擷取與指定視窗關聯在一起的一個線程和程序辨別符

    .參數 視窗句柄, 整數型, , hwnd,指定視窗句柄

    .參數 程序辨別符, 整數型, 傳址, lpdwProcessId,指定一個變量,用于裝載擁有那個視窗的一個程序的辨別符

.DLL指令 KillTimer, 整數型, "user32.dll", "KillTimer", 公開

    .參數 視窗句柄, 整數型, , hwnd

    .參數 事件辨別符, 整數型, , nIDEvent

.DLL指令 LoadLibraryA, 整數型, "kernel32.dll", "LoadLibraryA", 公開, , 載入指定的動态連結庫,并将它映射到目前程序使用的位址空間

    .參數 動态連結庫名稱, 文本型, , lpLibFileName,指定要載入的動态連結庫的名稱

.DLL指令 LookupPrivilegeValueA, 邏輯型, "advapi32.dll", "LookupPrivilegeValueA", 公開

    .參數 lpSystemName, 文本型

    .參數 lpName, 文本型

    .參數 lpLuid, LuID, 傳址

.DLL指令 Module32First, 整數型, "kernel32.dll", "Module32First", 公開

    .參數 hSnapshot, 整數型, , hSnapshot

    .參數 子產品程序結構, MODULEENTRY32, 傳址

.DLL指令 Module32Next, 整數型, "kernel32.dll", "Module32Next", 公開

    .參數 hSnapshot, 整數型, , hSnapshot

    .參數 子產品程序結構, MODULEENTRY32, 傳址

.DLL指令 OpenProcess, 整數型, "kernel32.dll", "OpenProcess", 公開, kernel32.dll

    .參數 通路級别, 整數型, , 2035711完全通路

    .參數 子程序繼承, 邏輯型, , 0為子程序繼承

    .參數 程序ID, 整數型, , 要打開的程序辨別

.DLL指令 OpenProcessToken, 整數型, "advapi32.dll", "OpenProcessToken", 公開

    .參數 ProcessHandle, 整數型

    .參數 DesiredAccess, 整數型

    .參數 TokenHandle, 整數型, 傳址

.DLL指令 OpenThread, 整數型, "kernel32.dll", "OpenThread", 公開

    .參數 dwDesiredAccess, 整數型

    .參數 bInheritHandle, 邏輯型

    .參數 dwThreadId, 整數型

.DLL指令 Process32First, 整數型, "kernel32.dll", "Process32First", 公開, 取程序快照第一個程序資訊傳回記憶體指針

    .參數 快照句柄, 整數型

    .參數 程序資訊, 程序資訊

.DLL指令 Process32Next, 整數型, "kernel32.dll", "Process32Next", 公開

    .參數 快照句柄, 整數型

    .參數 程序資訊, 程序資訊

.DLL指令 ReadProcessMemory, 整數型, "kernel32.dll", "ReadProcessMemory", 公開, 在程序中讀記憶體資料 位址1048576

    .參數 程序句柄, 整數型, , 欲讀取的程序句柄(可用OpenProcess函數得到)

    .參數 位址, 整數型, , 讀取的起始位址

    .參數 傳回内容, 位元組集, 傳址, 傳回的資料,其類型可設為整數、文本和位元組集

    .參數 長度, 整數型, , 一次讀取的位元組長度(讀取的位元組數4)

    .參數 實際長度, 整數型, 傳址, 實際讀取的位元組長度

.DLL指令 RegOpenKeyExA, 整數型, , "RegOpenKeyExA", 公開, 打開系統資料庫項

    .參數 hKey, 整數型

    .參數 lpSubKey, 文本型

    .參數 ulOptions, 整數型

    .參數 samDesired, 整數型

    .參數 phkResult, 整數型, 傳址

.DLL指令 ResumeThread, 整數型, "kernel32.dll", "ResumeThread", 公開, 開始暫停的線程

    .參數 線程句柄, 整數型

.DLL指令 RtlMoveMemory, 整數型, , "RtlMoveMemory", 公開

    .參數 lpvDest, 整數型, 傳址

    .參數 lpvSource, 整數型

    .參數 cbCopy, 整數型

.DLL指令 SetThreadContext, 邏輯型, "kernel32", "SetThreadContext", 公開

    .參數 hThreadId, 整數型

    .參數 線程環境, context_

.DLL指令 SetThreadContext1, 邏輯型, "kernel32", "SetThreadContext", 公開

    .參數 線程句柄, 整數型

    .參數 寄存器, 寄存器

.DLL指令 SetTimer, 整數型, "user32.dll", "SetTimer", 公開

    .參數 視窗句柄, 整數型, , hwnd

    .參數 事件辨別符, 整數型, , nIDEvent

    .參數 時鐘周期, 整數型, , uElapse

    .參數 回調函數位址, 整數型, , lpTimerFunc

.DLL指令 SetWindowsHookEx, 整數型, "user32.dll", "SetWindowsHookExA", 公開

    .參數 鈎子類型, 整數型

    .參數 處理函數入口, 整數型

    .參數 函數所在子產品, 整數型

    .參數 目标線程ID, 整數型

.DLL指令 SHFileOperation, 整數型, "Shell32.dll", "SHFileOperationA", 公開

    .參數 檔案參數, SHFILEOPSTRUCT

.DLL指令 SuspendThread, 整數型, , "SuspendThread", 公開

    .參數 線程句柄, 整數型

.DLL指令 TerminateProcess, 整數型, "kernel32.dll", "TerminateProcess", 公開, 成功傳回非零

    .參數 程序句柄, 整數型

    .參數 退出代碼, 整數型, , 傳入0

.DLL指令 TerminateThread, 邏輯型, "kernel32", "TerminateThread", 公開

    .參數 hThread, 整數型

    .參數 dwExitCode, 整數型

.DLL指令 Thread32First, 邏輯型, "kernel32.dll", "Thread32First", 公開

    .參數 hSnapshot, 整數型

    .參數 lpte, THREADENTRY32, 傳址

.DLL指令 Thread32Next, 邏輯型, "kernel32.dll", "Thread32Next", 公開

    .參數 hSnapshot, 整數型

    .參數 lpte, THREADENTRY32, 傳址

.DLL指令 VirtualAllocEx, 整數型, "kernel32.dll", "VirtualAllocEx", 公開, 成功傳回配置設定記憶體的首位址,失敗傳回0

    .參數 hProcess, 整數型, , 申請記憶體所在的程序句柄

    .參數 lpAddress, 整數型, , 填0

    .參數 dwSize, 整數型, , 欲配置設定的記憶體大小

    .參數 flAllocationType, 整數型, , 填4096,MEM_COMMI

    .參數 flProtect, 整數型, , 填64,可讀可寫,可執行 

.DLL指令 VirtualFreeEx, 整數型, "kernel32.dll", "VirtualFreeEx", 公開

    .參數 hProcess, 整數型

    .參數 lpAddress, 整數型

    .參數 dwSize, 整數型, , 填0

    .參數 dwFreeType, 整數型, , 填32768

.DLL指令 VirtualProtect, 整數型, "kernel32.dll", "VirtualProtect", 公開, 成功傳回非0,失敗傳回0

    .參數 起始位址, 整數型, , lpAddress

    .參數 長度, 整數型, , dwSize

    .參數 新保護權限, 整數型, , 可讀寫權限(PAGE_READWRITE)=4;PAGE_EXECUTE_READWRITE=64

    .參數 舊保護權限, 整數型, 傳址, 儲存舊屬性的結構變量位址

.DLL指令 VirtualProtectEx, 整數型, "kernel32.dll", "VirtualProtectEx", 公開, 成功傳回非0,失敗傳回0

    .參數 hprocess, 整數型, , 要修改記憶體的程序句柄  

    .參數 起始位址, 整數型, , lpAddress

    .參數 長度, 整數型, , dwSize

    .參數 新保護權限, 整數型, , 可讀寫權限(PAGE_READWRITE)=4

    .參數 舊保護權限, 整數型, 傳址, 儲存舊屬性的結構變量位址

.DLL指令 VirtualQueryEx, 整數型, "kernel32.dll", "VirtualQueryEx", 公開

    .參數 hProcess, 整數型

    .參數 lpAddress, 整數型

    .參數 info, MEMORY_BASIC_INFORMATION, 傳址

    .參數 dwLength, 整數型

.DLL指令 VMProtectBegin, , "VMProtectSDK32.lib", "[email protected]", 公開, 功能:設定開始标記

    .參數 MarkerName, 文本型, 傳址, 标記名

.DLL指令 VMProtectBeginMutation, , "VMProtectSDK32.lib", "[email protected]", 公開, 功能:設定[變異]标記

    .參數 MarkerName, 文本型, 傳址, 标記名

.DLL指令 VMProtectBeginUltra, , "VMProtectSDK32.lib", "[email protected]", 公開, 功能:設定[虛拟+變異]标記

    .參數 MarkerName, 文本型, 傳址

.DLL指令 VMProtectBeginUltraLockByKey, , "VMProtectSDK32.lib", "[email protected]", 公開

    .參數 MarkerName, 文本型, 傳址, 标記名

.DLL指令 VMProtectBeginVirtualization, , "VMProtectSDK32.lib", "[email protected]", 公開, 功能:設定[虛拟]标記

    .參數 MarkerName, 文本型, 傳址, 标記名

.DLL指令 VMProtectBeginVirtualizationLockByKey, , "VMProtectSDK32.lib", "[email protected]", 公開

    .參數 MarkerName, 文本型, 傳址

.DLL指令 VMProtectDecryptStringA, 整數型, "VMProtectSDK32.lib", "[email protected]", 公開, 功能:加密Ansi字元串常量,傳回加密後的字元串指針

    .參數 char, 文本型, 傳址, 提供Ansi字元串常量

.DLL指令 VMProtectDecryptStringW, 整數型, "VMProtectSDK32.lib", "[email protected]", 公開, 功能:加Unicode字元串,傳回加密後的字元串指針

    .參數 wchar_t, 文本型, 傳址, 提供Unicode字元串常量

.DLL指令 VMProtectEnd, , "VMProtectSDK32.lib", "[email protected]", 公開, 功能:設定與虛拟/變異等功能配對的結束标記

.DLL指令 VMProtectIsDebuggerPresent, 邏輯型, "VMProtectSDK32.lib", "[email protected]", 公開, 功能:檢測調試器是否存在

    .參數 CheckKernelMode, 邏輯型, , 是否檢測KernelMode調試器.為假,則檢測user-mode調試器,例如OllyDBG, WinDBG等..為真,則同時檢測user-mode和KernelMode(包括SoftICE, Syser等...)調試器,

.DLL指令 VMProtectIsValidImageCRC, 邏輯型, "VMProtectSDK32.lib", "[email protected]", 公開, 功能:檢測程式記憶體沒有沒有被改變

.DLL指令 VMProtectIsVirtualMachinePresent, 邏輯型, "VMProtectSDK32.lib", "[email protected]", 公開, 功能:檢測程式是否運作在虛拟機,比如VMware, Virtual PC, VirtualBox, Sandboxie等...

.DLL指令 WaitForSingleObject, 整數型, "kernel32.dll", "WaitForSingleObject", 公開

    .參數 hHandle, 整數型

    .參數 dwMilliseconds, 整數型, , 填-1

.DLL指令 WriteProcessMemory, 邏輯型, "kernel32.dll", "WriteProcessMemory", 公開

    .參數 程序句柄, 整數型

    .參數 開始寫入進址, 整數型, , 記憶體位址

    .參數 寫入數值資料, 位元組集, 傳址, 資料指針

    .參數 寫入長度, 整數型, , 長度

    .參數 實際寫入長度, 整數型, , 實際寫出長度0

.DLL指令 取文本指針, 整數型, "kernel32", "lstrcpyn", 公開, 感謝海洋老師的例程

    .參數 變量, , 傳址, 一定要傳址

    .參數 變量, , 傳址, 一定要傳址.重複一次,騙騙Windows:)

    .參數 保留, 整數型, , 0

.圖檔 SE_PROTECT_END, 公開, 置入代碼 (#SE_PROTECT_END)'結束标記

.圖檔 SE_PROTECT_START, 公開, 置入代碼 (#SE_PROTECT_START)'預設保護

.圖檔 SE_PROTECT_START_MUTATION, 公開, 置入代碼 (#SE_PROTECT_START_MUTATION)'亂序變形

.圖檔 SE_PROTECT_START_ULTRA, 公開, 置入代碼 (#SE_PROTECT_START_ULTRA)'亂序+虛拟

.圖檔 SE_PROTECT_START_VIRTUALIZATION, 公開, 置入代碼 (#SE_PROTECT_START_VIRTUALIZATION)'虛拟

.圖檔 SE_UNPROTECT_END, 公開, 置入代碼 (#SE_UNPROTECT_END)'屏蔽特定代碼的亂序和混淆

.圖檔 SE_UNPROTECT_START, 公開, 置入代碼 (#SE_UNPROTECT_START)'屏蔽特定代碼的亂序和混淆

.圖檔 VMProtect_Begin, 公開, 置入代碼 (#VMProtect_Begin) 'VMP保護開始标志

.圖檔 VMProtect_End, 公開, 置入代碼 (#VMProtect_End) 'VMP保護結束标志

編譯好的子產品(V5.11編譯)以及源代碼下載下傳:

http://download.csdn.net/detail/sunflover454/9136129

繼續閱讀