-
-
[求助]请教一个Dll入口跳转的问题
-
发表于:
2009-6-11 17:04
3719
-
最近我做个加壳软件,Delphi编写,大致的思路是把原有的代码段,资源段压缩然后加入一个新段,把我自己的头代码加进去,在我自己的头代码里解压,然后跳到原有的入口地址执行。
对Exe 已经没问题了 关键是Dll。我的代码如下。
这里是我的入口代码
var
H_Pro : LongWord;
L_Reason : LongWord;
p_Reason : LongWord;
begin
asm
Pushad
////这一段是保存DllMain 的几个参数 [EBX + $08] 存储了Dll 加载的地址
MOV EAX, [EBX + $08]
MOV H_Pro, EAX
MOV EAX, [EBX + $0C]
MOV L_Reason, EAX
MOV EAX, [EBX + $10]
MOV p_Reason, EAX
end;
////
asm
POPAd
///这里的5个Nop 在加壳时候会被改成 JMP ---原有入口地址
Nop
Nop
Nop
Nop
Nop
end;
end;
对Exe文件完全没问题,但Dll的话,就直接不执行了。如果不执行那几保存地址和解压代码,加壳时候也不压缩。直接添节改入口。像这样直接跳转:
asm
Pushad
POPAd
///这里的5个Nop 在加壳时候会被改成 JMP ---原有入口地址
Nop
Nop
Nop
Nop
Nop
end;
也没问题,请教高人 我这里该如何修正呢?
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!