首页
社区
课程
招聘
[求助]请教一个Dll入口跳转的问题
发表于: 2009-6-11 17:04 3719

[求助]请教一个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;
也没问题,请教高人 我这里该如何修正呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我知道有可能是因为寄存器和堆栈乱了,寄存器可以用 Pushad / POPAd 来保存,堆栈咋办呢?
2009-6-11 17:10
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
3
你保持堆栈平衡了的话就不会打乱堆栈了.
重定位处理了吗?

在OD中跟跟应该就能发现问题的
2009-6-11 21:29
0
游客
登录 | 注册 方可回帖
返回
//