首页
社区
课程
招聘
[求助]EP到底是不是Exe本身代码的入口?
发表于: 2008-12-15 09:51 5311

[求助]EP到底是不是Exe本身代码的入口?

2008-12-15 09:51
5311
运行一个Exe的时候,会先根据IAT表加载相应的DLL,并且用GetProcAddress得到API的真实地址。也就是说Exe运行后,DLL的EP将是第一个被调用的地方,而Exe本身的EP应该是最后被调用的,但它是Exe本身代码的入口。

最近遇到一个ExeCryptor壳,此壳被OD加载后,还没有运行到EP,就直接异常了,异常原因是调用了Lock:int3,无法继续运行到EP。用LordPE查看了一下IAT,只有kernel32.dll和user32.dll,应该不是DLL作怪。
然后我尝试把入口点改为int3或者Sleep或者MessageBoxA,然后直接运行,发现程序运行起来直接退出。尝试用UE仅仅把Exe的最后一个字节改成01,程序也运行不起来,应该是有自校验。但是以前遇到的自检验,也都是进了EP以后再在Exe自己的代码里面作校验,但是这个壳根本就没有进EP。
最后我在Exe运行起来以后,用LordPE把它dump出来,IAT不需要修复就已经是正确的了!?用OD加载dump后的Exe,顺利断在EP处,只是继续运行下去得不到正确的结果罢了……

为什么这个壳在进入EP前,就可以作手脚?是不是进入EP前还是执行了其他Exe本身的代码?这段代码的入口需要怎么去查找呢?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 282
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
tls tls tls
2008-12-15 10:00
0
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
刚才搜了一下tls,发现有个tls回调函数,这个应该是真正入口了吧?如果我说错了,就纠正一下。

多谢LS指点!!!
2008-12-15 10:08
0
雪    币: 143
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
也太隐蔽了,没人指点想破脑袋也想不出来
2009-2-6 16:17
0
游客
登录 | 注册 方可回帖
返回
//