亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IDA6.8F5結果不正確

2019-11-10 17:08:15
字體:
來源:轉載
供稿:網友

前言

因為IDA F5偽碼編譯不過, 才手工翻譯. 手工翻譯時, 發現有個函數, IDA翻譯的邏輯都錯了(一定會調用的函數都漏掉了), 渣啊. 這多大一個坑啊…, 最基本的信任都沒了. 即時是F5有優化, 那也應該是函數級別的優化, 哪能將函數調用搞沒了. 用的IDA6.8正版.

記錄

反匯編代碼

.text:00011086 HookPRoc_ZwQueryDirectoryFile_11086 proc near.text:00011086 ; DATA XREF: MainProc_114D2+15Eo.text:00011086.text:00011086 var_28 = dWord ptr -28h.text:00011086 var_24 = dword ptr -24h.text:00011086 var_20 = dword ptr -20h.text:00011086 var_1C = dword ptr -1Ch.text:00011086 szSystemProcessName= byte ptr -18h.text:00011086 var_4 = dword ptr -4.text:00011086 arg_0 = dword ptr 8.text:00011086 arg_4 = dword ptr 0Ch.text:00011086 arg_8 = dword ptr 10h.text:00011086 arg_C = dword ptr 14h.text:00011086 arg_10 = dword ptr 18h.text:00011086 arg_14 = dword ptr 1Ch.text:00011086 arg_18 = dword ptr 20h.text:00011086 arg_1C = dword ptr 24h.text:00011086 arg_20 = dword ptr 28h.text:00011086 arg_24 = dword ptr 2Ch.text:00011086 arg_28 = dword ptr 30h.text:00011086.text:00011086 mov edi, edi.text:00011088 push ebp.text:00011089 mov ebp, esp.text:0001108B sub esp, 28h.text:0001108E mov eax, BugCheckParameter2.text:00011093 xor eax, ebp.text:00011095 mov [ebp+var_4], eax.text:00011098 mov eax, [ebp+arg_C].text:0001109B mov [ebp+var_20], eax.text:0001109E mov eax, [ebp+arg_10].text:000110A1 mov [ebp+var_1C], eax.text:000110A4 mov eax, [ebp+arg_14].text:000110A7 push ebx.text:000110A8 mov ebx, [ebp+arg_8].text:000110AB mov [ebp+var_28], eax.text:000110AE mov eax, [ebp+arg_24].text:000110B1 push esi.text:000110B2 mov esi, [ebp+arg_0].text:000110B5 push edi.text:000110B6 mov edi, [ebp+arg_4].text:000110B9 mov [ebp+var_24], eax.text:000110BC lea eax, [ebp+szSystemProcessName].text:000110BF push eax ; char *.text:000110C0 call GetSystemProcessName_11044.text:000110C5 lea eax, [ebp+szSystemProcessName].text:000110C8 push eax.text:000110C9 push offset Format ; "Rootkit: NewZwQueryDirectoryFile() from"....text:000110CE call DbgPrint.text:000110D3 pop ecx.text:000110D4 pop ecx.text:000110D5 push [ebp+arg_28] ; _DWORD.text:000110D8 push [ebp+var_24] ; _DWORD.text:000110DB push [ebp+arg_20] ; _DWORD.text:000110DE push [ebp+arg_1C] ; _DWORD.text:000110E1 push [ebp+arg_18] ; _DWORD.text:000110E4 push [ebp+var_28] ; _DWORD.text:000110E7 push [ebp+var_1C] ; _DWORD.text:000110EA push [ebp+var_20] ; _DWORD.text:000110ED push ebx ; _DWORD.text:000110EE push edi ; _DWORD.text:000110EF push esi ; _DWORD.text:000110F0 call g_dwOrgZwQueryDirectoryFile_dword_13090.text:000110F6 mov ebx, eax.text:000110F8 test ebx, ebx.text:000110FA jl short loc_11142.text:000110FC mov eax, [ebp+arg_1C].text:000110FF cmp eax, 1.text:00011102 jz short loc_1111D.text:00011104 cmp eax, 2.text:00011107 jz short loc_1111D.text:00011109 cmp eax, 26h.text:0001110C jz short loc_1111D.text:0001110E cmp eax, 3.text:00011111 jz short loc_1111D.text:00011113 cmp eax, 25h.text:00011116 jz short loc_1111D.text:00011118 cmp eax, 0Ch.text:0001111B jnz short loc_11142.text:0001111D.text:0001111D loc_1111D: ; CODE XREF: HookProc_ZwQueryDirectoryFile_11086+7Cj.text:0001111D ; HookProc_ZwQueryDirectoryFile_11086+81j ....text:0001111D push 9.text:0001111F pop ecx.text:00011120 mov edi, offset aCdpassssp ; "cdPassssp".text:00011125 lea esi, [ebp+szSystemProcessName].text:00011128 xor eax, eax.text:0001112A repe cmpsb.text:0001112C jz short loc_11133.text:0001112E sbb eax, eax.text:00011130 sbb eax, 0FFFFFFFFh.text:00011133.text:00011133 loc_11133: ; CODE XREF: HookProc_ZwQueryDirectoryFile_11086+A6j.text:00011133 test eax, eax.text:00011135 jnz short loc_11142.text:00011137 push offset aRootkitDetecte ; "Rootkit: detected file/directory query "....text:0001113C call DbgPrint.text:00011141 pop ecx.text:00011142.text:00011142 loc_11142: ; CODE XREF: HookProc_ZwQueryDirectoryFile_11086+74j.text:00011142 ; HookProc_ZwQueryDirectoryFile_11086+95j ....text:00011142 mov ecx, [ebp+var_4].text:00011145 pop edi.text:00011146 pop esi.text:00011147 mov eax, ebx.text:00011149 xor ecx, ebp.text:0001114B pop ebx.text:0001114C call MakeBSOD.text:00011151 leave.text:00011152 retn 2Ch.text:00011152 HookProc_ZwQueryDirectoryFile_11086 endp

IDA F5結果

目標函數最后會調用MakeBSOD, 但是調用MakeBSOD的2個函數, IDA都搞錯了. 我有點明白了, MakeBSOD函數寫法不是標準寫法, 是經過殼處理的, IDA分析錯了. MakeBSOD直接F5, 結果是對的. 但是調用MakeBSOD的函數, IDA分析錯了, 將MakeBSOD的調用直接拿掉了, 而且邏輯完全不對. 那以后用IDA F5分析脫殼后的程序時, 要注意了.

.text:0001165B ; =============== S U B R O U T I N E =======================================.text:0001165B.text:0001165B.text:0001165B MakeBSOD proc near ; CODE XREF: HookProc_ZwQueryDirectoryFile_11086+C6p.text:0001165B ; fnProc_IRP_MJ_DEVICE_CONTROL_113EA+DAp.text:0001165B cmp ecx, BugCheckParameter2.text:00011661 jnz short loc_11665.text:00011663 rep retn.text:00011665 ; ---------------------------------------------------------------------------.text:00011665.text:00011665 loc_11665: ; CODE XREF: MakeBSOD+6j.text:00011665 jmp loc_1166F.text:00011665 ; ---------------------------------------------------------------------------.text:0001166A db 5 dup(0CCh).text:0001166F ; ---------------------------------------------------------------------------.text:0001166F.text:0001166F loc_1166F: ; CODE XREF: MakeBSOD:loc_11665j.text:0001166F mov edi, edi.text:00011671 push ebp.text:00011672 mov ebp, esp.text:00011674 push ecx.text:00011675 mov [ebp-4], ecx.text:00011678 push 0 ; BugCheckParameter4.text:0001167A push BugCheckParameter3 ; BugCheckParameter3.text:00011680 push BugCheckParameter2 ; BugCheckParameter2.text:00011686 push dword ptr [ebp-4] ; BugCheckParameter1.text:00011689 push 0F7h ; BugCheckCode.text:0001168E call ds:KeBugCheckEx.text:0001168E MakeBSOD endp.text:0001168E.text:0001168E ; ---------------------------------------------------------------------------void __thiscall MakeBSOD(void *this){ if ( this != (void *)BugCheckParameter2 ) KeBugCheckEx(0xF7u, (ULONG_PTR)this, BugCheckParameter2, BugCheckParameter3, 0);}

HookProc_ZwQueryDirectoryFile_11086里面的MakeBSOD調用沒了…

int __stdcall HookProc_ZwQueryDirectoryFile_11086(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11){ int v11; // ebx@1 char szSystemProcessName; // [sp+1Ch] [bp-18h]@1 GetSystemProcessName_11044(&szSystemProcessName); DbgPrint("Rootkit: NewZwQueryDirectoryFile() from %s/n", &szSystemProcessName); v11 = g_dwOrgZwQueryDirectoryFile_dword_13090(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); if ( v11 >= 0 && (a8 == 1 || a8 == 2 || a8 == 38 || a8 == 3 || a8 == 37 || a8 == 12) && !memcmp(&szSystemProcessName, "cdPassssp", 9) ) { DbgPrint("Rootkit: detected file/directory query from virvir process/n"); } return v11;}

手工翻譯的正確等價結果

int __stdcall HookProc_ZwQueryDirectoryFile_11086(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, int a11){ NTSTATUS status = STATUS_SUCCESS; WCHAR szSystemProcessName[0x14] = {L'0'}; ULONG_PTR ulBugCheckValue = 0; // ebp // ret addr => ebp + 4 // arg0 => ebp + 8 ULONG_PTR ulEbp = (ULONG_PTR)&a1 - 8; // get ebp addr ulBugCheckValue = ulEbp ^ g_ulBugCheckParameter2; ZeroMemory(szSystemProcessName, sizeof(szSystemProcessName)); GetSystemProcessName_11044(szSystemProcessName); DbgPrint("Rootkit: NewZwQueryDirectoryFile() from %s", szSystemProcessName); // 11 parameters status = g_dwOrgZwQueryDirectoryFile_dword_13090(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); if (status >= 0) { /* arg_8 is param1 arg_c is param2 arg_10 is param3 arg_14 is param4 arg_18 is param5 arg_1c is param6 // ... */ // IDA F5將arg_1c翻譯成a8, 實際上應該是a6..., 最基本的信任呢... // a6 is FileInformation if ((FileDirectoryInformation == a6) || (FileFullDirectoryInformation == a6) || (FileIdFullDirectoryInformation == a6) || (FileBothDirectoryInformation == a6) || (FileIdBothDirectoryInformation == a6) || (FileNamesInformation == a6)) { if (0 != memcmp(szSystemProcessName, "cdPassssp", 9)) { DbgPrint("Rootkit: detected file/directory query from virvir process/n"); } } } MakeBSOD(ulBugCheckValue ^ ulEbp); return status;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品视频在线免费观看| 日韩a**站在线观看| 狠狠躁夜夜躁人人爽超碰91| 亚洲国产精品va| 少妇久久久久久| 国产精品免费一区| 亚洲国产精品va在线| 欧美性猛交xxxx富婆| 色爱av美腿丝袜综合粉嫩av| 97成人精品视频在线观看| 亚洲国产精品嫩草影院久久| 久久国产加勒比精品无码| 亚洲国产精品va在看黑人| 欧美美女操人视频| 日本最新高清不卡中文字幕| 欧美在线一级视频| 亚洲专区国产精品| 国产黑人绿帽在线第一区| 亚洲福利在线看| 91av视频在线| 尤物yw午夜国产精品视频明星| 久久久噜噜噜久久中文字免| 欧美大片在线影院| 欧美精品激情blacked18| 色婷婷成人综合| 亚洲国产日韩一区| 亚洲精品影视在线观看| 久久九九国产精品怡红院| 亚洲成人久久久久| 精品国产视频在线| 午夜精品一区二区三区视频免费看| 久久久久久久久久久久久久久久久久av| 91成人在线视频| 色婷婷**av毛片一区| 国产精品一久久香蕉国产线看观看| 欧美一级高清免费播放| 久久这里有精品视频| 日本精品一区二区三区在线播放视频| 亚洲欧美日韩国产成人| 久久综合免费视频影院| 欧美精品在线网站| 精品动漫一区二区三区| 亚洲精品免费网站| 欧美成人免费va影院高清| 668精品在线视频| 日韩高清中文字幕| 色偷偷偷综合中文字幕;dd| 国产精品视频在线观看| 国产精品欧美亚洲777777| 亚洲高清色综合| 欧美日韩激情网| 亚洲日本成人网| 亚洲一区亚洲二区亚洲三区| 亚洲午夜性刺激影院| 亚洲午夜激情免费视频| 97视频在线观看成人| 久久久国产视频91| 国产精品日韩在线| 国产精品自拍偷拍视频| 成人字幕网zmw| 国产精品xxx视频| 久久夜精品va视频免费观看| 久久视频免费在线播放| 九九热在线精品视频| 欧美疯狂xxxx大交乱88av| 国产一区二区在线免费视频| 日韩欧美在线观看| 成人a在线观看| 欧美日韩国产一区在线| www.国产精品一二区| 超碰91人人草人人干| 精品国内自产拍在线观看| 美女999久久久精品视频| 国产在线观看精品| 中文欧美在线视频| 亚洲国产精品人人爽夜夜爽| 日韩美女视频免费在线观看| 久久99久久99精品免观看粉嫩| 久久精品国产电影| 久久久精品在线观看| 国产a级全部精品| 亚洲欧美精品suv| 日本亚洲欧美三级| 日韩av在线最新| 三级精品视频久久久久| 国产午夜精品视频| 日韩av电影免费观看高清| 久久九九有精品国产23| 成人做爰www免费看视频网站| 日韩欧美aⅴ综合网站发布| 色婷婷av一区二区三区久久| 性欧美在线看片a免费观看| 久久久女女女女999久久| 国产精品日日做人人爱| 精品色蜜蜜精品视频在线观看| 日日狠狠久久偷偷四色综合免费| 午夜精品美女自拍福到在线| 久久久久免费精品国产| 26uuu另类亚洲欧美日本一| 欧美激情欧美狂野欧美精品| 国产一区视频在线| 欧美中文字幕在线观看| 亚洲欧美国产一本综合首页| 日韩在线观看视频免费| 久久精品久久久久久| 97视频色精品| 国产ts一区二区| 国产欧美一区二区白浆黑人| 茄子视频成人在线| 日韩av大片免费看| 98精品国产高清在线xxxx天堂| 日韩av电影在线播放| 免费不卡欧美自拍视频| 亚洲一二三在线| 97视频免费观看| 欧美精品久久久久久久免费观看| 久久91超碰青草是什么| 亚洲第一天堂无码专区| 国产亚洲一区二区在线| 夜夜嗨av一区二区三区免费区| 久久久女人电视剧免费播放下载| 日韩欧美在线一区| 欧美激情精品久久久久久久变态| 亚洲欧美国产va在线影院| 欧美在线精品免播放器视频| 91深夜福利视频| 亚洲精品少妇网址| 欧美日韩国产91| 久久影视三级福利片| 亚洲精品国产欧美| 国产一区二区三区视频在线观看| 亚洲精品久久久久久久久久久久久| 欧美电影免费观看高清| 91国内产香蕉| 欧美另类高清videos| 亚洲一区美女视频在线观看免费| 欧美日本精品在线| 在线观看91久久久久久| 国产精品99久久久久久www| 美女少妇精品视频| 欧美成人免费va影院高清| 97国产成人精品视频| 久久久中精品2020中文| 久久精品国产亚洲| 久久精品电影网站| 欧美电影在线观看高清| 欧美天天综合色影久久精品| 亚洲国产精品va在看黑人| 理论片在线不卡免费观看| 成人黄色短视频在线观看| 亚洲福利小视频| 日韩中文字幕精品| 欧美黄色www| 91亚洲国产成人精品性色| www.欧美精品| 51精品国产黑色丝袜高跟鞋| 97人洗澡人人免费公开视频碰碰碰| 中文字幕av一区中文字幕天堂| 亚洲欧美日韩一区二区在线| 中文字幕亚洲一区二区三区| 精品一区二区三区四区在线| 亚洲精品成人久久电影| 国产日韩欧美在线视频观看| 国产精品9999|