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命令 修改虛擬保護(hù), 整數(shù)型, "kernel32", "VirtualProtect", , 修改虛擬保護(hù) .參數(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", , 獲取一個(gè)應(yīng)用程序或動(dòng)態(tài)鏈接庫的模塊句柄 如執(zhí)行成功成功,則返回模塊句柄。零表示失敗。會(huì)設(shè)置GetLastError .參數(shù) 模塊名, 文本型, , 指定模塊名,這通常是與模塊的文件名相同的一個(gè)名字。例如,NOTEPAD.EXE程序的模塊文件名就叫作NOTEPAD;.DLL命令 _枚舉窗口, 邏輯型, , "EnumWindows" .參數(shù) 枚舉過程, 子程序指針 .參數(shù) 參數(shù), 整數(shù)型.DLL命令 _窗口是否可見, 邏輯型, , "IsWindowVisible", , 判斷窗口是否可見 如窗口可見則返回TRUE(非零) .參數(shù) 窗口句柄, 整數(shù)型, , 要測(cè)試的那個(gè)窗口的句柄.DLL命令 GetWindowText, 整數(shù)型, , "GetWindowTextA" .參數(shù) 句柄, 整數(shù)型, , 欲獲取文字的那個(gè)窗口的句柄 .參數(shù) 文本, 文本型, , 預(yù)定義的一個(gè)緩沖區(qū),至少有cch+1個(gè)字符大小;隨同窗口文字載入 .參數(shù) 文本長度, 整數(shù)型, , lp緩沖區(qū)的長度; .DLL命令 GetClassName, 整數(shù)型, , "GetClassNameA" .參數(shù) 句柄, 整數(shù)型, , 欲獲得類名的那個(gè)窗口的句柄 .參數(shù) 文本, 文本型, , 隨同類名載入的緩沖區(qū)。預(yù)先至少必須分配nMaxCount+1個(gè)字符 .參數(shù) 文本長度, 整數(shù)型, , 由lpClassName提供的緩沖區(qū)長度;.DLL命令 _取窗口進(jìn)程ID, 整數(shù)型, , "GetWindowThreadProcessId", , user32.dll獲取與指定窗口關(guān)聯(lián)在一起的一個(gè)線程和進(jìn)程標(biāo)識(shí)符 .參數(shù) 窗口句柄, 整數(shù)型, , hwnd,指定窗口句柄 .參數(shù) 進(jìn)程標(biāo)識(shí)符, 整數(shù)型, 傳址, lpdwProcessId,指定一個(gè)變量,用于裝載擁有那個(gè)窗口的一個(gè)進(jìn)程的標(biāo)識(shí)符
自定義數(shù)據(jù)類型
.版本 2.數(shù)據(jù)類型 PROCESS_BASIC_INFORMATION .成員 ExitStatus, 整數(shù)型 .成員 PebBaseAddress, 整數(shù)型 .成員 AffinityMask, 整數(shù)型 .成員 BasePriority, 整數(shù)型 .成員 UniqueProcessId, 整數(shù)型 .成員 InheritedFromUniqueProcessId, 整數(shù)型.數(shù)據(jù)類型 窗口信息型, , 枚舉窗口信息 .成員 窗口句柄, 整數(shù)型, 傳址 .成員 進(jìn)程ID, 整數(shù)型, 傳址 .成員 線程ID, 整數(shù)型, 傳址 .成員 窗口類名, 文本型 .成員 窗口標(biāo)題, 文本型
反OD調(diào)試反復(fù)附加的代碼
.版本 2.支持庫 eAPI.支持庫 spec.程序集 窗口程序集1.程序集變量 addr, 整數(shù)型.程序集變量 dadt, 字節(jié)集.程序集變量 當(dāng)前窗口信息, 窗口信息型, , "16".子程序 __啟動(dòng)窗口_創(chuàng)建完畢反OD調(diào)試 ()反OD附加 ().子程序 反OD調(diào)試, , , 取運(yùn)行環(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”) 信息框 (“非法運(yùn)行環(huán)境”, #錯(cuò)誤圖標(biāo), ) addr = 取函數(shù)地址 (取模塊句柄 (“ntdll.dll”), “DbgBreakPoint”) 終止進(jìn)程 (取句柄2 ()) 結(jié)束自身 ().如果真結(jié)束.子程序 反OD附加, , , hook.局部變量 寫入字節(jié)集, 字節(jié)集.局部變量 t.如果真 (addr = 0) addr = 取函數(shù)地址 (取模塊句柄 (“ntdll.dll”), “DbgBreakPoint”) 修改虛擬保護(hù) (addr, 8, 64, 0).如果真結(jié)束dadt = 指針到字節(jié)集 (addr, 8)t = 取子程序真實(shí)地址 (&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é)束終止進(jìn)程 (取句柄2 ())結(jié)束自身 ()t = 取子程序真實(shí)地址 (&DbgBreakPoint) - addr - 5寫入字節(jié)集 = { 233 } + 到字節(jié)集 (t)寫到內(nèi)存 (寫入字節(jié)集, addr, 8)返回 (ret).子程序 取句柄2, 整數(shù)型.局部變量 窗口列表, 窗口信息型, , "0".局部變量 i, 整數(shù)型.計(jì)次循環(huán)首 (枚舉窗口信息 (窗口列表), i) .如果真 (尋找文本 (窗口列表 [i].窗口標(biāo)題, “[LCG”, , 假) ≠ -1) ' 取OD特征碼,后續(xù)自己添加并加密 返回 (窗口列表 [i].進(jìn)程ID) .如果真結(jié)束.計(jì)次循環(huán)尾 ()返回 (-1).子程序 枚舉窗口信息, 整數(shù)型.參數(shù) 臨時(shí)窗口信息, 窗口信息型, 數(shù)組, 枚舉出來的窗口信息數(shù)組_枚舉窗口 (&窗口信息回調(diào)函數(shù), 0)臨時(shí)窗口信息 = 當(dāng)前窗口信息清除數(shù)組 (當(dāng)前窗口信息)返回 (取數(shù)組成員數(shù) (臨時(shí)窗口信息)).子程序 窗口信息回調(diào)函數(shù).參數(shù) hwd, 整數(shù)型.局部變量 窗口標(biāo)題, 文本型.局部變量 窗口類名, 文本型.局部變量 局_進(jìn)程ID, 整數(shù)型.局部變量 線程ID, 整數(shù)型.局部變量 臨時(shí)窗口信息, 窗口信息型.如果真 (_窗口是否可見 (hwd)) 窗口標(biāo)題 = 取空白文本 (256) 窗口類名 = 取空白文本 (256) GetWindowText (hwd, 窗口標(biāo)題, 255) GetClassName (hwd, 窗口類名, 255) 線程ID = _取窗口進(jìn)程ID (hwd, 局_進(jìn)程ID) 臨時(shí)窗口信息.進(jìn)程ID = 局_進(jìn)程ID 臨時(shí)窗口信息.線程ID = 線程ID 臨時(shí)窗口信息.窗口句柄 = hwd 臨時(shí)窗口信息.窗口類名 = 窗口類名 臨時(shí)窗口信息.窗口標(biāo)題 = 窗口標(biāo)題 加入成員 (當(dāng)前窗口信息, 臨時(shí)窗口信息).如果真結(jié)束.子程序 取子程序真實(shí)地址, 整數(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é)束自身, , , 取模塊所在進(jìn)程,然后殺掉.局部變量 a, 整數(shù)型, , , ebp-4.局部變量 b, 整數(shù)型, , , ebp-8a = 申請(qǐng)內(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)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VeVb武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答