怎么在易語(yǔ)言中實(shí)現(xiàn)反OD調(diào)試反復(fù)附加?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)2013年至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元荔波做網(wǎng)站,已為上家服務(wù),為荔波各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):13518219792
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)鏈接庫(kù)的模塊句柄 如執(zhí)行成功成功,則返回模塊句柄。零表示失敗。會(huì)設(shè)置GetLastError .參數(shù) 模塊名, 文本型, , 指定模塊名,這通常是與模塊的文件名相同的一個(gè)名字。例如,NOTEPAD.EXE程序的模塊文件名就叫作NOTEPAD; .DLL命令 _枚舉窗口, 邏輯型, , "EnumWindows" .參數(shù) 枚舉過(guò)程, 子程序指針 .參數(shù) 參數(shù), 整數(shù)型 .DLL命令 _窗口是否可見(jiàn), 邏輯型, , "IsWindowVisible", , 判斷窗口是否可見(jiàn) 如窗口可見(jiàn)則返回TRUE(非零) .參數(shù) 窗口句柄, 整數(shù)型, , 要測(cè)試的那個(gè)窗口的句柄 .DLL命令 GetWindowText, 整數(shù)型, , "GetWindowTextA" .參數(shù) 句柄, 整數(shù)型, , 欲獲取文字的那個(gè)窗口的句柄 .參數(shù) 文本, 文本型, , 預(yù)定義的一個(gè)緩沖區(qū),至少有cch+1個(gè)字符大?。浑S同窗口文字載入 .參數(shù) 文本長(zhǎng)度, 整數(shù)型, , lp緩沖區(qū)的長(zhǎng)度; .DLL命令 GetClassName, 整數(shù)型, , "GetClassNameA" .參數(shù) 句柄, 整數(shù)型, , 欲獲得類(lèi)名的那個(gè)窗口的句柄 .參數(shù) 文本, 文本型, , 隨同類(lèi)名載入的緩沖區(qū)。預(yù)先至少必須分配nMaxCount+1個(gè)字符 .參數(shù) 文本長(zhǎng)度, 整數(shù)型, , 由lpClassName提供的緩沖區(qū)長(zhǎng)度; .DLL命令 _取窗口進(jìn)程ID, 整數(shù)型, , "GetWindowThreadProcessId", , user32.dll獲取與指定窗口關(guān)聯(lián)在一起的一個(gè)線(xiàn)程和進(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ù)類(lèi)型
.版本 2 .數(shù)據(jù)類(lèi)型 PROCESS_BASIC_INFORMATION .成員 ExitStatus, 整數(shù)型 .成員 PebBaseAddress, 整數(shù)型 .成員 AffinityMask, 整數(shù)型 .成員 BasePriority, 整數(shù)型 .成員 UniqueProcessId, 整數(shù)型 .成員 InheritedFromUniqueProcessId, 整數(shù)型 .數(shù)據(jù)類(lèi)型 窗口信息型, , 枚舉窗口信息 .成員 窗口句柄, 整數(shù)型, 傳址 .成員 進(jìn)程ID, 整數(shù)型, 傳址 .成員 線(xiàn)程ID, 整數(shù)型, 傳址 .成員 窗口類(lèi)名, 文本型 .成員 窗口標(biāo)題, 文本型
反OD調(diào)試反復(fù)附加的代碼
.版本 2 .支持庫(kù) eAPI .支持庫(kù) 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, 取文本長(zhǎng)度 (Path) - 倒找文本 (Path, “\”, , 假)) 反OD附加 () .如果真 (文件名 ≠ “explorer.exe”) 信息框 (“非法運(yùn)行環(huán)境”, #錯(cuò)誤圖標(biāo), ) addr = 取函數(shù)地址 (取模塊句柄 (“ntdll.dll”), “DbgBreakPoint”) 終止進(jìn)程 (取句柄2 ()) 結(jié)束自身 () .如果真結(jié)束 .子程序 反OD附加, , , hook .局部變量 寫(xiě)入字節(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 寫(xiě)入字節(jié)集 = { 233 } + 到字節(jié)集 (t) 寫(xiě)到內(nèi)存 (寫(xiě)入字節(jié)集, addr, 8) .子程序 DbgBreakPoint, 整數(shù)型, , 被hook .局部變量 寫(xiě)入字節(jié)集, 字節(jié)集 .局部變量 t .局部變量 ret, 整數(shù)型 .如果真 (取字節(jié)集長(zhǎng)度 (dadt) > 0) 寫(xiě)到內(nèi)存 (dadt, addr, ) .如果真結(jié)束 終止進(jìn)程 (取句柄2 ()) 結(jié)束自身 () t = 取子程序真實(shí)地址 (&DbgBreakPoint) - addr - 5 寫(xiě)入字節(jié)集 = { 233 } + 到字節(jié)集 (t) 寫(xiě)到內(nèi)存 (寫(xiě)入字節(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ù)組, 枚舉出來(lái)的窗口信息數(shù)組 _枚舉窗口 (&窗口信息回調(diào)函數(shù), 0) 臨時(shí)窗口信息 = 當(dāng)前窗口信息 清除數(shù)組 (當(dāng)前窗口信息) 返回 (取數(shù)組成員數(shù) (臨時(shí)窗口信息)) .子程序 窗口信息回調(diào)函數(shù) .參數(shù) hwd, 整數(shù)型 .局部變量 窗口標(biāo)題, 文本型 .局部變量 窗口類(lèi)名, 文本型 .局部變量 局_進(jìn)程ID, 整數(shù)型 .局部變量 線(xiàn)程ID, 整數(shù)型 .局部變量 臨時(shí)窗口信息, 窗口信息型 .如果真 (_窗口是否可見(jiàn) (hwd)) 窗口標(biāo)題 = 取空白文本 (256) 窗口類(lèi)名 = 取空白文本 (256) GetWindowText (hwd, 窗口標(biāo)題, 255) GetClassName (hwd, 窗口類(lèi)名, 255) 線(xiàn)程ID = _取窗口進(jìn)程ID (hwd, 局_進(jìn)程ID) 臨時(shí)窗口信息.進(jìn)程ID = 局_進(jìn)程ID 臨時(shí)窗口信息.線(xiàn)程ID = 線(xiàn)程ID 臨時(shí)窗口信息.窗口句柄 = hwd 臨時(shí)窗口信息.窗口類(lèi)名 = 窗口類(lèi)名 臨時(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-8 a = 申請(qǐng)內(nèi)存 (512, 假) + 100 + 512 + 10000 b = addr + 10000 寫(xiě)到內(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 })
看完上述內(nèi)容,你們掌握怎么在易語(yǔ)言中實(shí)現(xiàn)反OD調(diào)試反復(fù)附加的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章名稱(chēng):怎么在易語(yǔ)言中實(shí)現(xiàn)反OD調(diào)試反復(fù)附加
當(dāng)前網(wǎng)址:http://www.rwnh.cn/article34/jddise.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、虛擬主機(jī)、商城網(wǎng)站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)