首页
社区
课程
招聘
[求助]C#的可执行文件的加载过程貌似很特别啊?
发表于: 2013-2-27 15:58 3892

[求助]C#的可执行文件的加载过程貌似很特别啊?

2013-2-27 15:58
3892
C#的可执行文件,用LordPE查看,输入表只有mscoree.dll的_CorExeMain函数被倒入,而EP入口点倒是在text区段的正常范围,代码只有一句jmp [_CorExeMain],并且它没有Tls。
但是奇怪的是,只要用LordPE二进制修改输入表中mscoree.dll为其他名称的dll,如xxxxxxx.dll(当然此dll也有_CorExeMain函数导出),则完全无法运行,也几乎无法调试。
所谓“几乎无法调试”是这样的,用OD加载,即使是系统断点也无法断下就已经挂了,报C000007B错误,如果选中断于XX模块什么的全部勾起来,则可以断下两次,但是看样子似乎断下的时候已经发生过错误了。
那这个C#可执行文件的初始化原理到底是什么呢?为什么换了下导入dll名称就完全跑不起来了?就算它有自校验也必须在自身代码运行之后再做吧?但是现在系统加载它那里就过不去。
请教高人指点下!

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
大致找到原因了,和目录里面的COM有关,把COM抹掉可以运行起来。但是抹掉COM就没有版本信息,然后.NET友好的罢工了,无法完成偷梁换柱的任务。
2013-2-27 16:15
0
游客
登录 | 注册 方可回帖
返回
//