青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

hook未導出native api的好辦法

Posted on 2009-11-04 11:39 S.l.e!ep.¢% 閱讀(412) 評論(0)  編輯 收藏 引用 所屬分類: RootKit
				
						昨天寫的那個 
hook?ssdt的驅動,用的是硬編碼的辦法,這樣在不同的系統中由于NtShutdownSystem的服務號都不相同,所以在不同的操作系統上代碼都要做修改,這個比較不爽.今天聽老大PJF說有避免硬編碼的方法,google了下,發現下面的文章,代碼稍微改了改,用在我的驅動中,果然好使.文章貼在下面:
-------------------------------------------------------------------------------------------
from?http://www.rootkit.com

Hardcoding?the?positions?seems?a?poor?solution,?since?it?means?after?a?new?service?pack,?the?rootkit?may?no?longer?work?and?become?discovered.

As?I?have?found?the?code?on?this?site?extremely?helpful,?I?think?it?is?only?fair?that?I?return?the?favour?;-)

I?have?implemented?the?method?described?in?previous?posts,?whereby?I?have?mapped?a?view?of?ntdll.dll?into?the?process?space?of?whoever?loads?the?driver?initially,?and?then?retrieve?the?required?function?positions?directly?from?the?dll.

This?was?relatively?simple?to?do,?and?only?requires?knowledge?of?the?pe?file?format,?and?a?few?undocumented?apis.

Using?the?function?pasted?below,?when?hooking?you?simply?do?as?follows:


RtlInitUnicodeString(&dllName,?L"\\Device\\HarddiskVolume1\\Windows\\System32\\ntdll.dll");
functionAddress?=?GetDllFunctionAddress(functionName,?&dllName);
position?=?*((WORD*)(functionAddress+1));
????
g_OriginalZwCreateProcessEx?=?(ZWCREATEPROCESSEX)(KeServiceDescriptorTable.ServiceTableBase[position]);


and?here's?the?function?GetDllFunctionAddress:


DWORD?GetDllFunctionAddress(char*?lpFunctionName,?PUNICODE_STRING?pDllName)?
{
????HANDLE?hThread,?hSection,?hFile,?hMod;
????SECTION_IMAGE_INFORMATION?sii;
????IMAGE_DOS_HEADER*?dosheader;
????IMAGE_OPTIONAL_HEADER*?opthdr;
????IMAGE_EXPORT_DIRECTORY*?pExportTable;
????DWORD*?arrayOfFunctionAddresses;
????DWORD*?arrayOfFunctionNames;
????WORD*?arrayOfFunctionOrdinals;
????DWORD?functionOrdinal;
????DWORD?Base,?x,?functionAddress;
????char*?functionName;
????STRING?ntFunctionName,?ntFunctionNameSearch;
????PVOID?BaseAddress?=?NULL;
????SIZE_T?size=0;

????OBJECT_ATTRIBUTES?oa?=?{sizeof?oa,?0,?pDllName,?OBJ_CASE_INSENSITIVE};

????IO_STATUS_BLOCK?iosb;

????//_asm?int?3;
????ZwOpenFile(&hFile,?FILE_EXECUTE?|?SYNCHRONIZE,?&oa,?&iosb,?FILE_SHARE_READ,?FILE_SYNCHRONOUS_IO_NONALERT);

????oa.ObjectName?=?0;

????ZwCreateSection(&hSection,?SECTION_ALL_ACCESS,?&oa,?0,PAGE_EXECUTE,?SEC_IMAGE,?hFile);
????
????ZwMapViewOfSection(hSection,?NtCurrentProcess(),?&BaseAddress,?0,?1000,?0,?&size,?(SECTION_INHERIT)1,?MEM_TOP_DOWN,?PAGE_READWRITE);?
????
????ZwClose(hFile);
????
????hMod?=?BaseAddress;
????
????dosheader?=?(IMAGE_DOS_HEADER?*)hMod;
????
????opthdr?=(IMAGE_OPTIONAL_HEADER?*)?((BYTE*)hMod+dosheader->e_lfanew+24);

????pExportTable?=(IMAGE_EXPORT_DIRECTORY*)((BYTE*)?hMod?+?opthdr->DataDirectory[?IMAGE_DIRECTORY_ENTRY_EXPORT].?VirtualAddress);

????//?now?we?can?get?the?exported?functions,?but?note?we?convert?from?RVA?to?address
????arrayOfFunctionAddresses?=?(DWORD*)(?(BYTE*)hMod?+?pExportTable->AddressOfFunctions);

????arrayOfFunctionNames?=?(DWORD*)(?(BYTE*)hMod?+?pExportTable->AddressOfNames);

????arrayOfFunctionOrdinals?=?(WORD*)(?(BYTE*)hMod?+?pExportTable->AddressOfNameOrdinals);

????Base?=?pExportTable->Base;

????RtlInitString(&ntFunctionNameSearch,?lpFunctionName);

????for(x?=?0;?x?<?pExportTable->NumberOfFunctions;?x++)
????{
????????functionName?=?(char*)(?(BYTE*)hMod?+?arrayOfFunctionNames[x]);

????????RtlInitString(&ntFunctionName,?functionName);

????????functionOrdinal?=?arrayOfFunctionOrdinals[x]?+?Base?-?1;?//?always?need?to?add?base,?-1?as?array?counts?from?0
????????//?this?is?the?funny?bit.??you?would?expect?the?function?pointer?to?simply?be?arrayOfFunctionAddresses[x]...
????????//?oh?no...?thats?too?simple.??it?is?actually?arrayOfFunctionAddresses[functionOrdinal]!!
????????functionAddress?=?(DWORD)(?(BYTE*)hMod?+?arrayOfFunctionAddresses[functionOrdinal]);
????????if?(RtlCompareString(&ntFunctionName,?&ntFunctionNameSearch,?TRUE)?==?0)?
????????{
????????????ZwClose(hSection);
????????????return?functionAddress;
????????}
????}

????ZwClose(hSection);
????return?0;
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美日韩视频一区二区三区| 性欧美xxxx视频在线观看| 国产精品视频网站| 欧美午夜寂寞影院| 欧美人与性禽动交情品| 欧美理论电影在线观看| 欧美人在线视频| 欧美日韩一级片在线观看| 欧美日韩在线另类| 国产精品国产精品| 国产欧美日韩视频| 伊人激情综合| 亚洲人成高清| 亚洲一卡久久| 久久精品日韩欧美| 欧美刺激性大交免费视频| 亚洲国产精品第一区二区| 欧美sm重口味系列视频在线观看| 欧美国产一区在线| 亚洲理伦在线| 亚洲欧美日韩国产综合精品二区| 久久黄色小说| 欧美激情片在线观看| 国产精品久久久久av免费| 国产在线精品一区二区夜色| 亚洲国产1区| 国产精品99久久久久久人| 欧美一区二区三区四区在线| 久久野战av| 亚洲精品国产日韩| 午夜精品一区二区在线观看| 久久久亚洲国产天美传媒修理工| 欧美黄色一级视频| 国产精品看片你懂得| 怡红院av一区二区三区| 一区二区三区日韩精品| 久久久久se| 亚洲六月丁香色婷婷综合久久| 香蕉av福利精品导航| 欧美黄色aaaa| 韩国欧美一区| 亚洲天堂成人| 老司机精品久久| 一片黄亚洲嫩模| 久久精品视频99| 欧美日韩国产一区二区| 国产一在线精品一区在线观看| 亚洲巨乳在线| 久久久精品欧美丰满| 亚洲精品在线电影| 久久久久久久999精品视频| 欧美午夜不卡| 亚洲精品1区2区| 久久精品国产99国产精品澳门| 亚洲精品视频免费在线观看| 久久精品麻豆| 国产精品日韩欧美一区二区三区| 亚洲欧洲一区二区天堂久久 | 正在播放亚洲一区| 狂野欧美激情性xxxx| 国产精品嫩草影院av蜜臀| 亚洲国产视频一区| 久久国产精品一区二区三区四区| 亚洲精品乱码久久久久久蜜桃91| 久久久精品欧美丰满| 国产精品综合| 亚洲一级特黄| 亚洲精品国产精品乱码不99| 久久这里只有精品视频首页| 国产手机视频一区二区| 亚洲一区二三| 亚洲精品一区二区三区蜜桃久 | 亚洲综合色噜噜狠狠| 欧美成人一二三| 欧美在线播放一区二区| 国产精品任我爽爆在线播放| 一本综合久久| 亚洲国产mv| 久久青草福利网站| 国产亚洲欧美一区二区三区| 亚洲欧美精品在线| 日韩手机在线导航| 欧美国产免费| 亚洲人成网站精品片在线观看| 久久一区中文字幕| 欧美在线一二三四区| 国产欧美欧洲在线观看| 香蕉久久久久久久av网站| 在线亚洲免费| 国产精品xvideos88| 亚洲图片欧美一区| 9久草视频在线视频精品| 欧美区高清在线| 一区二区三区成人| 日韩午夜在线| 欧美日韩国产综合视频在线观看中文| 亚洲精品久久久久久久久久久久 | 国产欧美日韩一区二区三区在线观看 | 快播亚洲色图| 久久aⅴ国产欧美74aaa| 国产伪娘ts一区| 久久精品国产清高在天天线| 亚洲欧美综合一区| 国产手机视频一区二区| 久久精品欧美| 久久精品视频va| 精品91在线| 欧美电影专区| 欧美精品v日韩精品v韩国精品v| 亚洲精选一区| av成人免费在线| 国产精品wwwwww| 欧美一区亚洲| 久久精品成人| 在线观看成人小视频| 欧美成人午夜激情视频| 欧美成人中文| 正在播放亚洲| 午夜精品久久久久久久久久久| 国产在线国偷精品产拍免费yy| 美女性感视频久久久| 欧美1区2区| 亚洲视频一二三| 亚洲综合清纯丝袜自拍| 国模私拍视频一区| 欧美激情1区2区3区| 欧美理论电影网| 午夜在线电影亚洲一区| 欧美一区中文字幕| 亚洲国产精品美女| 亚洲精品一区二区三区不| 国产精品美女xx| 久久只有精品| 欧美精品一区二区三区很污很色的 | 久久久人成影片一区二区三区 | aa级大片欧美三级| 国产欧美日韩精品一区| 狂野欧美性猛交xxxx巴西| 欧美成人有码| 欧美亚洲三区| 久久综合伊人77777蜜臀| av成人免费在线观看| 亚洲主播在线| 亚洲国产欧美日韩另类综合| 一本久道综合久久精品| 黑丝一区二区三区| 亚洲欧洲一二三| 国产视频不卡| 最新成人av网站| 国产精品色午夜在线观看| 免费成人高清视频| 欧美视频在线观看| 久久在线观看视频| 欧美日韩一区不卡| 久久久蜜臀国产一区二区| 欧美激情精品久久久久久久变态| 性感少妇一区| 欧美黄色免费| 久久久久久夜| 欧美日韩亚洲一区二区三区四区| 久久久五月天| 欧美午夜一区二区三区免费大片 | 国产精品亚洲综合天堂夜夜| 欧美成人a∨高清免费观看| 欧美日韩综合视频网址| 久色成人在线| 国产精品国产三级国产专播品爱网| 麻豆精品一区二区av白丝在线| 欧美日韩视频在线一区二区 | 亚洲美女一区| 午夜在线观看欧美| 一区二区高清| 老妇喷水一区二区三区| 欧美综合国产精品久久丁香| 欧美日韩成人免费| 欧美大片第1页| 国产一区二区久久久| 这里只有精品在线播放| 亚洲精品社区| 久久久91精品国产一区二区三区 | 亚洲无限av看| 日韩一区二区免费高清| 久久久久九九视频| 性欧美videos另类喷潮| 欧美日韩亚洲一区二区三区在线观看 | 欧美激情1区| 国产一区二区三区在线免费观看| 99av国产精品欲麻豆| 91久久精品美女高潮| 欧美影院在线| 欧美一区二区免费观在线| 欧美日韩裸体免费视频| 欧美激情亚洲| 精品福利免费观看| 性欧美8khd高清极品| 午夜在线视频观看日韩17c| 欧美日韩免费一区| 亚洲激情六月丁香| 亚洲激情视频网| 久久综合久久综合久久综合|