阿杰 发表于 2009-5-27 07:00:30

【分享】隐藏DLL模块{未测试}

<p><font style="FONT: 10pt="10pt"=" 10pt?=" font=" MyHook.dll?<=" #0000ff? COLOR: Fixedsys; 10pt?>void </font><font style=" 10pt="10pt" FONT: font?><font style="FONT: 10pt="10pt"=" COLOR: Fixedsys; 10pt?=" 10pt?=" #000080?></font><font style="comic: " 10pt="10pt" FONT: Sans? Comic?=" COLOR: Fixedsys; 10pt? #000000?>PLIST_ENTRY Head</font><font style="><font style="FONT: 10pt="10pt"=" font="font"10pt?=" #0000ff? COLOR: Fixedsys; 10pt?>void </font><font style=" MyHook.dll?< =" COLOR: Fixedsys; 10pt? #000000?>HideDll</font><font style=" 10pt="10pt" FONT:><font style="FONT: 10pt="10pt"=" 10pt?=" COLOR: Fixedsys; 10pt? #000000?>mov ldr </font><font style=" comic="Comic" =" COLOR: Fixedsys; 10pt? #000080?>, </font><font style=" 10pt="10pt" FONT: Sans?><font face="Verdana">void HideDll()<br/>{<br/>&nbsp;&nbsp;&nbsp; HMODULE hMod = ::GetModuleHandle("MyHook.dll"); <br/>&nbsp;&nbsp;&nbsp; PLIST_ENTRY Head,Cur;<br/>&nbsp;&nbsp;&nbsp; PPEB_LDR_DATA ldr;<br/>&nbsp;&nbsp;&nbsp; PLDR_MODULE ldm;<br/>&nbsp;&nbsp;&nbsp; __asm<br/>&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov eax , fs:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov ecx , //Ldr<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov ldr , ecx<br/>&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp; Head = &amp;(ldr-&gt;InLoadOrderModuleList);<br/>&nbsp;&nbsp;&nbsp; Cur = Head-&gt;Flink;<br/>&nbsp;&nbsp;&nbsp; do<br/>&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm = CONTAINING_RECORD( Cur, LDR_MODULE, InLoadOrderModuleList);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //printf("EntryPoint \n",ldm-&gt;BaseAddress);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( hMod == ldm-&gt;BaseAddress)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InLoadOrderModuleList.Blink-&gt;Flink =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InLoadOrderModuleList.Flink;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InLoadOrderModuleList.Flink-&gt;Blink =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InLoadOrderModuleList.Blink; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InInitializationOrderModuleList.Blink-&gt;Flink =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InInitializationOrderModuleList.Flink;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InInitializationOrderModuleList.Flink-&gt;Blink =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InInitializationOrderModuleList.Blink;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InMemoryOrderModuleList.Blink-&gt;Flink =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InMemoryOrderModuleList.Flink;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InMemoryOrderModuleList.Flink-&gt;Blink =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldm-&gt;InMemoryOrderModuleList.Blink;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cur= Cur-&gt;Flink; <br/>&nbsp;&nbsp;&nbsp;&nbsp; }while(Head != Cur);<br/>} </font></font></font></font></font></p>
[此贴子已经被作者于2009-5-27 7:07:52编辑过]
页: [1]
查看完整版本: 【分享】隐藏DLL模块{未测试}