能力值:
( LV2,RANK:10 )
|
-
-
2 楼
主要这个语言的资料太少了,想学习下隐藏DLL的技术,希望论坛的哥哥们能给我指点下明路·
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
论坛C代码有很多 delphi 跟C相通 自己稍微改改就能用。
不过建议还是转C吧 其他语言很难长久 只要还在编程的 最终归宿都是C
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
可惜我是新手看不懂C 哎````
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
Windows这系统,90%都是C写的 , 你说该不该下苦功夫学习呢!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
好的呢,我感觉C才是主流 ····
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
语言 都是相通的 能看懂DELPHI 稍下功夫 就能看懂C
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
function HideDll(const dllname: PChar):HMODULE;
var
hMod: HMODULE;
Head, Cur: PListEntry;
ldr: PPEB_LDR_DATA;
ldm: PLDR_MODULE;
begin
hMod := GetModuleHandle(dllname);
if hMod <= 0 then
begin
exit;
end;
asm
mov eax, fs:[30h]
mov ecx, [eax + 0Ch]
mov ldr, ecx
end;
Head := @ldr^.InLoadOrderModuleList;
Cur := Head^.Flink;
repeat
ldm := PLDR_MODULE(Cur);
ldm := PLDR_MODULE(DWORD(Cur) - DWORD(@PLDR_MODULE(0)^.InLoadOrderModuleList));
if (hMod = DWORD(ldm^.BaseAddress)) then
begin
ldm^.InLoadOrderModuleList.Blink^.Flink := ldm^.InLoadOrderModuleList.Flink;
ldm^.InLoadOrderModuleList.Flink^.Blink := ldm^.InLoadOrderModuleList.Blink;
ldm^.InInitializationOrderModuleList.Blink^.Flink := ldm^.InInitializationOrderModuleList.Flink;
ldm^.InInitializationOrderModuleList.Flink^.Blink := ldm^.InInitializationOrderModuleList.Blink;
ldm^.InMemoryOrderModuleList.Blink^.Flink := ldm^.InMemoryOrderModuleList.Flink;
ldm^.InMemoryOrderModuleList.Flink^.Blink := ldm^.InMemoryOrderModuleList.Blink;
Break;
end;
Cur := Cur^.Flink;
until (Head = Cur);
Result := hMod;
end;
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
这只是断链, 用xuetr还是能看到模块
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
楼主这是要做外挂吧.
推荐你一个方法 内存映射
好好看看 loadlibrary的实现过程以及PE结构
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我给楼主一个思路吧,如果有疑问可以加我QQ290600784交流
{ 申请内存以备份原始模块数据 }
{ 修改原始内存为可读写属性 }
{ 备份原始模块数据 }
{ 修改原DllEntryPoint为retn,防止FreeLibrary时的一些卸载操作 }
{ 申请dll原始加载地址空间 }
{ 写回原始数据 }
{ 释放备份时用的内存 }
|
|
|