DLL命令表
.版本 2.DLL命令 ZwQueryInformationProcess, 整數(shù)型, "NTDLL.DLL" .參數(shù) ProcessHandle, 整數(shù)型 .參數(shù) ProcessInformationClass, 整數(shù)型 .參數(shù) ProcessInformation, PROCESS_BASIC_INFORMATION .參數(shù) ProcessInformationLength, 整數(shù)型 .參數(shù) ReturnLength, 整數(shù)型, 傳址.DLL命令 OpenProcess, 整數(shù)型, "kernel32.dll", "OpenProcess" .參數(shù) dwDesiredAccess, 整數(shù)型 .參數(shù) bInheritHandle, 整數(shù)型 .參數(shù) dwProcessId, 整數(shù)型.DLL命令 CloseHandle, 整數(shù)型, , "CloseHandle" .參數(shù) hwnd, 整數(shù)型.DLL命令 GetProcessImageFileNameA, , "Psapi.dll", "GetProcessImageFileNameA" .參數(shù) ProcessHandle, 整數(shù)型 .參數(shù) lpFilename, 文本型 .參數(shù) nSize, 整數(shù)型.DLL命令 修改虛擬保護, 整數(shù)型, "kernel32", "VirtualProtect", , 修改虛擬保護 .參數(shù) lpAddress, 整數(shù)型 .參數(shù) dwSize, 整數(shù)型 .參數(shù) flNewProtect, 整數(shù)型 .參數(shù) lpflOldProtect, 整數(shù)型, 傳址.DLL命令 取函數(shù)地址, 整數(shù)型, "kernel32", "GetProcAddress", , 返回函數(shù)地址 .參數(shù) 模塊句柄, 整數(shù)型 .參數(shù) 函數(shù)名, 文本型.DLL命令 取模塊句柄, 整數(shù)型, "kernel32", "GetModuleHandleA", , 獲取一個應(yīng)用程序或動態(tài)鏈接庫的模塊句柄 如執(zhí)行成功成功,則返回模塊句柄。零表示失敗。會設(shè)置GetLastError .參數(shù) 模塊名, 文本型, , 指定模塊名,這通常是與模塊的文件名相同的一個名字。例如,NOTEPAD.EXE程序的模塊文件名就叫作NOTEPAD;.DLL命令 _枚舉窗口, 邏輯型, , "EnumWindows" .參數(shù) 枚舉過程, 子程序指針 .參數(shù) 參數(shù), 整數(shù)型.DLL命令 _窗口是否可見, 邏輯型, , "IsWindowVisible", , 判斷窗口是否可見 如窗口可見則返回TRUE(非零) .參數(shù) 窗口句柄, 整數(shù)型, , 要測試的那個窗口的句柄.DLL命令 GetWindowText, 整數(shù)型, , "GetWindowTextA" .參數(shù) 句柄, 整數(shù)型, , 欲獲取文字的那個窗口的句柄 .參數(shù) 文本, 文本型, , 預(yù)定義的一個緩沖區(qū),至少有cch+1個字符大小;隨同窗口文字載入 .參數(shù) 文本長度, 整數(shù)型, , lp緩沖區(qū)的長度; .DLL命令 GetClassName, 整數(shù)型, , "GetClassNameA" .參數(shù) 句柄, 整數(shù)型, , 欲獲得類名的那個窗口的句柄 .參數(shù) 文本, 文本型, , 隨同類名載入的緩沖區(qū)。預(yù)先至少必須分配nMaxCount+1個字符 .參數(shù) 文本長度, 整數(shù)型, , 由lpClassName提供的緩沖區(qū)長度;.DLL命令 _取窗口進程ID, 整數(shù)型, , "GetWindowThreadProcessId", , user32.dll獲取與指定窗口關(guān)聯(lián)在一起的一個線程和進程標(biāo)識符 .參數(shù) 窗口句柄, 整數(shù)型, , hwnd,指定窗口句柄 .參數(shù) 進程標(biāo)識符, 整數(shù)型, 傳址, lpdwProcessId,指定一個變量,用于裝載擁有那個窗口的一個進程的標(biāo)識符
自定義數(shù)據(jù)類型
.版本 2.數(shù)據(jù)類型 PROCESS_BASIC_INFORMATION .成員 ExitStatus, 整數(shù)型 .成員 PebBaseAddress, 整數(shù)型 .成員 AffinityMask, 整數(shù)型 .成員 BasePriority, 整數(shù)型 .成員 UniqueProcessId, 整數(shù)型 .成員 InheritedFromUniqueProcessId, 整數(shù)型.數(shù)據(jù)類型 窗口信息型, , 枚舉窗口信息 .成員 窗口句柄, 整數(shù)型, 傳址 .成員 進程ID, 整數(shù)型, 傳址 .成員 線程ID, 整數(shù)型, 傳址 .成員 窗口類名, 文本型 .成員 窗口標(biāo)題, 文本型
反OD調(diào)試反復(fù)附加的代碼
.版本 2.支持庫 eAPI.支持庫 spec.程序集 窗口程序集1.程序集變量 addr, 整數(shù)型.程序集變量 dadt, 字節(jié)集.程序集變量 當(dāng)前窗口信息, 窗口信息型, , "16".子程序 __啟動窗口_創(chuàng)建完畢反OD調(diào)試 ()反OD附加 ().子程序 反OD調(diào)試, , , 取運行環(huán)境.局部變量 Path, 文本型.局部變量 hProcess, 整數(shù)型.局部變量 Info, PROCESS_BASIC_INFORMATION.局部變量 文件名, 文本型ZwQueryInformationProcess (-1, 0, Info, 24, 0)hProcess = OpenProcess (1040, 0, Info.InheritedFromUniqueProcessId)Path = 取空白文本 (4096)GetProcessImageFileNameA (hProcess, Path, 4096)CloseHandle (hProcess)文件名 = 取文本右邊 (Path, 取文本長度 (Path) - 倒找文本 (Path, “/”, , 假))反OD附加 ().如果真 (文件名 ≠ “explorer.exe”) 信息框 (“非法運行環(huán)境”, #錯誤圖標(biāo), ) addr = 取函數(shù)地址 (取模塊句柄 (“ntdll.dll”), “DbgBreakPoint”) 終止進程 (取句柄2 ()) 結(jié)束自身 ().如果真結(jié)束.子程序 反OD附加, , , hook.局部變量 寫入字節(jié)集, 字節(jié)集.局部變量 t.如果真 (addr = 0) addr = 取函數(shù)地址 (取模塊句柄 (“ntdll.dll”), “DbgBreakPoint”) 修改虛擬保護 (addr, 8, 64, 0).如果真結(jié)束dadt = 指針到字節(jié)集 (addr, 8)t = 取子程序真實地址 (&DbgBreakPoint) - addr - 5寫入字節(jié)集 = { 233 } + 到字節(jié)集 (t)寫到內(nèi)存 (寫入字節(jié)集, addr, 8).子程序 DbgBreakPoint, 整數(shù)型, , 被hook.局部變量 寫入字節(jié)集, 字節(jié)集.局部變量 t.局部變量 ret, 整數(shù)型.如果真 (取字節(jié)集長度 (dadt) > 0) 寫到內(nèi)存 (dadt, addr, ).如果真結(jié)束終止進程 (取句柄2 ())結(jié)束自身 ()t = 取子程序真實地址 (&DbgBreakPoint) - addr - 5寫入字節(jié)集 = { 233 } + 到字節(jié)集 (t)寫到內(nèi)存 (寫入字節(jié)集, addr, 8)返回 (ret).子程序 取句柄2, 整數(shù)型.局部變量 窗口列表, 窗口信息型, , "0".局部變量 i, 整數(shù)型.計次循環(huán)首 (枚舉窗口信息 (窗口列表), i) .如果真 (尋找文本 (窗口列表 [i].窗口標(biāo)題, “[LCG”, , 假) ≠ -1) ' 取OD特征碼,后續(xù)自己添加并加密 返回 (窗口列表 [i].進程ID) .如果真結(jié)束.計次循環(huán)尾 ()返回 (-1).子程序 枚舉窗口信息, 整數(shù)型.參數(shù) 臨時窗口信息, 窗口信息型, 數(shù)組, 枚舉出來的窗口信息數(shù)組_枚舉窗口 (&窗口信息回調(diào)函數(shù), 0)臨時窗口信息 = 當(dāng)前窗口信息清除數(shù)組 (當(dāng)前窗口信息)返回 (取數(shù)組成員數(shù) (臨時窗口信息)).子程序 窗口信息回調(diào)函數(shù).參數(shù) hwd, 整數(shù)型.局部變量 窗口標(biāo)題, 文本型.局部變量 窗口類名, 文本型.局部變量 局_進程ID, 整數(shù)型.局部變量 線程ID, 整數(shù)型.局部變量 臨時窗口信息, 窗口信息型.如果真 (_窗口是否可見 (hwd)) 窗口標(biāo)題 = 取空白文本 (256) 窗口類名 = 取空白文本 (256) GetWindowText (hwd, 窗口標(biāo)題, 255) GetClassName (hwd, 窗口類名, 255) 線程ID = _取窗口進程ID (hwd, 局_進程ID) 臨時窗口信息.進程ID = 局_進程ID 臨時窗口信息.線程ID = 線程ID 臨時窗口信息.窗口句柄 = hwd 臨時窗口信息.窗口類名 = 窗口類名 臨時窗口信息.窗口標(biāo)題 = 窗口標(biāo)題 加入成員 (當(dāng)前窗口信息, 臨時窗口信息).如果真結(jié)束.子程序 取子程序真實地址, 整數(shù)型.參數(shù) 子程序指針, 子程序指針置入代碼 ({ 83, 81, 139, 69, 8, 64, 139, 8, 128, 249, 232, 117, 248, 139, 72, 1, 141, 92, 8, 5, 139, 11, 193, 225, 8, 129, 249, 0, 85, 139, 236, 141, 64, 4, 117, 225, 139, 195, 89, 91, 201, 194, 4, 0 })返回 (0).子程序 結(jié)束自身, , , 取模塊所在進程,然后殺掉.局部變量 a, 整數(shù)型, , , ebp-4.局部變量 b, 整數(shù)型, , , ebp-8a = 申請內(nèi)存 (512, 假) + 100 + 512 + 10000b = addr + 10000寫到內(nèi)存 (-277, a, )置入代碼 ({ 139, 69, 248, 45, 16, 39, 0, 0, 139, 125, 252, 51, 201, 51, 237, 51, 246, 51, 210, 51, 219, 129, 239, 16, 39, 0, 0, 139, 231, 131, 196, 100, 106, 0, 106, 255, 129, 239, 0, 2, 0, 0, 87, 51, 255, 106, 0, 137, 4, 36, 195 })
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對VeVb武林網(wǎng)的支持。
新聞熱點
疑難解答