能力值:
( LV2,RANK:10 )
2 楼
用PYG10周年DLL补丁制作工具,,生成的LPK.dll可以正常使用!自己用Delphi写的就不行~!
能力值:
( LV4,RANK:50 )
3 楼
是想通过lpk来操作进程吧,其实有个简单的办法来处理导出,就是把你自己的lpk.dll的导出函数和数据直接forward给真正的lpk.dll,免去n多麻烦。
具体方法就是把系统lpk.dll重命名,比如命名为LpkImpl.dll,然后自己的lpk.dll可以这么来做
vc代码:
#pragma comment(linker, "/export:LpkInitialize=LpkImpl.LpkInitialize,@1")
#pragma comment(linker, "/export:LpkTabbedTextOut=LpkImpl.LpkTabbedTextOut,@2")
#pragma comment(linker, "/export:LpkDllInitialize=LpkImpl.LpkDllInitialize,@3")
#pragma comment(linker, "/export:LpkDrawTextEx=LpkImpl.LpkDrawTextEx,@4")
#pragma comment(linker, "/export:LpkEditControl=LpkImpl.LpkEditControl,@5")
#pragma comment(linker, "/export:LpkExtTextOut=LpkImpl.LpkExtTextOut,@6")
#pragma comment(linker, "/export:LpkGetCharacterPlacement=LpkImpl.LpkGetCharacterPlacement,@7")
#pragma comment(linker, "/export:LpkGetTextExtentExPoint=LpkImpl.LpkGetTextExtentExPoint,@8")
#pragma comment(linker, "/export:LpkPSMTextOut=LpkImpl.LpkPSMTextOut,@9")
#pragma comment(linker, "/export:LpkUseGDIWidthCache=LpkImpl.LpkUseGDIWidthCache,@10")
#pragma comment(linker, "/export:ftsWordBreak=LpkImpl.ftsWordBreak,@11")
告诉Linker让他生成forward记录,这样做之后你自己lpk.dll导出的函数会自动在加载dll时forward给真正的lpk.dll,也不需要在DllMain里面进行任何初始化操作,所以你就可以尽情写其他的了。要注意一下win7可能需要再修改一下这个代码,毕竟和xp的lpk.dll导出的函数或数据可能有所不同。
能力值:
( LV4,RANK:50 )
4 楼
另外在DLL_PROCESS_ATTACH里面进行LoadLibrary是错误的
能力值:
( LV2,RANK:10 )
5 楼
导出的函数是相同的,,,我用PYG的生成工具,就可以在64位的Win7上使用
能力值:
( LV4,RANK:50 )
6 楼
这种forward的方式应该是最简单的
能力值:
( LV5,RANK:60 )
7 楼
在win7 32位下正常吗?
我仅在32位下用过,解决办法是:
WIN7有的程序调用LPK.DLL的LpkInitialize输出函数在LPK的初始化前面.
要在LpkInitialize这个函数中加入一些处理,并且这部分代码不能加密.
能力值:
( LV2,RANK:10 )
8 楼
能否给份32位下可以的代码,谢谢
能力值:
( LV9,RANK:610 )
9 楼
win7下面lpk.dll应该属于knowndll了吧,还能被劫持吗?
能力值:
( LV2,RANK:10 )
10 楼
可以的,,,注册表修改一下即可
能力值:
( LV9,RANK:610 )
11 楼
要改注册表啊,那就没啥好说了,我说嘛,这玩意儿Win7下默认不能劫持的
能力值:
( LV2,RANK:10 )
12 楼
32位下面也不行,,,同样的代码,,,在之前的Win7系统就可以
能力值:
( LV2,RANK:10 )
13 楼
走过路过的,,,帮帮忙~!
能力值:
( LV2,RANK:10 )
14 楼
路过,,,,学习。。。
能力值:
( LV2,RANK:10 )
15 楼
这两天没动静?
能力值:
( LV5,RANK:60 )
16 楼
在LpkInitialize中,再做一遍初始化。
能力值:
( LV2,RANK:10 )
17 楼
64位下,你的DLL必须也是64位编译。。。
能力值:
( LV2,RANK:10 )
18 楼
已经再做了一次~!也是无效!
能力值:
( LV2,RANK:10 )
19 楼
还有这个说???
能力值:
( LV5,RANK:60 )
20 楼
Procedure LpkInitialize; stdcall;
BEGIN
if INITFLAG<>88 then
begin
LoadoriLPK;
StartHook;
//LoadLibrary(pchar('lpk.dll'));
INITFLAG := 88; end; asm jmp strBLpkInitialize end;
END; procedure MyDLLHandler(Reason: Integer);
begin
case Reason of
DLL_PROCESS_ATTACH:
begin
//vmprotectbegin('StartHook');
//asm
// int 3
//end;
if INITFLAG<>88 then
begin
loadoriLpk;
Starthook;
//HookProc;
INITFLAG := 88;
//vmprotectend;
end;
end;
DLL_PROCESS_DETACH:
;
DLL_THREAD_ATTACH:
;
DLL_THREAD_DETACH:
;
end;
end;
begin
DLLProc := @MyDLLHandler;
DLLProc(DLL_PROCESS_ATTACH);
end.
能力值:
( LV2,RANK:10 )
21 楼
没用的,不可以
能力值:
( LV5,RANK:60 )
22 楼
1、我只在win7 32位下测过
2、你确定lpk.dll执行了吗?
3、跟踪下lpk内函数执行的顺序
能力值:
( LV2,RANK:10 )
23 楼
我测试怎么不可以,,,100%确定执行了LPK,就是初始化有问题~!
方便的话代码发份给我测试一下,谢谢
能力值:
( LV5,RANK:60 )
24 楼
2010年的东西了,试下这个lpk.dll能用吗?
上传的附件:
能力值:
( LV2,RANK:10 )
25 楼
LPK.dll是一个病毒文件吧,
在我们公司内部,用杀毒软件一查杀,提示很多的LPK.dll文件都是木马病毒